diff options
| author | Dan Engelbrecht <[email protected]> | 2024-08-07 13:46:34 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-08-07 13:46:34 +0200 |
| commit | 159f1cb99647f936ed6946586b7541ea0c65efec (patch) | |
| tree | f18302ea2c8d900dae6b98d6528412d2e6dfd03b /src/zenstore/gc.cpp | |
| parent | stop exceptions from leaking on threaded work (#102) (diff) | |
| download | zen-159f1cb99647f936ed6946586b7541ea0c65efec.tar.xz zen-159f1cb99647f936ed6946586b7541ea0c65efec.zip | |
add gc single threaded option (#104)
* add option to force gcv2 to run single threaded
Diffstat (limited to 'src/zenstore/gc.cpp')
| -rw-r--r-- | src/zenstore/gc.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/zenstore/gc.cpp b/src/zenstore/gc.cpp index 8db34b9c5..dc75a29f2 100644 --- a/src/zenstore/gc.cpp +++ b/src/zenstore/gc.cpp @@ -1767,6 +1767,7 @@ GcScheduler::SchedulerThread() GcVersion UseGCVersion = m_Config.UseGCVersion; uint32_t CompactBlockUsageThresholdPercent = m_Config.CompactBlockUsageThresholdPercent; bool Verbose = m_Config.Verbose; + bool SingleThreaded = m_Config.SingleThreaded; bool DiskSpaceGCTriggered = false; bool TimeBasedGCTriggered = false; @@ -1803,8 +1804,9 @@ GcScheduler::SchedulerThread() UseGCVersion = TriggerParams.ForceGCVersion.value_or(UseGCVersion); CompactBlockUsageThresholdPercent = TriggerParams.CompactBlockUsageThresholdPercent.value_or(CompactBlockUsageThresholdPercent); - Verbose = TriggerParams.Verbose.value_or(Verbose); - DoGc = true; + Verbose = TriggerParams.Verbose.value_or(Verbose); + SingleThreaded = TriggerParams.SingleThreaded.value_or(SingleThreaded); + DoGc = true; } if (m_TriggerScrubParams) @@ -2021,7 +2023,8 @@ GcScheduler::SchedulerThread() SkipCid, UseGCVersion, CompactBlockUsageThresholdPercent, - Verbose); + Verbose, + SingleThreaded); m_GcManager.SetCancelGC(false); @@ -2108,7 +2111,8 @@ GcScheduler::CollectGarbage(const GcClock::TimePoint& CacheExpireTime, bool SkipCid, GcVersion UseGCVersion, uint32_t CompactBlockUsageThresholdPercent, - bool Verbose) + bool Verbose, + bool SingleThreaded) { ZEN_TRACE_CPU("GcScheduler::CollectGarbage"); @@ -2177,6 +2181,7 @@ GcScheduler::CollectGarbage(const GcClock::TimePoint& CacheExpireTime, .IsDeleteMode = Delete, .SkipCidDelete = SkipCid, .Verbose = Verbose, + .SingleThread = SingleThreaded, .CompactBlockUsageThresholdPercent = CompactBlockUsageThresholdPercent, .DiskReservePath = m_Config.RootDirectory / "reserve.gc"}; GcClock::TimePoint GcStartTime = GcClock::Now(); |