aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/zenserver.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2025-08-06 10:52:49 +0200
committerGitHub Enterprise <[email protected]>2025-08-06 10:52:49 +0200
commit72c4cc46e1bdc147e64b5efca59de7f1560d4788 (patch)
tree487c229f3c50da63ee7433efcd1f2deebf26c23c /src/zenserver/zenserver.cpp
parentmore details in parallel work when wait fails/destructor has inconsistent sta... (diff)
downloadzen-72c4cc46e1bdc147e64b5efca59de7f1560d4788.tar.xz
zen-72c4cc46e1bdc147e64b5efca59de7f1560d4788.zip
refactor blobstore (#458)
- Improvement: Refactored build store cache to use existing CidStore implementation instead of implementation specific blob storage - **CAUTION** This will clear any existing cache when updating as the manifest version and storage strategy has changed - Bugfix: BuildStorage cache return "true" for metadata existance for all blobs that had payloads regardless of actual existance for metadata
Diffstat (limited to 'src/zenserver/zenserver.cpp')
-rw-r--r--src/zenserver/zenserver.cpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/zenserver/zenserver.cpp b/src/zenserver/zenserver.cpp
index 27ec4c690..54da51d77 100644
--- a/src/zenserver/zenserver.cpp
+++ b/src/zenserver/zenserver.cpp
@@ -265,10 +265,15 @@ ZenServer::Initialize(const ZenServerOptions& ServerOptions, ZenServerState::Zen
if (ServerOptions.BuildStoreConfig.Enabled)
{
+ CidStoreConfiguration BuildCidConfig;
+ BuildCidConfig.RootDirectory = m_DataRoot / "builds_cas";
+ m_BuildCidStore = std::make_unique<CidStore>(m_GcManager);
+ m_BuildCidStore->Initialize(BuildCidConfig);
+
BuildStoreConfig BuildsCfg;
BuildsCfg.RootDirectory = m_DataRoot / "builds";
BuildsCfg.MaxDiskSpaceLimit = ServerOptions.BuildStoreConfig.MaxDiskSpaceLimit;
- m_BuildStore = std::make_unique<BuildStore>(std::move(BuildsCfg), m_GcManager);
+ m_BuildStore = std::make_unique<BuildStore>(std::move(BuildsCfg), m_GcManager, *m_BuildCidStore);
}
if (ServerOptions.StructuredCacheConfig.Enabled)
@@ -664,6 +669,7 @@ ZenServer::InitializeStructuredCache(const ZenServerOptions& ServerOptions)
m_StatsReporter.AddProvider(m_CacheStore.Get());
m_StatsReporter.AddProvider(m_CidStore.get());
+ m_StatsReporter.AddProvider(m_BuildCidStore.get());
}
void
@@ -836,6 +842,7 @@ ZenServer::Cleanup()
m_BuildStoreService.reset();
m_BuildStore = {};
+ m_BuildCidStore.reset();
m_StructuredCacheService.reset();
m_UpstreamService.reset();
@@ -1035,9 +1042,18 @@ ZenServer::ScrubStorage()
WorkerThreadPool ThreadPool{1, "Scrub"};
ScrubContext Ctx{ThreadPool};
- m_CidStore->ScrubStorage(Ctx);
- m_ProjectStore->ScrubStorage(Ctx);
- m_StructuredCacheService->ScrubStorage(Ctx);
+
+ if (m_CidStore)
+ m_CidStore->ScrubStorage(Ctx);
+
+ if (m_ProjectStore)
+ m_ProjectStore->ScrubStorage(Ctx);
+
+ if (m_StructuredCacheService)
+ m_StructuredCacheService->ScrubStorage(Ctx);
+
+ if (m_BuildCidStore)
+ m_BuildCidStore->ScrubStorage(Ctx);
const uint64_t ElapsedTimeMs = Timer.GetElapsedTimeMs();
@@ -1059,6 +1075,9 @@ ZenServer::Flush()
if (m_ProjectStore)
m_ProjectStore->Flush();
+
+ if (m_BuildCidStore)
+ m_BuildCidStore->Flush();
}
void