diff options
| author | Stefan Boberg <[email protected]> | 2023-05-16 13:34:08 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-05-16 13:34:08 +0200 |
| commit | 4c518511ccf35c79284bde3dd10860b9bb52b6a0 (patch) | |
| tree | 05f58d276ee82564832a2c9c078d3b1b6809d3cb /src/zenstore/blockstore.cpp | |
| parent | Moved EnableVTMode function into zencore (#311) (diff) | |
| download | zen-4c518511ccf35c79284bde3dd10860b9bb52b6a0.tar.xz zen-4c518511ccf35c79284bde3dd10860b9bb52b6a0.zip | |
Additional trace instrumentation (#312)
* added trace instrumentation to upstreamcache
* added asio trace instrumentation
* added trace annotations for project store
* added trace annotations for BlockStore
* added trace annotations for HttpClient
* added trace annotations for CAS/GC
Diffstat (limited to 'src/zenstore/blockstore.cpp')
| -rw-r--r-- | src/zenstore/blockstore.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/zenstore/blockstore.cpp b/src/zenstore/blockstore.cpp index 427364f84..e0876070b 100644 --- a/src/zenstore/blockstore.cpp +++ b/src/zenstore/blockstore.cpp @@ -6,6 +6,7 @@ #include <zencore/logging.h> #include <zencore/scopeguard.h> #include <zencore/timer.h> +#include <zencore/trace.h> #include <algorithm> @@ -121,6 +122,8 @@ constexpr uint64_t ScrubSmallChunkWindowSize = 4 * 1024 * 1024; std::unordered_map<uint32_t, uint64_t> BlockStore::Initialize(const std::filesystem::path& BlocksBasePath, uint64_t MaxBlockSize, uint64_t MaxBlockCount) { + ZEN_TRACE_CPU("BlockStore::Initialize"); + ZEN_ASSERT(MaxBlockSize > 0); ZEN_ASSERT(MaxBlockCount > 0); ZEN_ASSERT(IsPow2(MaxBlockCount)); @@ -179,6 +182,8 @@ BlockStore::Initialize(const std::filesystem::path& BlocksBasePath, uint64_t Max void BlockStore::Prune(const std::vector<BlockStoreLocation>& KnownLocations) { + ZEN_TRACE_CPU("BlockStore::Prune"); + RwLock::ExclusiveLockScope InsertLock(m_InsertLock); std::unordered_set<uint32_t> KnownBlocks; @@ -223,6 +228,8 @@ BlockStore::Close() void BlockStore::WriteChunk(const void* Data, uint64_t Size, uint64_t Alignment, const WriteChunkCallback& Callback) { + ZEN_TRACE_CPU("BlockStore::WriteChunk"); + ZEN_ASSERT(Data != nullptr); ZEN_ASSERT(Size > 0u); ZEN_ASSERT(Size <= m_MaxBlockSize); @@ -312,6 +319,8 @@ BlockStore::TryGetChunk(const BlockStoreLocation& Location) const void BlockStore::Flush() { + ZEN_TRACE_CPU("BlockStore::Flush"); + RwLock::ExclusiveLockScope _(m_InsertLock); if (m_CurrentInsertOffset > 0) { @@ -336,6 +345,9 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot, { return; } + + ZEN_TRACE_CPU("BlockStore::ReclaimSpace"); + uint64_t WriteBlockTimeUs = 0; uint64_t WriteBlockLongestTimeUs = 0; uint64_t ReadBlockTimeUs = 0; @@ -665,6 +677,8 @@ BlockStore::IterateChunks(const std::vector<BlockStoreLocation>& ChunkLocations, const IterateChunksSmallSizeCallback& SmallSizeCallback, const IterateChunksLargeSizeCallback& LargeSizeCallback) { + ZEN_TRACE_CPU("BlockStore::IterateChunks"); + ZEN_LOG_SCOPE("iterating chunks from '{}'", m_BlocksBasePath); std::vector<size_t> LocationIndexes; |