diff options
Diffstat (limited to 'src/zenserver/cache/cachedisklayer.cpp')
| -rw-r--r-- | src/zenserver/cache/cachedisklayer.cpp | 46 |
1 files changed, 33 insertions, 13 deletions
diff --git a/src/zenserver/cache/cachedisklayer.cpp b/src/zenserver/cache/cachedisklayer.cpp index 9d3935131..7adf07350 100644 --- a/src/zenserver/cache/cachedisklayer.cpp +++ b/src/zenserver/cache/cachedisklayer.cpp @@ -183,7 +183,7 @@ ZenCacheDiskLayer::CacheBucket::OpenOrCreate(std::filesystem::path BucketDir, bo { using namespace std::literals; - ZEN_TRACE_CPU("Z$::Bucket::OpenOrCreate"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::OpenOrCreate"); ZEN_LOG_SCOPE("opening cache bucket '{}'", BucketDir); @@ -232,6 +232,8 @@ ZenCacheDiskLayer::CacheBucket::OpenOrCreate(std::filesystem::path BucketDir, bo if (!IsNew) { + ZEN_TRACE_CPU("Z$::Disk::Bucket::OpenOrCreate::Manifest"); + Stopwatch Timer; const auto _ = MakeGuard([&] { ZEN_INFO("read store manifest '{}' in {}", ManifestPath, NiceTimeSpanMs(Timer.GetElapsedTimeMs())); }); @@ -277,7 +279,7 @@ ZenCacheDiskLayer::CacheBucket::OpenOrCreate(std::filesystem::path BucketDir, bo void ZenCacheDiskLayer::CacheBucket::MakeIndexSnapshot() { - ZEN_TRACE_CPU("Z$::Bucket::MakeIndexSnapshot"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::MakeIndexSnapshot"); uint64_t LogCount = m_SlogFile.GetLogCount(); if (m_LogFlushPosition == LogCount) @@ -362,7 +364,7 @@ ZenCacheDiskLayer::CacheBucket::MakeIndexSnapshot() uint64_t ZenCacheDiskLayer::CacheBucket::ReadIndexFile(const std::filesystem::path& IndexPath, uint32_t& OutVersion) { - ZEN_TRACE_CPU("Z$::Bucket::ReadIndexFile"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::ReadIndexFile"); if (std::filesystem::is_regular_file(IndexPath)) { @@ -437,7 +439,7 @@ ZenCacheDiskLayer::CacheBucket::ReadIndexFile(const std::filesystem::path& Index uint64_t ZenCacheDiskLayer::CacheBucket::ReadLog(const std::filesystem::path& LogPath, uint64_t SkipEntryCount) { - ZEN_TRACE_CPU("Z$::Bucket::ReadLog"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::ReadLog"); if (std::filesystem::is_regular_file(LogPath)) { @@ -492,7 +494,7 @@ ZenCacheDiskLayer::CacheBucket::ReadLog(const std::filesystem::path& LogPath, ui void ZenCacheDiskLayer::CacheBucket::OpenLog(const bool IsNew) { - ZEN_TRACE_CPU("Z$::Bucket::OpenLog"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::OpenLog"); m_TotalStandaloneSize = 0; @@ -624,6 +626,8 @@ ZenCacheDiskLayer::CacheBucket::BuildPath(PathBuilderBase& Path, const IoHash& H IoBuffer ZenCacheDiskLayer::CacheBucket::GetInlineCacheValue(const DiskLocation& Loc) const { + ZEN_TRACE_CPU("Z$::Disk::Bucket::GetInlineCacheValue"); + BlockStoreLocation Location = Loc.GetBlockLocation(m_PayloadAlignment); IoBuffer Value = m_BlockStore.TryGetChunk(Location); @@ -638,7 +642,7 @@ ZenCacheDiskLayer::CacheBucket::GetInlineCacheValue(const DiskLocation& Loc) con IoBuffer ZenCacheDiskLayer::CacheBucket::GetStandaloneCacheValue(const DiskLocation& Loc, const IoHash& HashKey) const { - ZEN_TRACE_CPU("Z$::Bucket::GetStandaloneCacheValue"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::GetStandaloneCacheValue"); ExtendablePathBuilder<256> DataFilePath; BuildPath(DataFilePath, HashKey); @@ -723,7 +727,7 @@ ZenCacheDiskLayer::CacheBucket::Put(const IoHash& HashKey, const ZenCacheValue& bool ZenCacheDiskLayer::CacheBucket::Drop() { - ZEN_TRACE_CPU("Z$::Bucket::Drop"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::Drop"); RwLock::ExclusiveLockScope _(m_IndexLock); @@ -747,7 +751,7 @@ ZenCacheDiskLayer::CacheBucket::Drop() void ZenCacheDiskLayer::CacheBucket::Flush() { - ZEN_TRACE_CPU("Z$::Bucket::Flush"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::Flush"); m_BlockStore.Flush(); @@ -762,7 +766,7 @@ ZenCacheDiskLayer::CacheBucket::SaveManifest() { using namespace std::literals; - ZEN_TRACE_CPU("Z$::Bucket::SaveManifest"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::SaveManifest"); CbObjectWriter Writer; Writer << "BucketId"sv << m_BucketId; @@ -884,7 +888,7 @@ ValidateCacheBucketEntryValue(ZenContentType ContentType, IoBuffer Buffer) void ZenCacheDiskLayer::CacheBucket::ScrubStorage(ScrubContext& Ctx) { - ZEN_TRACE_CPU("Z$::Bucket::Scrub"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::Scrub"); ZEN_INFO("scrubbing '{}'", m_BucketDir); @@ -1123,7 +1127,7 @@ ZenCacheDiskLayer::CacheBucket::ScrubStorage(ScrubContext& Ctx) void ZenCacheDiskLayer::CacheBucket::GatherReferences(GcContext& GcCtx) { - ZEN_TRACE_CPU("Z$::DiskLayer::CacheBucket::GatherReferences"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::GatherReferences"); uint64_t WriteBlockTimeUs = 0; uint64_t WriteBlockLongestTimeUs = 0; @@ -1225,7 +1229,7 @@ ZenCacheDiskLayer::CacheBucket::GatherReferences(GcContext& GcCtx) void ZenCacheDiskLayer::CacheBucket::CollectGarbage(GcContext& GcCtx) { - ZEN_TRACE_CPU("Z$::DiskLayer::CacheBucket::CollectGarbage"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::CollectGarbage"); ZEN_DEBUG("collecting garbage from '{}'", m_BucketDir); @@ -1320,6 +1324,8 @@ ZenCacheDiskLayer::CacheBucket::CollectGarbage(GcContext& GcCtx) IndexMap Index; BlockStore::ReclaimSnapshotState BlockStoreState; { + ZEN_TRACE_CPU("Z$::Disk::Bucket::CollectGarbage::State"); + RwLock::SharedLockScope __(m_IndexLock); Stopwatch Timer; const auto ____ = MakeGuard([&] { @@ -1364,6 +1370,8 @@ ZenCacheDiskLayer::CacheBucket::CollectGarbage(GcContext& GcCtx) if (GcCtx.IsDeletionMode()) { + ZEN_TRACE_CPU("Z$::Disk::Bucket::CollectGarbage::Delete"); + std::error_code Ec; ExtendablePathBuilder<256> Path; @@ -1545,6 +1553,8 @@ ZenCacheDiskLayer::CacheBucket::CollectGarbage(GcContext& GcCtx) void ZenCacheDiskLayer::CacheBucket::UpdateAccessTimes(const std::vector<zen::access_tracking::KeyAccessTime>& AccessTimes) { + ZEN_TRACE_CPU("Z$::Disk::Bucket::UpdateAccessTimes"); + using namespace access_tracking; for (const KeyAccessTime& KeyTime : AccessTimes) @@ -1612,6 +1622,8 @@ ZenCacheDiskLayer::CacheBucket::GetValueDetails(const std::string_view ValueFilt void ZenCacheDiskLayer::CollectGarbage(GcContext& GcCtx) { + ZEN_TRACE_CPU("Z$::Disk::CollectGarbage"); + RwLock::SharedLockScope _(m_Lock); for (auto& Kv : m_Buckets) @@ -1639,7 +1651,7 @@ ZenCacheDiskLayer::UpdateAccessTimes(const zen::access_tracking::AccessTimes& Ac void ZenCacheDiskLayer::CacheBucket::PutStandaloneCacheValue(const IoHash& HashKey, const ZenCacheValue& Value) { - ZEN_TRACE_CPU("Z$::Bucket::PutStandaloneCacheValue"); + ZEN_TRACE_CPU("Z$::Disk::Bucket::PutStandaloneCacheValue"); uint64_t NewFileSize = Value.Value.Size(); @@ -1777,6 +1789,8 @@ ZenCacheDiskLayer::CacheBucket::PutStandaloneCacheValue(const IoHash& HashKey, c void ZenCacheDiskLayer::CacheBucket::PutInlineCacheValue(const IoHash& HashKey, const ZenCacheValue& Value) { + ZEN_TRACE_CPU("Z$::Disk::Bucket::PutInlineCacheValue"); + uint8_t EntryFlags = 0; if (Value.Value.GetContentType() == ZenContentType::kCbObject) @@ -1824,6 +1838,8 @@ ZenCacheDiskLayer::~ZenCacheDiskLayer() = default; bool ZenCacheDiskLayer::Get(std::string_view InBucket, const IoHash& HashKey, ZenCacheValue& OutValue) { + ZEN_TRACE_CPU("Z$::Disk::Get"); + const auto BucketName = std::string(InBucket); CacheBucket* Bucket = nullptr; @@ -1871,6 +1887,8 @@ ZenCacheDiskLayer::Get(std::string_view InBucket, const IoHash& HashKey, ZenCach void ZenCacheDiskLayer::Put(std::string_view InBucket, const IoHash& HashKey, const ZenCacheValue& Value) { + ZEN_TRACE_CPU("Z$::Disk::Put"); + const auto BucketName = std::string(InBucket); CacheBucket* Bucket = nullptr; @@ -2060,6 +2078,8 @@ ZenCacheDiskLayer::ScrubStorage(ScrubContext& Ctx) void ZenCacheDiskLayer::GatherReferences(GcContext& GcCtx) { + ZEN_TRACE_CPU("Z$::Disk::GatherReferences"); + RwLock::SharedLockScope _(m_Lock); for (auto& Kv : m_Buckets) |