aboutsummaryrefslogtreecommitdiff
path: root/zenserver
diff options
context:
space:
mode:
authorPer Larsson <[email protected]>2021-09-21 15:10:49 +0200
committerPer Larsson <[email protected]>2021-09-21 15:10:49 +0200
commit9451d4019fd57c7b8f967b4188e40c4b0636f85e (patch)
tree4cdafb5bdd3c17bf257b467fae5abfcd0e664c9b /zenserver
parentRefactored out get/set cache record. (diff)
parentMerge branch 'main' of https://github.com/EpicGames/zen (diff)
downloadzen-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.cpp11
-rw-r--r--zenserver/cache/structuredcache.h1
-rw-r--r--zenserver/cache/structuredcachestore.cpp7
-rw-r--r--zenserver/cache/structuredcachestore.h1
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