From b57cb102bdbba3ef3fbcb3d9c66b78e7ca406891 Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Thu, 14 Sep 2023 13:41:06 -0400 Subject: More statistics for Cache, Project Store and Cid Store (#405) Cache: requestcount, badrequestcount, writes Project Store: requestcount Cid Store: cidhits, cidmisses, cidwrites --- src/zenstore/cidstore.cpp | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'src/zenstore/cidstore.cpp') diff --git a/src/zenstore/cidstore.cpp b/src/zenstore/cidstore.cpp index 734ae8433..e366a6cb4 100644 --- a/src/zenstore/cidstore.cpp +++ b/src/zenstore/cidstore.cpp @@ -35,11 +35,26 @@ struct CidStore::Impl Payload.SetContentType(ZenContentType::kCompressedBinary); CasStore::InsertResult Result = m_CasStore.InsertChunk(Payload, RawHash, static_cast(Mode)); - + if (Result.New) + { + WriteCount++; + } return {.New = Result.New}; } - IoBuffer FindChunkByCid(const IoHash& DecompressedId) { return m_CasStore.FindChunk(DecompressedId); } + IoBuffer FindChunkByCid(const IoHash& DecompressedId) + { + IoBuffer Result = m_CasStore.FindChunk(DecompressedId); + if (Result) + { + HitCount++; + } + else + { + MissCount++; + } + return Result; + } bool ContainsChunk(const IoHash& DecompressedId) { return m_CasStore.ContainsChunk(DecompressedId); } @@ -62,6 +77,12 @@ struct CidStore::Impl m_CasStore.ScrubStorage(Ctx); } + CidStoreStats Stats() { return CidStoreStats{.HitCount = HitCount, .MissCount = MissCount, .WriteCount = WriteCount}; } + + std::atomic_uint64_t HitCount{}; + std::atomic_uint64_t MissCount{}; + std::atomic_uint64_t WriteCount{}; + uint64_t m_LastScrubTime = 0; }; @@ -123,4 +144,10 @@ CidStore::TotalSize() const return m_Impl->m_CasStore.TotalSize(); } +CidStoreStats +CidStore::Stats() const +{ + return m_Impl->Stats(); +} + } // namespace zen -- cgit v1.2.3