aboutsummaryrefslogtreecommitdiff
path: root/src/zenstore/blockstore.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2023-05-16 13:34:08 +0200
committerGitHub <[email protected]>2023-05-16 13:34:08 +0200
commit4c518511ccf35c79284bde3dd10860b9bb52b6a0 (patch)
tree05f58d276ee82564832a2c9c078d3b1b6809d3cb /src/zenstore/blockstore.cpp
parentMoved EnableVTMode function into zencore (#311) (diff)
downloadzen-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.cpp14
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;