aboutsummaryrefslogtreecommitdiff
path: root/src/zencompute/include
Commit message (Collapse)AuthorAgeFilesLines
* Subscribe compute session to orchestrator WebSocket for instant worker discoveryStefan Boberg9 hours1-0/+4
| | | | | | | | | | | | | | | | Instead of relying solely on the 5-second polling throttle in UpdateCoordinatorState(), the compute session now connects a WebSocket client to /orch/ws. When the orchestrator broadcasts a state change the handler calls NotifyOrchestratorChanged() which bypasses the throttle and wakes the scheduler thread immediately. The MockOrchestratorService in tests gains IWebSocketHandler support and broadcasts a poke on SetWorkerList(), and all nine Sleep(7'000) calls are replaced with NotifyOrchestratorChanged() + Sleep(2'000), saving ~45s from the remote-function test suite. Also extracts the repeated HTTP→WS scheme-conversion pattern into a shared HttpToWsUrl() helper in zenhttp.
* Allow using websocket messaging for faster remote completion updatesStefan Boberg9 hours2-1/+64
|
* Add convenience helpers to ComputeServiceSessionStefan Boberg10 hours1-0/+10
| | | | | Add Ready(), Abandon(), and SetOrchestrator() inline helpers to reduce verbosity at call sites, especially in tests.
* Add Retracted state to RunnerAction for retry-free reschedulingStefan Boberg20 hours1-1/+2
| | | | | | | | | | | | | | | | | | | | | | Retracted is an explicit, instigator-initiated request to pull an action back and reschedule it on a different runner (e.g. capacity opened up elsewhere). Unlike Failed/Abandoned auto-retry, rescheduling from Retracted does not increment RetryCount since nothing went wrong. - Add Retracted enum value after Cancelled with static_assert guarding ordinal placement so runner-side transitions cannot override it - Implement idempotent RetractAction() CAS method on RunnerAction - Extend ResetActionStateToPending() to accept Retracted without incrementing RetryCount - Add RetractAction() to ComputeServiceSession with pending/running map lookup and runner cancellation for running actions - Handle Retracted in HandleActionUpdates() scheduler loop (remove from active maps, reset to Pending, no history/results entry) - Add POST jobs/{lsn}/retract and queues/{queueref}/jobs/{lsn}/retract HTTP endpoints - Bump ActionHistoryEntry::Timestamps array from [8] to [9] - Add state machine documentation and per-state comments to RunnerAction - Add tests: retract_pending, retract_not_terminal, retract_http
* compute orchestration (#763)Stefan Boberg14 days10-218/+822
| | | | | | | | | | - 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
* structured compute basics (#714)Stefan Boberg2026-02-185-0/+387
this change adds the `zencompute` component, which can be used to distribute work dispatched from UE using the DDB (Derived Data Build) APIs via zenserver this change also adds a distinct zenserver compute mode (`zenserver compute`) which is intended to be used for leaf compute nodes to exercise the compute functionality without directly involving UE, a `zen exec` subcommand is also added, which can be used to feed replays through the system all new functionality is considered *experimental* and disabled by default at this time, behind the `zencompute` option in xmake config