agent-substrate / agent-substrate/substrate

Start sandbox creation before the image pull / checkpoint download completes

Open
#968 2 comments 0 reactions 0 assignees View on GitHub
area/node kind/feature
Dominant language
Go
Stars
1.8k
Forks
316
Avg merge
2d 43m
Merged PRs (30d)
287

Description

ateom doesn't hear anything until all of atelet's prep is done, so sentry startup is serialized after the image pull (cold start) or the checkpoint download (restore).

- Restore: download and bundle prep run concurrently, but [g.Wait()](https://github.com/agent-substrate/substrate/blob/89b83a5c89db8b189401645a645b01c144b7d728/cmd/atelet/main.go#L1090) gates the `RestoreWorkload` RPC on both.
- Cold start: `prepareOCIBundles` completes before `RunWorkload` is sent

Nothing about the sandbox itself depends on the actor image or the checkpoint. The sandbox could be booting while those are still downloading.

## Proposal

Split sandbox creation out of `RunWorkload` / `RestoreWorkload` into its own RPC that atelet can send as soon as the sandbox-level config is ready, then have the existing RPC start the containers.

It helps cold start and DATA-scope restore. Does not help FULL / DATA_ON_GOLDEN restore, where the sentry comes from the memory image.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.