aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
-rw-r--r--src/zenserver/cache/cachedisklayer.cpp4
-rw-r--r--src/zenserver/zenserver.cpp5
3 files changed, 9 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 21dc94c27..34d131076 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,7 @@
- Improvement: Factored out some compiler / platform definitions into standalone `zenbase` header-only library, along with header-only helpers which can be used standalone. This is intended to support out-of-tree code like pluggable transports etc but also provides more fine grained dependencies
- Improvement: Replaced use of openssl on Windows with bcrypt, which reduces executable size by some 40%
- Improvement: We no longer put cache entries into the memory cache on Put, only on Get
+- Improvement: Dedicated servers now have a different heuristic for deciding when to use standalone files to store cache records/values in the structured cache disk layer. This helps performance on heavy-traffic servers
## 0.2.30
- Bugfix: Block sending error reports from sentry_sink to Sentry unless the log is actually an error log
diff --git a/src/zenserver/cache/cachedisklayer.cpp b/src/zenserver/cache/cachedisklayer.cpp
index d66430f15..2d28c4875 100644
--- a/src/zenserver/cache/cachedisklayer.cpp
+++ b/src/zenserver/cache/cachedisklayer.cpp
@@ -172,9 +172,11 @@ ZenCacheDiskLayer::CacheBucket::CacheBucket(GcManager& Gc,
{
if (m_BucketName.starts_with(std::string_view("legacy")) || m_BucketName.ends_with(std::string_view("shadermap")))
{
+ const uint64_t LegacyOverrideSize = 16 * 1024 * 1024;
+
// This is pretty ad hoc but in order to avoid too many individual files
// it makes sense to have a different strategy for legacy values
- m_Configuration.LargeObjectThreshold = 16 * 1024 * 1024;
+ m_Configuration.LargeObjectThreshold = Max(m_Configuration.LargeObjectThreshold, LegacyOverrideSize);
}
m_Gc.AddGcReferencer(*this);
}
diff --git a/src/zenserver/zenserver.cpp b/src/zenserver/zenserver.cpp
index f9d376c37..7111900ec 100644
--- a/src/zenserver/zenserver.cpp
+++ b/src/zenserver/zenserver.cpp
@@ -437,6 +437,11 @@ ZenServer::InitializeStructuredCache(const ZenServerOptions& ServerOptions)
Config.NamespaceConfig.DiskLayerConfig.MemCacheTrimIntervalSeconds = ServerOptions.StructuredCacheConfig.MemTrimIntervalSeconds;
Config.NamespaceConfig.DiskLayerConfig.MemCacheMaxAgeSeconds = ServerOptions.StructuredCacheConfig.MemMaxAgeSeconds;
+ if (ServerOptions.IsDedicated)
+ {
+ Config.NamespaceConfig.DiskLayerConfig.BucketConfig.LargeObjectThreshold = 128 * 1024 * 1024;
+ }
+
m_CacheStore = new ZenCacheStore(m_GcManager, *m_JobQueue, m_DataRoot / "cache", Config, m_GcManager.GetDiskWriteBlocker());
const ZenUpstreamCacheConfig& UpstreamConfig = ServerOptions.UpstreamCacheConfig;