diff options
Diffstat (limited to 'src/zenstore/gc.cpp')
| -rw-r--r-- | src/zenstore/gc.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/zenstore/gc.cpp b/src/zenstore/gc.cpp index 2660c2643..de653b0e3 100644 --- a/src/zenstore/gc.cpp +++ b/src/zenstore/gc.cpp @@ -1712,12 +1712,18 @@ GcScheduler::SchedulerThread() DoGc = false; } + if (m_TriggerScrubParams->SkipCas) + { + SkipCid = true; + } + + DoDelete = !m_TriggerScrubParams->SkipDelete; ScrubTimeslice = m_TriggerScrubParams->MaxTimeslice; } if (DoScrubbing) { - ScrubStorage(DoDelete, ScrubTimeslice); + ScrubStorage(DoDelete, SkipCid, ScrubTimeslice); m_TriggerScrubParams.reset(); } @@ -1961,7 +1967,7 @@ GcScheduler::SchedulerThread() } void -GcScheduler::ScrubStorage(bool DoDelete, std::chrono::seconds TimeSlice) +GcScheduler::ScrubStorage(bool DoDelete, bool SkipCid, std::chrono::seconds TimeSlice) { const std::chrono::steady_clock::time_point TimeNow = std::chrono::steady_clock::now(); std::chrono::steady_clock::time_point Deadline = TimeNow + TimeSlice; @@ -1972,13 +1978,14 @@ GcScheduler::ScrubStorage(bool DoDelete, std::chrono::seconds TimeSlice) } Stopwatch Timer; - ZEN_INFO("scrubbing STARTING (delete mode => {})", DoDelete); + ZEN_INFO("scrubbing STARTING (delete mode => {}, skip CID => {})", DoDelete, SkipCid); WorkerThreadPool& ThreadPool = GetSmallWorkerPool(); ScrubContext Ctx{ThreadPool, Deadline}; try { + Ctx.SetSkipCas(SkipCid); Ctx.SetShouldDelete(DoDelete); m_GcManager.ScrubStorage(Ctx); } |