diff options
| author | Stefan Boberg <[email protected]> | 2021-09-21 14:17:23 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2021-09-21 14:17:23 +0200 |
| commit | c35c36bf81cae52dacf8e3f8dc858bb376ca424b (patch) | |
| tree | 891475f41d4c8be86cbb3f2bd6c269f596ff668d /zenserver/cache | |
| parent | Removed scrubbing from CasImpl::Initialize since this is triggered by higher ... (diff) | |
| download | zen-c35c36bf81cae52dacf8e3f8dc858bb376ca424b.tar.xz zen-c35c36bf81cae52dacf8e3f8dc858bb376ca424b.zip | |
Wired up scrubbing to more higher level services
Also moved sharding logic for filecas into a function to redduce cut/pasta
Diffstat (limited to 'zenserver/cache')
| -rw-r--r-- | zenserver/cache/structuredcache.cpp | 11 | ||||
| -rw-r--r-- | zenserver/cache/structuredcache.h | 1 | ||||
| -rw-r--r-- | zenserver/cache/structuredcachestore.cpp | 7 | ||||
| -rw-r--r-- | zenserver/cache/structuredcachestore.h | 1 |
4 files changed, 19 insertions, 1 deletions
diff --git a/zenserver/cache/structuredcache.cpp b/zenserver/cache/structuredcache.cpp index 7f1fe7b44..533fea498 100644 --- a/zenserver/cache/structuredcache.cpp +++ b/zenserver/cache/structuredcache.cpp @@ -176,7 +176,16 @@ HttpStructuredCacheService::Flush() void HttpStructuredCacheService::Scrub(ScrubContext& Ctx) { - ZEN_UNUSED(Ctx); + if (m_LastScrubTime == Ctx.ScrubTimestamp()) + { + return; + } + + m_LastScrubTime = Ctx.ScrubTimestamp(); + + m_CasStore.Scrub(Ctx); + m_CidStore.Scrub(Ctx); + m_CacheStore.Scrub(Ctx); } void diff --git a/zenserver/cache/structuredcache.h b/zenserver/cache/structuredcache.h index bd163dd1d..c673ea1f5 100644 --- a/zenserver/cache/structuredcache.h +++ b/zenserver/cache/structuredcache.h @@ -81,6 +81,7 @@ private: zen::CasStore& m_CasStore; zen::CidStore& m_CidStore; std::unique_ptr<UpstreamCache> m_UpstreamCache; + uint64_t m_LastScrubTime = 0; }; } // namespace zen diff --git a/zenserver/cache/structuredcachestore.cpp b/zenserver/cache/structuredcachestore.cpp index 502ca6605..3d80bb14c 100644 --- a/zenserver/cache/structuredcachestore.cpp +++ b/zenserver/cache/structuredcachestore.cpp @@ -108,6 +108,13 @@ ZenCacheStore::Flush() void ZenCacheStore::Scrub(ScrubContext& Ctx) { + if (m_LastScrubTime == Ctx.ScrubTimestamp()) + { + return; + } + + m_LastScrubTime = Ctx.ScrubTimestamp(); + m_DiskLayer.Scrub(Ctx); m_MemLayer.Scrub(Ctx); } diff --git a/zenserver/cache/structuredcachestore.h b/zenserver/cache/structuredcachestore.h index fdf4a8cfe..2cc3abb53 100644 --- a/zenserver/cache/structuredcachestore.h +++ b/zenserver/cache/structuredcachestore.h @@ -112,6 +112,7 @@ private: ZenCacheMemoryLayer m_MemLayer; ZenCacheDiskLayer m_DiskLayer; uint64_t m_DiskLayerSizeThreshold = 4 * 1024; + uint64_t m_LastScrubTime = 0; }; /** Tracks cache entry access, stats and orchestrates cleanup activities |