diff options
| author | Per Larsson <[email protected]> | 2021-09-21 15:10:49 +0200 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2021-09-21 15:10:49 +0200 |
| commit | 9451d4019fd57c7b8f967b4188e40c4b0636f85e (patch) | |
| tree | 4cdafb5bdd3c17bf257b467fae5abfcd0e664c9b /zenserver | |
| parent | Refactored out get/set cache record. (diff) | |
| parent | Merge branch 'main' of https://github.com/EpicGames/zen (diff) | |
| download | zen-9451d4019fd57c7b8f967b4188e40c4b0636f85e.tar.xz zen-9451d4019fd57c7b8f967b4188e40c4b0636f85e.zip | |
Merge branch 'main' of https://github.com/EpicGames/zen
Diffstat (limited to 'zenserver')
| -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 87ec10520..faef3eb12 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 8e0d23c6e..edf011ae4 100644 --- a/zenserver/cache/structuredcache.h +++ b/zenserver/cache/structuredcache.h @@ -83,6 +83,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 |