diff options
| author | Stefan Boberg <[email protected]> | 2021-05-24 22:26:45 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2021-05-24 22:26:45 +0200 |
| commit | 457e5853d622f9d3cff7bcaed1c9966d73931078 (patch) | |
| tree | 79323336b98c6100789faa32c7810321954a61e7 /zenserver/cache/structuredcachestore.cpp | |
| parent | Added guards against zero-sized PUTs to structured cache (diff) | |
| download | zen-457e5853d622f9d3cff7bcaed1c9966d73931078.tar.xz zen-457e5853d622f9d3cff7bcaed1c9966d73931078.zip | |
Fixed index flags for standalone files
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) { |