aboutsummaryrefslogtreecommitdiff
path: root/src/zenstore/gc.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-08-07 13:46:34 +0200
committerGitHub Enterprise <[email protected]>2024-08-07 13:46:34 +0200
commit159f1cb99647f936ed6946586b7541ea0c65efec (patch)
treef18302ea2c8d900dae6b98d6528412d2e6dfd03b /src/zenstore/gc.cpp
parentstop exceptions from leaking on threaded work (#102) (diff)
downloadzen-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.cpp13
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();