diff options
| author | Stefan Boberg <[email protected]> | 2025-03-06 17:35:39 +0100 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2025-03-06 17:35:39 +0100 |
| commit | b044289e3c8fbc4eb4ffa5c1d96da51aa0a41f9b (patch) | |
| tree | a511dd945c87415fb5389e6579299095e3f3afc8 /src/zenstore/cache | |
| parent | switched std::vector -> eastl::vector (diff) | |
| download | zen-sb/eastl.tar.xz zen-sb/eastl.zip | |
std::span -> eastl::spansb/eastl
Diffstat (limited to 'src/zenstore/cache')
| -rw-r--r-- | src/zenstore/cache/cachedisklayer.cpp | 38 | ||||
| -rw-r--r-- | src/zenstore/cache/structuredcachestore.cpp | 58 |
2 files changed, 49 insertions, 47 deletions
diff --git a/src/zenstore/cache/cachedisklayer.cpp b/src/zenstore/cache/cachedisklayer.cpp index 2f648bc2d..bbd38d737 100644 --- a/src/zenstore/cache/cachedisklayer.cpp +++ b/src/zenstore/cache/cachedisklayer.cpp @@ -1266,7 +1266,7 @@ ZenCacheDiskLayer::CacheBucket::EndPutBatch(PutBatchHandle* Batch) noexcept } size_t IndexOffset = 0; - m_BlockStore.WriteChunks(Batch->Buffers, m_Configuration.PayloadAlignment, [&](std::span<BlockStoreLocation> Locations) { + m_BlockStore.WriteChunks(Batch->Buffers, m_Configuration.PayloadAlignment, [&](eastl::span<BlockStoreLocation> Locations) { ZEN_MEMSCOPE(GetCacheDiskTag()); eastl::vector<DiskIndexEntry> DiskEntries; { @@ -1527,12 +1527,12 @@ ZenCacheDiskLayer::CacheBucket::EndGetBatch(GetBatchHandle* Batch) noexcept { ZEN_TRACE_CPU("Z$::Bucket::EndGetBatch::ReadInline"); m_BlockStore.IterateChunks( - std::span{begin(InlineBlockLocations), end(InlineBlockLocations)}, - [&](uint32_t, std::span<const size_t> ChunkIndexes) -> bool { + eastl::span{begin(InlineBlockLocations), end(InlineBlockLocations)}, + [&](uint32_t, eastl::span<const size_t> ChunkIndexes) -> bool { // Only read into memory the IoBuffers we could potentially add to memcache const uint64_t LargeChunkSizeLimit = Max(m_Configuration.MemCacheSizeThreshold, 1u * 1024u); m_BlockStore.IterateBlock( - std::span{begin(InlineBlockLocations), end(InlineBlockLocations)}, + eastl::span{begin(InlineBlockLocations), end(InlineBlockLocations)}, ChunkIndexes, [this, &FillOne, &InlineDiskLocations, &InlineKeyIndexes](size_t ChunkIndex, const void* Data, @@ -1798,7 +1798,7 @@ ZenCacheDiskLayer::CacheBucket::Get(const IoHash& HashKey, ZenCacheValue& OutVal void ZenCacheDiskLayer::CacheBucket::Put(const IoHash& HashKey, const ZenCacheValue& Value, - std::span<IoHash> References, + eastl::span<IoHash> References, PutBatchHandle* OptionalBatchHandle) { ZEN_TRACE_CPU("Z$::Bucket::Put"); @@ -2236,7 +2236,7 @@ ZenCacheDiskLayer::CacheBucket::ScrubStorage(ScrubContext& Ctx) return true; }; - m_BlockStore.IterateChunks(ChunkLocations, [&](uint32_t, std::span<const size_t> ChunkIndexes) { + m_BlockStore.IterateChunks(ChunkLocations, [&](uint32_t, eastl::span<const size_t> ChunkIndexes) { return m_BlockStore.IterateBlock(ChunkLocations, ChunkIndexes, ValidateSmallChunk, ValidateLargeChunk, 0); }); } @@ -2404,7 +2404,7 @@ ZenCacheDiskLayer::CacheBucket::EnumerateBucketContents( } void -ZenCacheDiskLayer::CacheBucket::PutStandaloneCacheValue(const IoHash& HashKey, const ZenCacheValue& Value, std::span<IoHash> References) +ZenCacheDiskLayer::CacheBucket::PutStandaloneCacheValue(const IoHash& HashKey, const ZenCacheValue& Value, eastl::span<IoHash> References) { ZEN_TRACE_CPU("Z$::Bucket::PutStandaloneCacheValue"); @@ -2651,7 +2651,7 @@ ZenCacheDiskLayer::CacheBucket::GetMetaData(RwLock::SharedLockScope&, const Buck void ZenCacheDiskLayer::CacheBucket::PutInlineCacheValue(const IoHash& HashKey, const ZenCacheValue& Value, - std::span<IoHash> References, + eastl::span<IoHash> References, PutBatchHandle* OptionalBatchHandle) { ZEN_TRACE_CPU("Z$::Bucket::PutInlineCacheValue"); @@ -3098,10 +3098,10 @@ ZenCacheDiskLayer::CacheBucket::RemoveExpiredData(GcCtx& Ctx, GcStats& Stats) } bool -ZenCacheDiskLayer::CacheBucket::ReadAttachmentsFromMetaData(uint32_t BlockIndex, - std::span<const IoHash> InlineKeys, - std::span<const std::size_t> ChunkIndexes, - eastl::vector<IoHash>& OutReferences) const +ZenCacheDiskLayer::CacheBucket::ReadAttachmentsFromMetaData(uint32_t BlockIndex, + eastl::span<const IoHash> InlineKeys, + eastl::span<const std::size_t> ChunkIndexes, + eastl::vector<IoHash>& OutReferences) const { ZEN_TRACE_CPU("Z$::Bucket::ReadAttachmentsFromMetaData"); IoBuffer MetaDataPayload = m_BlockStore.GetMetaData(BlockIndex); @@ -3117,7 +3117,7 @@ ZenCacheDiskLayer::CacheBucket::ReadAttachmentsFromMetaData(uint32_t BlockI return GetAttachmentsFromMetaData<IoHash, IoHash>( MetaDataPayload, cache::impl::BlockMetaDataExpectedMagic, - [&](std::span<const IoHash> Keys, std::span<const uint32_t> AttachmentCounts, std::span<const IoHash> Attachments) { + [&](eastl::span<const IoHash> Keys, eastl::span<const uint32_t> AttachmentCounts, eastl::span<const IoHash> Attachments) { auto AttachmentReadIt = Attachments.begin(); OutReferences.resize(OutReferences.size() + Attachments.size()); auto OutReferencesWriteIt = OutReferences.end() - Attachments.size(); @@ -3296,7 +3296,7 @@ ZenCacheDiskLayer::CacheBucket::GetReferences(const LoggerRef& Logger, cache::impl::BlockMetaDataExpectedMagic, Keys, AttachmentCounts, - std::span<const IoHash>(OutReferences) + eastl::span<const IoHash>(OutReferences) .subspan(PrecachedReferencesStart, OutReferences.size() - PrecachedReferencesStart)) .Flatten() .AsIoBuffer(); @@ -3421,7 +3421,7 @@ public: FilterReferences(Ctx, fmt::format("cachebucket [LOCKSTATE] '{}'", m_CacheBucket.m_BucketDir), m_AddedReferences); } - virtual std::span<IoHash> GetUnusedReferences(GcCtx& Ctx, std::span<IoHash> IoCids) override + virtual eastl::span<IoHash> GetUnusedReferences(GcCtx& Ctx, eastl::span<IoHash> IoCids) override { ZEN_TRACE_CPU("Z$::Bucket::GetUnusedReferences"); @@ -3443,9 +3443,9 @@ public: NiceTimeSpanMs(Timer.GetElapsedTimeMs())); }); - std::span<IoHash> UnusedReferences = KeepUnusedReferences(m_PrecachedReferences, IoCids); - UnusedReferences = KeepUnusedReferences(m_AddedReferences, UnusedReferences); - UsedCount = IoCids.size() - UnusedReferences.size(); + eastl::span<IoHash> UnusedReferences = KeepUnusedReferences(m_PrecachedReferences, IoCids); + UnusedReferences = KeepUnusedReferences(m_AddedReferences, UnusedReferences); + UsedCount = IoCids.size() - UnusedReferences.size(); return UnusedReferences; } @@ -3857,7 +3857,7 @@ void ZenCacheDiskLayer::Put(std::string_view InBucket, const IoHash& HashKey, const ZenCacheValue& Value, - std::span<IoHash> References, + eastl::span<IoHash> References, PutBatchHandle* OptionalBatchHandle) { ZEN_TRACE_CPU("Z$::Put"); diff --git a/src/zenstore/cache/structuredcachestore.cpp b/src/zenstore/cache/structuredcachestore.cpp index 87c95f8a2..d86cbf414 100644 --- a/src/zenstore/cache/structuredcachestore.cpp +++ b/src/zenstore/cache/structuredcachestore.cpp @@ -256,7 +256,7 @@ void ZenCacheNamespace::Put(std::string_view InBucket, const IoHash& HashKey, const ZenCacheValue& Value, - std::span<IoHash> References, + eastl::span<IoHash> References, PutBatchHandle* OptionalBatchHandle) { ZEN_TRACE_CPU(OptionalBatchHandle ? "Z$::Namespace::Put(Batched)" : "Z$::Namespace::Put"); @@ -722,7 +722,7 @@ ZenCacheStore::Put(const CacheRequestContext& Context, std::string_view Bucket, const IoHash& HashKey, const ZenCacheValue& Value, - std::span<IoHash> References, + eastl::span<IoHash> References, PutBatch* OptionalBatchHandle) { // Ad hoc rejection of known bad usage patterns for DDC bucket names @@ -1230,7 +1230,7 @@ public: FilterReferences(Ctx, fmt::format("cachestore [LOCKSTATE] '{}'", "cachestore"), m_References); } - virtual std::span<IoHash> GetUnusedReferences(GcCtx& Ctx, std::span<IoHash> IoCids) override + virtual eastl::span<IoHash> GetUnusedReferences(GcCtx& Ctx, eastl::span<IoHash> IoCids) override { ZEN_TRACE_CPU("Z$::GetUnusedReferences"); @@ -1252,8 +1252,8 @@ public: NiceTimeSpanMs(Timer.GetElapsedTimeMs())); }); - std::span<IoHash> UnusedReferences = KeepUnusedReferences(m_References, IoCids); - UsedCount = IoCids.size() - UnusedReferences.size(); + eastl::span<IoHash> UnusedReferences = KeepUnusedReferences(m_References, IoCids); + UsedCount = IoCids.size() - UnusedReferences.size(); return UnusedReferences; } @@ -1307,7 +1307,7 @@ namespace testutils { std::pair<Oid, IoBuffer> CreateBinaryBlob(size_t Size) { return {Oid::NewOid(), CreateRandomBlob(Size)}; } - eastl::vector<std::pair<Oid, CompressedBuffer>> CreateCompressedAttachment(CidStore& Store, const std::span<const size_t>& Sizes) + eastl::vector<std::pair<Oid, CompressedBuffer>> CreateCompressedAttachment(CidStore& Store, const eastl::span<const size_t>& Sizes) { eastl::vector<std::pair<Oid, CompressedBuffer>> Result; Result.reserve(Sizes.size()); @@ -1321,7 +1321,7 @@ namespace testutils { return Result; } - std::pair<IoHash, IoBuffer> CreateRecord(std::span<std::pair<Oid, CompressedBuffer>> Attachments) + std::pair<IoHash, IoBuffer> CreateRecord(eastl::span<std::pair<Oid, CompressedBuffer>> Attachments) { Oid Id = Oid::NewOid(); IoHash Key = ToIoHash(Id); @@ -2103,27 +2103,29 @@ TEST_CASE("cachestore.newgc.basics") std::unordered_map<IoHash, CacheEntry> CacheEntries; - auto CreateCacheRecord = - [&](ZenCacheNamespace& Zcs, CidStore& CidStore, std::string_view Bucket, std::span<std::pair<Oid, CompressedBuffer>> Attachments) { - eastl::vector<IoHash> AttachmentKeys; - for (const auto& Attachment : Attachments) - { - AttachmentKeys.push_back(Attachment.second.DecodeRawHash()); - } - auto Record = CreateRecord(Attachments); - Zcs.Put(Bucket, - Record.first, - {.Value = Record.second, - .RawSize = Record.second.GetSize(), - .RawHash = IoHash::HashBuffer(Record.second.GetData(), Record.second.GetSize())}, - AttachmentKeys); - for (const auto& Attachment : Attachments) - { - CidStore.AddChunk(Attachment.second.GetCompressed().Flatten().AsIoBuffer(), Attachment.second.DecodeRawHash()); - } - CacheEntries.insert({Record.first, CacheEntry{.Data = Record.second, .Attachments = {Attachments.begin(), Attachments.end()}}}); - return Record.first; - }; + auto CreateCacheRecord = [&](ZenCacheNamespace& Zcs, + CidStore& CidStore, + std::string_view Bucket, + eastl::span<std::pair<Oid, CompressedBuffer>> Attachments) { + eastl::vector<IoHash> AttachmentKeys; + for (const auto& Attachment : Attachments) + { + AttachmentKeys.push_back(Attachment.second.DecodeRawHash()); + } + auto Record = CreateRecord(Attachments); + Zcs.Put(Bucket, + Record.first, + {.Value = Record.second, + .RawSize = Record.second.GetSize(), + .RawHash = IoHash::HashBuffer(Record.second.GetData(), Record.second.GetSize())}, + AttachmentKeys); + for (const auto& Attachment : Attachments) + { + CidStore.AddChunk(Attachment.second.GetCompressed().Flatten().AsIoBuffer(), Attachment.second.DecodeRawHash()); + } + CacheEntries.insert({Record.first, CacheEntry{.Data = Record.second, .Attachments = {Attachments.begin(), Attachments.end()}}}); + return Record.first; + }; auto CreateCacheValue = [&](ZenCacheNamespace& Zcs, std::string_view Bucket, size_t Size) { std::pair<Oid, IoBuffer> CacheValue = CreateBinaryBlob(Size); IoHash Key = ToIoHash(CacheValue.first); |