diff options
| author | Stefan Boberg <[email protected]> | 2026-04-03 11:41:35 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2026-04-03 11:41:35 +0200 |
| commit | ab571411c149941c5767beab40d195d69a8d743a (patch) | |
| tree | 2c4dace2e96e8c74cb61b7d658a1d028f6e62c37 /src/zenserver/compute | |
| parent | removed s3 test program (diff) | |
| download | zen-sb/compute-oidc-auth.tar.xz zen-sb/compute-oidc-auth.zip | |
Separate action and worker chunk stores for compute servicesb/compute-oidc-auth
Extract ChunkStore interface from CidStore so HttpComputeService can
accept different storage backends for action inputs vs worker binaries.
Action inputs use MemoryCidStore (no disk persistence) while workers
use a disk-backed CidStore for cross-action reuse.
- Add ChunkStore abstract class (AddChunk, ContainsChunk, FilterChunks)
and FallbackChunkResolver to zenstore.h
- CidStore and MemoryCidStore both implement ChunkStore
- HttpComputeService takes two ChunkStore& params (action + worker)
- Compute server wires MemoryCidStore for actions, CidStore for workers
- Storage server passes its CidStore for both (unchanged behavior)
Diffstat (limited to 'src/zenserver/compute')
| -rw-r--r-- | src/zenserver/compute/computeserver.cpp | 12 | ||||
| -rw-r--r-- | src/zenserver/compute/computeserver.h | 5 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/zenserver/compute/computeserver.cpp b/src/zenserver/compute/computeserver.cpp index 6f2f6d8c8..8cd8b4cfe 100644 --- a/src/zenserver/compute/computeserver.cpp +++ b/src/zenserver/compute/computeserver.cpp @@ -521,11 +521,12 @@ ZenComputeServer::InitializeServices(const ZenComputeServerConfig& ServerConfig) ZEN_TRACE_CPU("ZenComputeServer::InitializeServices"); ZEN_INFO("initializing compute services"); - CidStoreConfiguration Config; - Config.RootDirectory = m_DataRoot / "cas"; + m_ActionStore = std::make_unique<MemoryCidStore>(); - m_CidStore = std::make_unique<CidStore>(m_GcManager); - m_CidStore->Initialize(Config); + CidStoreConfiguration WorkerStoreConfig; + WorkerStoreConfig.RootDirectory = m_DataRoot / "cas"; + m_WorkerStore = std::make_unique<CidStore>(m_GcManager); + m_WorkerStore->Initialize(WorkerStoreConfig); if (!ServerConfig.IdmsEndpoint.empty()) { @@ -553,7 +554,8 @@ ZenComputeServer::InitializeServices(const ZenComputeServerConfig& ServerConfig) std::make_unique<zen::compute::HttpOrchestratorService>(ServerConfig.DataDir / "orch", ServerConfig.EnableWorkerWebSocket); ZEN_INFO("instantiating function service"); - m_ComputeService = std::make_unique<zen::compute::HttpComputeService>(*m_CidStore, + m_ComputeService = std::make_unique<zen::compute::HttpComputeService>(*m_ActionStore, + *m_WorkerStore, m_StatsService, ServerConfig.DataDir / "functions", ServerConfig.MaxConcurrentActions); diff --git a/src/zenserver/compute/computeserver.h b/src/zenserver/compute/computeserver.h index 5a95f9360..63db7e9b3 100644 --- a/src/zenserver/compute/computeserver.h +++ b/src/zenserver/compute/computeserver.h @@ -10,6 +10,7 @@ # include <zencore/system.h> # include <zenhttp/httpwsclient.h> # include <zenstore/gc.h> +# include <zenstore/memorycidstore.h> # include "frontend/frontend.h" namespace cxxopts { @@ -41,7 +42,6 @@ class NomadProvisioner; namespace zen { -class CidStore; class HttpApiService; struct ZenComputeServerConfig : public ZenServerConfig @@ -136,7 +136,8 @@ public: private: GcManager m_GcManager; GcScheduler m_GcScheduler{m_GcManager}; - std::unique_ptr<CidStore> m_CidStore; + std::unique_ptr<MemoryCidStore> m_ActionStore; + std::unique_ptr<CidStore> m_WorkerStore; std::unique_ptr<HttpApiService> m_ApiService; std::unique_ptr<zen::compute::HttpComputeService> m_ComputeService; std::unique_ptr<zen::compute::HttpOrchestratorService> m_OrchestratorService; |