aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-09-04 09:27:32 +0200
committerGitHub Enterprise <[email protected]>2024-09-04 09:27:32 +0200
commit1e52c3e1f479a802d151a4d162bb0b9174d22cf7 (patch)
tree96427532f0df1e735fc5ced8087fb4996d021be5 /src
parentdelay oplog read (#141) (diff)
downloadzen-1e52c3e1f479a802d151a4d162bb0b9174d22cf7.tar.xz
zen-1e52c3e1f479a802d151a4d162bb0b9174d22cf7.zip
move gc logs to gc logger (#142)
- Improvement: Move GC logging in callback functions into "gc" context
Diffstat (limited to 'src')
-rw-r--r--src/zenserver/projectstore/projectstore.cpp58
-rw-r--r--src/zenstore/cache/cachedisklayer.cpp15
-rw-r--r--src/zenstore/cache/structuredcachestore.cpp10
-rw-r--r--src/zenstore/compactcas.cpp6
-rw-r--r--src/zenstore/filecas.cpp6
-rw-r--r--src/zenstore/gc.cpp2
-rw-r--r--src/zenstore/include/zenstore/gc.h1
7 files changed, 86 insertions, 12 deletions
diff --git a/src/zenserver/projectstore/projectstore.cpp b/src/zenserver/projectstore/projectstore.cpp
index c1905228c..984b749d0 100644
--- a/src/zenserver/projectstore/projectstore.cpp
+++ b/src/zenserver/projectstore/projectstore.cpp
@@ -2886,7 +2886,6 @@ ProjectStore::Project::OpenOplog(std::string_view OplogId, bool AllowCompact)
{
return It->second.get();
}
-
if (Oplog::ExistsAt(OplogBasePath))
{
try
@@ -5003,6 +5002,8 @@ public:
{
ZEN_TRACE_CPU("Store::CompactStore");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
@@ -5125,6 +5126,8 @@ ProjectStore::RemoveExpiredData(GcCtx& Ctx, GcStats& Stats)
{
ZEN_TRACE_CPU("Store::RemoveExpiredData");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
@@ -5266,6 +5269,8 @@ public:
{
ZEN_TRACE_CPU("Store::UpdateLockedState");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
std::vector<ProjectStore::Oplog*> AddedOplogs;
@@ -5334,6 +5339,8 @@ public:
{
ZEN_TRACE_CPU("Store::RemoveUsedReferencesFromSet");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
size_t InitialCount = IoCids.size();
Stopwatch Timer;
const auto _ = MakeGuard([&] {
@@ -5404,6 +5411,8 @@ public:
{
ZEN_TRACE_CPU("Store::Oplog::PreCache");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
@@ -5464,6 +5473,8 @@ public:
{
ZEN_TRACE_CPU("Store::Oplog::UpdateLockedState");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
@@ -5503,6 +5514,8 @@ public:
{
ZEN_TRACE_CPU("Store::Oplog::RemoveUsedReferencesFromSet");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
size_t InitialCount = IoCids.size();
Stopwatch Timer;
const auto _ = MakeGuard([&] {
@@ -5544,6 +5557,8 @@ ProjectStore::CreateReferenceCheckers(GcCtx& Ctx)
{
ZEN_TRACE_CPU("Store::CreateReferenceCheckers");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
size_t ProjectCount = 0;
size_t OplogCount = 0;
@@ -5602,9 +5617,12 @@ ProjectStore::CreateReferenceCheckers(GcCtx& Ctx)
}
std::vector<RwLock::SharedLockScope>
-ProjectStore::LockState(GcCtx&)
+ProjectStore::LockState(GcCtx& Ctx)
{
ZEN_TRACE_CPU("Store::LockState");
+
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
std::vector<RwLock::SharedLockScope> Locks;
Locks.emplace_back(RwLock::SharedLockScope(m_ProjectsLock));
for (auto& ProjectIt : m_Projects)
@@ -5846,20 +5864,40 @@ TEST_CASE_TEMPLATE("project.store.export",
ProjectStore::Oplog* OplogImport = Project->NewOplog("oplog2", {});
CHECK(OplogImport != nullptr);
- RemoteProjectStore::Result ImportResult =
- LoadOplog(CidStore, *RemoteStore, *OplogImport, /*Force*/ false, /*IgnoreMissingAttachments*/ false, /*CleanOplog*/ false, nullptr);
+ RemoteProjectStore::Result ImportResult = LoadOplog(CidStore,
+ *RemoteStore,
+ *OplogImport,
+ /*Force*/ false,
+ /*IgnoreMissingAttachments*/ false,
+ /*CleanOplog*/ false,
+ nullptr);
CHECK(ImportResult.ErrorCode == 0);
- RemoteProjectStore::Result ImportForceResult =
- LoadOplog(CidStore, *RemoteStore, *OplogImport, /*Force*/ true, /*IgnoreMissingAttachments*/ false, /*CleanOplog*/ false, nullptr);
+ RemoteProjectStore::Result ImportForceResult = LoadOplog(CidStore,
+ *RemoteStore,
+ *OplogImport,
+ /*Force*/ true,
+ /*IgnoreMissingAttachments*/ false,
+ /*CleanOplog*/ false,
+ nullptr);
CHECK(ImportForceResult.ErrorCode == 0);
- RemoteProjectStore::Result ImportCleanResult =
- LoadOplog(CidStore, *RemoteStore, *OplogImport, /*Force*/ false, /*IgnoreMissingAttachments*/ false, /*CleanOplog*/ true, nullptr);
+ RemoteProjectStore::Result ImportCleanResult = LoadOplog(CidStore,
+ *RemoteStore,
+ *OplogImport,
+ /*Force*/ false,
+ /*IgnoreMissingAttachments*/ false,
+ /*CleanOplog*/ true,
+ nullptr);
CHECK(ImportCleanResult.ErrorCode == 0);
- RemoteProjectStore::Result ImportForceCleanResult =
- LoadOplog(CidStore, *RemoteStore, *OplogImport, /*Force*/ true, /*IgnoreMissingAttachments*/ false, /*CleanOplog*/ true, nullptr);
+ RemoteProjectStore::Result ImportForceCleanResult = LoadOplog(CidStore,
+ *RemoteStore,
+ *OplogImport,
+ /*Force*/ true,
+ /*IgnoreMissingAttachments*/ false,
+ /*CleanOplog*/ true,
+ nullptr);
CHECK(ImportForceCleanResult.ErrorCode == 0);
}
diff --git a/src/zenstore/cache/cachedisklayer.cpp b/src/zenstore/cache/cachedisklayer.cpp
index 940f78c30..9c350b11d 100644
--- a/src/zenstore/cache/cachedisklayer.cpp
+++ b/src/zenstore/cache/cachedisklayer.cpp
@@ -3063,6 +3063,8 @@ public:
{
ZEN_TRACE_CPU("Z$::Bucket::CompactStore");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
Reset(m_ExpiredStandaloneKeys);
@@ -3290,6 +3292,8 @@ ZenCacheDiskLayer::CacheBucket::RemoveExpiredData(GcCtx& Ctx, GcStats& Stats)
{
ZEN_TRACE_CPU("Z$::Bucket::RemoveExpiredData");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
size_t TotalEntries = 0;
Stopwatch Timer;
@@ -3457,6 +3461,8 @@ ZenCacheDiskLayer::CacheBucket::GetReferencesLocked(GcCtx& Ctx, std::vector<IoHa
{
ZEN_TRACE_CPU("Z$::Bucket::GetReferencesLocked");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
auto GetAttachments = [&](MemoryView Data) -> bool {
if (ValidateCompactBinary(Data, CbValidateMode::Default) == CbValidateError::None)
{
@@ -3632,6 +3638,8 @@ public:
{
ZEN_TRACE_CPU("Z$::Bucket::PreCache");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
@@ -3659,6 +3667,8 @@ public:
{
ZEN_TRACE_CPU("Z$::Bucket::UpdateLockedState");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
@@ -3689,6 +3699,9 @@ public:
virtual void RemoveUsedReferencesFromSet(GcCtx& Ctx, HashSet& IoCids) override
{
ZEN_TRACE_CPU("Z$::Bucket::RemoveUsedReferencesFromSet");
+
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
size_t InitialCount = IoCids.size();
Stopwatch Timer;
const auto _ = MakeGuard([&] {
@@ -3723,6 +3736,8 @@ ZenCacheDiskLayer::CacheBucket::CreateReferenceCheckers(GcCtx& Ctx)
{
ZEN_TRACE_CPU("Z$::Bucket::CreateReferenceCheckers");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
diff --git a/src/zenstore/cache/structuredcachestore.cpp b/src/zenstore/cache/structuredcachestore.cpp
index ac1db2a4e..25d20748e 100644
--- a/src/zenstore/cache/structuredcachestore.cpp
+++ b/src/zenstore/cache/structuredcachestore.cpp
@@ -1033,10 +1033,12 @@ ZenCacheStore::GetBucketInfo(std::string_view NamespaceName, std::string_view Bu
}
std::vector<RwLock::SharedLockScope>
-ZenCacheStore::LockState(GcCtx&)
+ZenCacheStore::LockState(GcCtx& Ctx)
{
ZEN_TRACE_CPU("CacheStore::LockState");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
std::vector<RwLock::SharedLockScope> Locks;
Locks.emplace_back(RwLock::SharedLockScope(m_NamespacesLock));
for (auto& NamespaceIt : m_Namespaces)
@@ -1135,6 +1137,8 @@ public:
{
ZEN_TRACE_CPU("Z$::UpdateLockedState");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
std::vector<ZenCacheDiskLayer::CacheBucket*> AddedBuckets;
@@ -1191,6 +1195,8 @@ public:
{
ZEN_TRACE_CPU("Z$::RemoveUsedReferencesFromSet");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
size_t InitialCount = IoCids.size();
Stopwatch Timer;
const auto _ = MakeGuard([&] {
@@ -1227,6 +1233,8 @@ ZenCacheStore::CreateReferenceCheckers(GcCtx& Ctx)
{
ZEN_TRACE_CPU("CacheStore::CreateReferenceCheckers");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
diff --git a/src/zenstore/compactcas.cpp b/src/zenstore/compactcas.cpp
index a00b17912..790a4078e 100644
--- a/src/zenstore/compactcas.cpp
+++ b/src/zenstore/compactcas.cpp
@@ -696,6 +696,8 @@ public:
{
ZEN_TRACE_CPU("CasContainer::CompactStore");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
@@ -847,6 +849,8 @@ public:
{
ZEN_TRACE_CPU("CasContainer::RemoveUnreferencedData");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
@@ -930,6 +934,8 @@ CasContainerStrategy::CreateReferencePruner(GcCtx& Ctx, GcReferenceStoreStats&)
{
ZEN_TRACE_CPU("CasContainer::CreateReferencePruner");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
diff --git a/src/zenstore/filecas.cpp b/src/zenstore/filecas.cpp
index 48177ac9e..733140e50 100644
--- a/src/zenstore/filecas.cpp
+++ b/src/zenstore/filecas.cpp
@@ -1517,6 +1517,8 @@ public:
{
ZEN_TRACE_CPU("FileCas::CompactStore");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
Reset(m_ReferencesToClean);
@@ -1635,6 +1637,8 @@ public:
{
ZEN_TRACE_CPU("FileCas::RemoveUnreferencedData");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
@@ -1714,6 +1718,8 @@ FileCasStrategy::CreateReferencePruner(GcCtx& Ctx, GcReferenceStoreStats&)
{
ZEN_TRACE_CPU("FileCas::CreateReferencePruner");
+ auto Log = [&Ctx]() { return Ctx.Logger; };
+
Stopwatch Timer;
const auto _ = MakeGuard([&] {
if (!Ctx.Settings.Verbose)
diff --git a/src/zenstore/gc.cpp b/src/zenstore/gc.cpp
index d6bf99c3e..28bdd2f42 100644
--- a/src/zenstore/gc.cpp
+++ b/src/zenstore/gc.cpp
@@ -619,7 +619,7 @@ GcManager::CollectGarbage(const GcSettings& Settings)
{
ZEN_TRACE_CPU("GcV2::CollectGarbage");
- GcCtx Ctx{.Settings = Settings, .IsCancelledFlag = m_CancelGC};
+ GcCtx Ctx{.Settings = Settings, .IsCancelledFlag = m_CancelGC, .Logger = Log()};
GcResult Result;
{
diff --git a/src/zenstore/include/zenstore/gc.h b/src/zenstore/include/zenstore/gc.h
index 92f2bdf78..111b9886e 100644
--- a/src/zenstore/include/zenstore/gc.h
+++ b/src/zenstore/include/zenstore/gc.h
@@ -136,6 +136,7 @@ struct GcCtx
{
const GcSettings Settings;
std::atomic_bool& IsCancelledFlag;
+ LoggerRef Logger;
};
typedef tsl::robin_set<IoHash> HashSet;