diff --git a/ConflictSet.cpp b/ConflictSet.cpp index 76e9503..63d08d2 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -5128,9 +5128,6 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { assert(writeContext.accum.entries_erased == 0); assert(writeContext.accum.entries_inserted == 0); - // Queue up some gc work just for (potentially) increasing the version - ++keyUpdates; - if (oldestExtantVersion < writeVersion - kMaxCorrectVersionWindow) [[unlikely]] { if (writeVersion > newestVersionFullPrecision + kNominalVersionWindow) { @@ -5187,10 +5184,11 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { writeContext.releaseDeferred(); - // Run gc at least 200% the rate we're inserting entries + // Run gc at least 200% the rate we're inserting entries, and at least run + // some gc just for potentially increasing the version. keyUpdates += std::max(writeContext.accum.entries_inserted - writeContext.accum.entries_erased, - 0) * + 1) * 2; point_writes_total.add(writeContext.accum.point_writes);