diff options
| author | Stefan Boberg <[email protected]> | 2026-03-04 14:13:46 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2026-03-04 14:13:46 +0100 |
| commit | 0763d09a81e5a1d3df11763a7ec75e7860c9510a (patch) | |
| tree | 074575ba6ea259044a179eab0bb396d37268fb09 /src/zencompute/actionrecorder.h | |
| parent | native xmake toolchain definition for UE-clang (#805) (diff) | |
| download | zen-0763d09a81e5a1d3df11763a7ec75e7860c9510a.tar.xz zen-0763d09a81e5a1d3df11763a7ec75e7860c9510a.zip | |
compute orchestration (#763)
- Added local process runners for Linux/Wine, Mac with some sandboxing support
- Horde & Nomad provisioning for development and testing
- Client session queues with lifecycle management (active/draining/cancelled), automatic retry with configurable limits, and manual reschedule API
- Improved web UI for orchestrator, compute, and hub dashboards with WebSocket push updates
- Some security hardening
- Improved scalability and `zen exec` command
Still experimental - compute support is disabled by default
Diffstat (limited to 'src/zencompute/actionrecorder.h')
| -rw-r--r-- | src/zencompute/actionrecorder.h | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/src/zencompute/actionrecorder.h b/src/zencompute/actionrecorder.h deleted file mode 100644 index 9cc2b44a2..000000000 --- a/src/zencompute/actionrecorder.h +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#pragma once - -#include <zencompute/functionservice.h> -#include <zencompute/zencompute.h> -#include <zencore/basicfile.h> -#include <zencore/compactbinarybuilder.h> -#include <zenstore/cidstore.h> -#include <zenstore/gc.h> -#include <zenstore/zenstore.h> - -#include <filesystem> -#include <functional> -#include <map> -#include <unordered_map> - -namespace zen { -class CbObject; -class CbPackage; -struct IoHash; -} // namespace zen - -#if ZEN_WITH_COMPUTE_SERVICES - -namespace zen::compute { - -////////////////////////////////////////////////////////////////////////// - -struct RecordingFileWriter -{ - RecordingFileWriter(RecordingFileWriter&&) = delete; - RecordingFileWriter& operator=(RecordingFileWriter&&) = delete; - - RwLock m_FileLock; - BasicFile m_File; - uint64_t m_FileOffset = 0; - CbObjectWriter m_TocWriter; - BasicFile m_TocFile; - - RecordingFileWriter(); - ~RecordingFileWriter(); - - void Open(std::filesystem::path FilePath); - void Close(); - void AppendObject(const CbObject& Object, const IoHash& ObjectHash); -}; - -////////////////////////////////////////////////////////////////////////// - -/** - * Recording "runner" implementation - * - * This class writes out all actions and their attachments to a recording directory - * in a format that can be read back by the RecordingReader. - * - * The contents of the recording directory will be self-contained, with all referenced - * attachments stored in the recording directory itself, so that the recording can be - * moved or shared without needing to maintain references to the main CID store. - * - */ - -class ActionRecorder -{ -public: - ActionRecorder(ChunkResolver& InChunkResolver, const std::filesystem::path& RecordingLogPath); - ~ActionRecorder(); - - ActionRecorder(const ActionRecorder&) = delete; - ActionRecorder& operator=(const ActionRecorder&) = delete; - - void Shutdown(); - void RegisterWorker(const CbPackage& WorkerPackage); - bool RecordAction(Ref<RunnerAction> Action); - -private: - ChunkResolver& m_ChunkResolver; - std::filesystem::path m_RecordingLogDir; - - RecordingFileWriter m_WorkersFile; - RecordingFileWriter m_ActionsFile; - GcManager m_Gc; - CidStore m_CidStore{m_Gc}; - std::atomic<int> m_ChunkCounter{0}; - std::atomic<uint64_t> m_ChunkBytesCounter{0}; - std::atomic<int> m_ActionsCounter{0}; -}; - -} // namespace zen::compute - -#endif // ZEN_WITH_COMPUTE_SERVICES |