diff options
| author | Dan Engelbrecht <[email protected]> | 2023-10-17 13:14:55 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-10-17 13:14:55 +0200 |
| commit | 43eb3563437fdb44c6dd34284a88d91bb75caec6 (patch) | |
| tree | b834140ee398f47a8af2b8cbed30d1286553c326 /src | |
| parent | 0.2.28-pre0 (diff) | |
| download | zen-43eb3563437fdb44c6dd34284a88d91bb75caec6.tar.xz zen-43eb3563437fdb44c6dd34284a88d91bb75caec6.zip | |
don't call compact references if caching is not enabled (#478)
Diffstat (limited to 'src')
| -rw-r--r-- | src/zenserver/cache/cachedisklayer.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/zenserver/cache/cachedisklayer.cpp b/src/zenserver/cache/cachedisklayer.cpp index ce5770763..ac7661200 100644 --- a/src/zenserver/cache/cachedisklayer.cpp +++ b/src/zenserver/cache/cachedisklayer.cpp @@ -1246,7 +1246,7 @@ ZenCacheDiskLayer::CacheBucket::ScrubStorage(ScrubContext& Ctx) IndexMap Index; { - RwLock::ExclusiveLockScope __(m_IndexLock); + RwLock::ExclusiveLockScope IndexLock(m_IndexLock); size_t EntryCount = m_Index.size(); Payloads.reserve(EntryCount); AccessTimes.reserve(EntryCount); @@ -1269,8 +1269,11 @@ ZenCacheDiskLayer::CacheBucket::ScrubStorage(ScrubContext& Ctx) m_Index.swap(Index); m_Payloads.swap(Payloads); m_AccessTimes.swap(AccessTimes); - m_FirstReferenceIndex.swap(FirstReferenceIndex); - CompactReferences(__); + if (m_EnableReferenceCaching) + { + m_FirstReferenceIndex.swap(FirstReferenceIndex); + CompactReferences(IndexLock); + } } } } @@ -1571,7 +1574,7 @@ ZenCacheDiskLayer::CacheBucket::CollectGarbage(GcContext& GcCtx) IndexMap Index; { - RwLock::ExclusiveLockScope _(m_IndexLock); + RwLock::ExclusiveLockScope IndexLock(m_IndexLock); Stopwatch Timer; const auto ___ = MakeGuard([&] { uint64_t ElapsedUs = Timer.GetElapsedTimeUs(); @@ -1601,8 +1604,11 @@ ZenCacheDiskLayer::CacheBucket::CollectGarbage(GcContext& GcCtx) m_Index.swap(Index); m_Payloads.swap(Payloads); m_AccessTimes.swap(AccessTimes); - m_FirstReferenceIndex.swap(FirstReferenceIndex); - CompactReferences(_); + if (m_EnableReferenceCaching) + { + m_FirstReferenceIndex.swap(FirstReferenceIndex); + CompactReferences(IndexLock); + } } GcCtx.AddDeletedCids(std::vector<IoHash>(DeletedChunks.begin(), DeletedChunks.end())); } |