From db7fa9f3be1bb3deb8696ed0cb17ea308ca7a4af Mon Sep 17 00:00:00 2001 From: Benny Halevy Date: Sat, 31 Dec 2022 10:00:12 +0200 Subject: [PATCH] distributed_loader: reshard: update sstable cleanup state Since the sstables are loaded from foreign open info we should mark them for cleanup if needed (and owned_ranges_ptr is provided). This will allow a later patch to enable filtering for cleanup only for sstable sets containing sstables that require cleanup. Signed-off-by: Benny Halevy --- replica/distributed_loader.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/replica/distributed_loader.cc b/replica/distributed_loader.cc index d58e65a02d..0b1a44d14d 100644 --- a/replica/distributed_loader.cc +++ b/replica/distributed_loader.cc @@ -242,8 +242,11 @@ future<> reshard(sstables::sstable_directory& dir, sstables::sstable_directory:: std::vector> buckets; buckets.reserve(num_jobs); buckets.emplace_back(); - co_await coroutine::parallel_for_each(shared_info, [&dir, sstables_per_job, num_jobs, &buckets] (sstables::foreign_sstable_open_info& info) -> future<> { + co_await coroutine::parallel_for_each(shared_info, [&] (sstables::foreign_sstable_open_info& info) -> future<> { auto sst = co_await dir.load_foreign_sstable(info); + if (owned_ranges_ptr) { + table.update_sstable_cleanup_state(sst, owned_ranges_ptr); + } // Last bucket gets leftover SSTables if ((buckets.back().size() >= sstables_per_job) && (buckets.size() < num_jobs)) { buckets.emplace_back();