aboutsummaryrefslogtreecommitdiff
path: root/src/zenstore/blockstore.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2024-12-02 12:21:53 +0100
committerGitHub Enterprise <[email protected]>2024-12-02 12:21:53 +0100
commite6f44577f469e891ed8dab1492a4c53224e0b765 (patch)
tree47334606ce62fb6bf1975cdc09276ced335599f4 /src/zenstore/blockstore.cpp
parent5.5.15-pre0 (diff)
downloadzen-e6f44577f469e891ed8dab1492a4c53224e0b765.tar.xz
zen-e6f44577f469e891ed8dab1492a4c53224e0b765.zip
added support for dynamic LLM tags (#245)
* added FLLMTag which can be used to register memory tags outside of core * changed `UE_MEMSCOPE` -> `ZEN_MEMSCOPE` for consistency * instrumented some subsystems with dynamic tags
Diffstat (limited to 'src/zenstore/blockstore.cpp')
-rw-r--r--src/zenstore/blockstore.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/zenstore/blockstore.cpp b/src/zenstore/blockstore.cpp
index 5f2f5cba0..9ad672060 100644
--- a/src/zenstore/blockstore.cpp
+++ b/src/zenstore/blockstore.cpp
@@ -26,10 +26,20 @@ ZEN_THIRD_PARTY_INCLUDES_END
# include <random>
#endif
+#include <zencore/memory/llm.h>
+
//////////////////////////////////////////////////////////////////////////
namespace zen {
+const FLLMTag&
+GetBlocksTag()
+{
+ static FLLMTag _("blocks");
+
+ return _;
+}
+
//////////////////////////////////////////////////////////////////////////
BlockStoreFile::BlockStoreFile(const std::filesystem::path& BlockPath) : m_Path(BlockPath)
@@ -266,6 +276,7 @@ BlockStore::~BlockStore()
void
BlockStore::Initialize(const std::filesystem::path& BlocksBasePath, uint64_t MaxBlockSize, uint64_t MaxBlockCount)
{
+ ZEN_MEMSCOPE(GetBlocksTag());
ZEN_TRACE_CPU("BlockStore::Initialize");
ZEN_ASSERT(MaxBlockSize > 0);
@@ -332,6 +343,7 @@ BlockStore::Initialize(const std::filesystem::path& BlocksBasePath, uint64_t Max
void
BlockStore::SyncExistingBlocksOnDisk(const BlockIndexSet& KnownBlocks)
{
+ ZEN_MEMSCOPE(GetBlocksTag());
ZEN_TRACE_CPU("BlockStore::SyncExistingBlocksOnDisk");
RwLock::ExclusiveLockScope InsertLock(m_InsertLock);
@@ -378,6 +390,7 @@ BlockStore::SyncExistingBlocksOnDisk(const BlockIndexSet& KnownBlocks)
BlockStore::BlockEntryCountMap
BlockStore::GetBlocksToCompact(const BlockUsageMap& BlockUsage, uint32_t BlockUsageThresholdPercent)
{
+ ZEN_MEMSCOPE(GetBlocksTag());
ZEN_TRACE_CPU("BlockStoreFile::GetBlocksToCompact");
BlockEntryCountMap Result;
{
@@ -507,6 +520,7 @@ BlockStore::GetFreeBlockIndex(uint32_t ProbeIndex, RwLock::ExclusiveLockScope&,
void
BlockStore::WriteChunk(const void* Data, uint64_t Size, uint32_t Alignment, const WriteChunkCallback& Callback)
{
+ ZEN_MEMSCOPE(GetBlocksTag());
ZEN_TRACE_CPU("BlockStore::WriteChunk");
ZEN_ASSERT(Data != nullptr);
@@ -565,6 +579,7 @@ BlockStore::WriteChunk(const void* Data, uint64_t Size, uint32_t Alignment, cons
void
BlockStore::WriteChunks(std::span<IoBuffer> Datas, uint32_t Alignment, const WriteChunksCallback& Callback)
{
+ ZEN_MEMSCOPE(GetBlocksTag());
ZEN_TRACE_CPU("BlockStore::WriteChunks");
ZEN_ASSERT(!Datas.empty());
@@ -680,6 +695,7 @@ BlockStore::TryGetChunk(const BlockStoreLocation& Location) const
void
BlockStore::Flush(bool ForceNewBlock)
{
+ ZEN_MEMSCOPE(GetBlocksTag());
ZEN_TRACE_CPU("BlockStore::Flush");
if (ForceNewBlock)
@@ -710,6 +726,7 @@ BlockStore::IterateBlock(std::span<const BlockStoreLocation> ChunkLocations,
const IterateChunksLargeSizeCallback& LargeSizeCallback,
uint64_t LargeSizeLimit)
{
+ ZEN_MEMSCOPE(GetBlocksTag());
ZEN_TRACE_CPU("BlockStore::IterateBlock");
if (InChunkIndexes.empty())
@@ -861,6 +878,7 @@ BlockStore::IterateBlock(std::span<const BlockStoreLocation> ChunkLocations,
bool
BlockStore::IterateChunks(const std::span<const BlockStoreLocation>& ChunkLocations, const IterateChunksCallback& Callback)
{
+ ZEN_MEMSCOPE(GetBlocksTag());
ZEN_TRACE_CPU("BlockStore::IterateChunks");
Stopwatch Timer;
@@ -914,6 +932,7 @@ BlockStore::CompactBlocks(const BlockStoreCompactState& CompactState,
const ClaimDiskReserveCallback& DiskReserveCallback,
std::string_view LogPrefix)
{
+ ZEN_MEMSCOPE(GetBlocksTag());
ZEN_TRACE_CPU("BlockStore::CompactBlocks");
uint64_t DeletedSize = 0;