@@ -324,7 +324,7 @@ level_zero_gc::level_zero_gc(
324324 level_zero_gc_config config,
325325 std::unique_ptr<object_storage> storage,
326326 std::unique_ptr<epoch_source> epoch_source)
327- : config_(config)
327+ : config_(std::move( config) )
328328 , storage_(std::move(storage))
329329 , epoch_source_(std::move(epoch_source))
330330 , should_run_(false ) // begin in a stopped state
@@ -337,10 +337,18 @@ level_zero_gc::level_zero_gc(
337337 cloud_storage_clients::bucket_name bucket,
338338 seastar::sharded<cluster::health_monitor_frontend>* health_monitor,
339339 seastar::sharded<cluster::controller_stm>* controller_stm,
340- seastar::sharded<cluster::topic_table>* topic_table,
341- level_zero_gc_config config)
340+ seastar::sharded<cluster::topic_table>* topic_table)
342341 : level_zero_gc(
343- config,
342+ level_zero_gc_config{
343+ .deletion_grace_period
344+ = config::shard_local_cfg ()
345+ .cloud_topics_short_term_gc_minimum_object_age .bind (),
346+ .throttle_progress
347+ = config::shard_local_cfg ().cloud_topics_short_term_gc_interval .bind (),
348+ .throttle_no_progress
349+ = config::shard_local_cfg ()
350+ .cloud_topics_short_term_gc_backoff_interval .bind (),
351+ },
344352 std::make_unique<object_storage_remote_impl>(remote, std::move(bucket)),
345353 std::make_unique<epoch_source_impl>(
346354 health_monitor, controller_stm, topic_table)) {}
@@ -402,16 +410,16 @@ seastar::future<> level_zero_gc::worker() {
402410 auto res = co_await try_to_collect ();
403411 if (res.has_value ()) {
404412 if (res.value () > 0 ) {
405- backoff = config_.throttle_progress ;
413+ backoff = config_.throttle_progress () ;
406414 } else {
407- backoff = config_.throttle_no_progress ;
415+ backoff = config_.throttle_no_progress () ;
408416 }
409417 } else {
410418 switch (res.error ()) {
411419 case collection_error::service_error:
412420 case collection_error::invalid_object_name:
413421 case collection_error::no_collectible_epoch:
414- backoff = config_.throttle_no_progress ;
422+ backoff = config_.throttle_no_progress () ;
415423 }
416424 }
417425
@@ -420,7 +428,7 @@ seastar::future<> level_zero_gc::worker() {
420428 cd_log.info ,
421429 " Level zero GC restarting after error: {}" ,
422430 std::current_exception ());
423- backoff = config_.throttle_no_progress ;
431+ backoff = config_.throttle_no_progress () ;
424432 }
425433 }
426434
@@ -455,7 +463,7 @@ level_zero_gc::try_to_collect() {
455463 }
456464
457465 const auto max_gc_birthday = std::chrono::system_clock::now ()
458- - config_.deletion_grace_period ;
466+ - config_.deletion_grace_period () ;
459467
460468 vlog (
461469 cd_log.debug ,
0 commit comments