diff options
Diffstat (limited to 'zenserver/cache/structuredcachestore.cpp')
| -rw-r--r-- | zenserver/cache/structuredcachestore.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/zenserver/cache/structuredcachestore.cpp b/zenserver/cache/structuredcachestore.cpp index 46690d503..764bce93e 100644 --- a/zenserver/cache/structuredcachestore.cpp +++ b/zenserver/cache/structuredcachestore.cpp @@ -43,10 +43,20 @@ ZenCacheStore::Get(std::string_view InBucket, const zen::IoHash& HashKey, ZenCac { bool Ok = m_MemLayer.Get(InBucket, HashKey, OutValue); + if (Ok) + { + ZEN_ASSERT(OutValue.Value.Size()); + } + if (!Ok) { Ok = m_DiskLayer.Get(InBucket, HashKey, OutValue); + if (Ok) + { + ZEN_ASSERT(OutValue.Value.Size()); + } + if (Ok && (OutValue.Value.Size() <= m_DiskLayerSizeThreshold)) { m_MemLayer.Put(InBucket, HashKey, OutValue); @@ -61,12 +71,14 @@ ZenCacheStore::Put(std::string_view InBucket, const zen::IoHash& HashKey, const { // Store value and index + ZEN_ASSERT(Value.Value.Size()); + + m_DiskLayer.Put(InBucket, HashKey, Value); + if (Value.Value.Size() <= m_DiskLayerSizeThreshold) { m_MemLayer.Put(InBucket, HashKey, Value); } - - m_DiskLayer.Put(InBucket, HashKey, Value); } ////////////////////////////////////////////////////////////////////////// @@ -460,7 +472,7 @@ ZenCacheDiskLayer::CacheBucket::PutLargeObject(const zen::IoHash& HashKey, const // Update index - uint64_t EntryFlags = 0; + uint64_t EntryFlags = DiskLocation::kStandaloneFile; if (Value.Value.GetContentType() == ZenContentType::kCbObject) { |