diff options
Diffstat (limited to 'src/zenstore/gc.cpp')
| -rw-r--r-- | src/zenstore/gc.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/zenstore/gc.cpp b/src/zenstore/gc.cpp index 262c94feb..b53ca4bab 100644 --- a/src/zenstore/gc.cpp +++ b/src/zenstore/gc.cpp @@ -599,7 +599,7 @@ GcManager::RemoveGcReferenceStore(GcReferenceStore& ReferenceStore) GcResult GcManager::CollectGarbage(const GcSettings& Settings) { - ZEN_TRACE_CPU("Gc::CollectGarbage(v2)"); + ZEN_TRACE_CPU("GcV2::CollectGarbage"); GcCtx Ctx{.Settings = Settings, .IsCancelledFlag = m_CancelGC}; GcResult Result; @@ -630,6 +630,7 @@ GcManager::CollectGarbage(const GcSettings& Settings) { return Sum(Result, true); } + ZEN_TRACE_CPU("GcV2::RemoveExpiredData"); Latch WorkLeft(1); { @@ -681,6 +682,8 @@ GcManager::CollectGarbage(const GcSettings& Settings) std::unordered_map<size_t, std::unique_ptr<GcReferencePruner>> ReferencePruners; if (!m_GcReferenceStores.empty()) { + ZEN_TRACE_CPU("GcV2::CreateReferencePruners"); + ReferencePruners.reserve(m_GcReferenceStores.size()); Latch WorkLeft(1); RwLock ReferencePrunersLock; @@ -740,6 +743,8 @@ GcManager::CollectGarbage(const GcSettings& Settings) std::unordered_map<std::unique_ptr<GcReferenceChecker>, size_t> ReferenceCheckers; if (!m_GcReferencers.empty()) { + ZEN_TRACE_CPU("GcV2::CreateReferenceCheckers"); + ReferenceCheckers.reserve(m_GcReferencers.size()); Latch WorkLeft(1); RwLock ReferenceCheckersLock; @@ -813,6 +818,7 @@ GcManager::CollectGarbage(const GcSettings& Settings) { return Sum(Result, true); } + ZEN_TRACE_CPU("GcV2::LockState"); // Locking all references checkers so we have a steady state of which references are used // From this point we have blocked all writes to all References (DiskBucket/ProjectStore) until @@ -870,6 +876,8 @@ GcManager::CollectGarbage(const GcSettings& Settings) // Ask stores to remove data that the ReferenceCheckers says are not referenced - this should be a lightweight // operation that only updates in-memory index, actual disk changes should be done by the ReferenceStoreCompactors + ZEN_TRACE_CPU("GcV2::RemoveUnreferencedData"); + Latch WorkLeft(1); { @@ -932,6 +940,8 @@ GcManager::CollectGarbage(const GcSettings& Settings) return Sum(Result, true); } + ZEN_TRACE_CPU("GcV2::CompactStores"); + auto ClaimDiskReserve = [&]() -> uint64_t { if (!std::filesystem::is_regular_file(Settings.DiskReservePath)) { |