aboutsummaryrefslogtreecommitdiff
path: root/src/zenstore/cache
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2025-03-06 17:35:39 +0100
committerStefan Boberg <[email protected]>2025-03-06 17:35:39 +0100
commitb044289e3c8fbc4eb4ffa5c1d96da51aa0a41f9b (patch)
treea511dd945c87415fb5389e6579299095e3f3afc8 /src/zenstore/cache
parentswitched std::vector -> eastl::vector (diff)
downloadzen-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.cpp38
-rw-r--r--src/zenstore/cache/structuredcachestore.cpp58
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);