aboutsummaryrefslogtreecommitdiff
path: root/src/zenstore/gc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenstore/gc.cpp')
-rw-r--r--src/zenstore/gc.cpp13
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);
}