[Feature]: A checkpoint that stores an actor without suspending it
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- go, kubernetes
- Área
- backend, distributed-systems
Línea de trabajo
Read the existing SuspendActor flow and its DurabilityMode handling, then inspect how suspended snapshots are uploaded to object storage. The issue proposes CheckpointActor or a SuspendActor option that captures a snapshot and resumes the actor while upload continues. Done means a busy actor can gain a new durable snapshot without being suspended; the issue names no files or tests, so first locate those entry points and related tests.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What we'd like
A way to store a durable snapshot of an actor while it keeps running: a checkpoint that doesn't suspend it, uploaded to object storage the way a suspend's snapshot is.
Why
We run Substrate v0.6.0 on GKE as the sandbox for agent sessions: each session is an actor, suspended when it goes idle and resumed at the next message. Today an actor's state is stored only by suspending it (SuspendActor, with DurabilityMode synchronous or asynchronous). DrainWorker deliberately leaves bound actors alone, so draining a node stores nothing.
So an actor that stays busy is never stored. An agent turn can run for 40 minutes, or a user can send messages a minute apart for an hour. If GKE replaces the node during that stretch (a routine node upgrade replaces every node in turn), the actor goes back to its last suspend, and everything since is lost.
Suspending the actor between requests isn't a substitute:
- a suspend in the middle of a request cancels it (#1572), and a long turn has no gap between requests;
- suspending and resuming a chatty actor every few minutes charges each of those messages a resume.
What it would look like
Something like a CheckpointActor (or a SuspendActor option that resumes the actor once the snapshot is captured on the node), whose snapshot then uploads in the background and becomes the actor's latest durable one. A client could then store a busy actor on a schedule, or between turns, and bound what a node replacement costs.
Related: #2470 (resuming an actor whose node is gone), which is the other half of surviving a node replacement.
- Lenguaje dominante
- Go
- Estrellas
- 5.9k
- Forks
- 637
- Merge medio
- 2 d 1 h
- PR fusionados (30 d)
- 523
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de agent-substrate/substrate
-
Clean up the ko retry testsPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoarea/dev-infra area/reliability area/tests kind/cleanup
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
agent-substrate/substrate#3461 ·
Los mantenedores suelen responder en 1 día
-
egress: drop the empty-provider check in providerCredentialPosiblemente ocupada @cloudonly la tomó hace 3 días. Abiertoarea/network kind/cleanup
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
agent-substrate/substrate#3428 ·
Los mantenedores suelen responder en 1 día
-
kubectl-ate create actor-template -f <file> fails with useless errorPosiblemente ocupada @cloudonly la tomó hace 4 días. Abiertoarea/cli kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
agent-substrate/substrate#3406 ·
Los mantenedores suelen responder en 1 día
-
k8s-credential-provider manifest is missing ate-otel-config envFrom, failing OTLP metric exports to [::1]:4317 / 127.0.0.1:4317 every 60sPosiblemente ocupada @ericcurtin la tomó hace 5 días. Abiertoarea/dev-infra area/observability area/security kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
agent-substrate/substrate#3282 ·
Los mantenedores suelen responder en 1 día
-
filecachegc.runPass suppresses eviction logs when FreedBytes < target and consecutiveShortfalls > 3Posiblemente ocupada @ericcurtin la tomó hace 4 días. Abiertoarea/node area/observability area/storage kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
agent-substrate/substrate#3281 ·
Los mantenedores suelen responder en 1 día
Todos los issues de agent-substrate/substrate
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
limitlessprojects/Go-Hybrid#3342 ·
Los mantenedores suelen responder en 1 día
-
status/ready type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
buildpacks/pack#2733 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
kind/bug needs-priority needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
konveyor/tackle2-hub#1166 · 1 comentario ·
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
router-for-me/CLIProxyAPI#7209 ·
Los mantenedores suelen responder en 1 día