diff options
| author | Dan Engelbrecht <[email protected]> | 2025-08-06 10:52:49 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-08-06 10:52:49 +0200 |
| commit | 72c4cc46e1bdc147e64b5efca59de7f1560d4788 (patch) | |
| tree | 487c229f3c50da63ee7433efcd1f2deebf26c23c /src/zenserver/zenserver.cpp | |
| parent | more details in parallel work when wait fails/destructor has inconsistent sta... (diff) | |
| download | zen-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.cpp | 27 |
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 |