aboutsummaryrefslogtreecommitdiff
path: root/zenserver/cache/structuredcachestore.h
diff options
context:
space:
mode:
Diffstat (limited to 'zenserver/cache/structuredcachestore.h')
-rw-r--r--zenserver/cache/structuredcachestore.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/zenserver/cache/structuredcachestore.h b/zenserver/cache/structuredcachestore.h
index 7936f9d84..364644cf7 100644
--- a/zenserver/cache/structuredcachestore.h
+++ b/zenserver/cache/structuredcachestore.h
@@ -7,6 +7,12 @@
#include <zencore/thread.h>
#include <zencore/uid.h>
#include <zenstore/cas.h>
+
+#pragma warning(push)
+#pragma warning(disable : 4127)
+#include <tsl/robin_map.h>
+#pragma warning(pop)
+
#include <compare>
#include <filesystem>
#include <unordered_map>
@@ -53,8 +59,8 @@ public:
private:
struct CacheBucket
{
- zen::RwLock m_bucketLock;
- std::unordered_map<zen::IoHash, zen::IoBuffer, zen::IoHash::Hasher> m_cacheMap;
+ zen::RwLock m_bucketLock;
+ tsl::robin_map<zen::IoHash, zen::IoBuffer, zen::IoHash::Hasher> m_cacheMap;
bool Get(const zen::IoHash& HashKey, ZenCacheValue& OutValue);
void Put(const zen::IoHash& HashKey, const ZenCacheValue& Value);
@@ -100,6 +106,7 @@ private:
std::filesystem::path m_RootDir;
ZenCacheMemoryLayer m_MemLayer;
ZenCacheDiskLayer m_DiskLayer;
+ uint64_t m_DiskLayerSizeThreshold = 4 * 1024;
};
/** Tracks cache entry access, stats and orchestrates cleanup activities