Record on the actor when a resume moved it to another node, and prefer a node with the image when detaching
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- gcp, go, kubernetes
- Ambito
- backend, cloud, distributed-systems
Direzione di ricerca
The issue does not name files or tests; start by locating the resume/detach scheduling path and the actor status and atelet restore-record definitions. Trace how a resumed actor is assigned to a worker and how its source node is available. Done means detaches prefer a node that already has the image when it has room, and the actor status and restore record capture the move and source node.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happens today
A suspended actor is pinned to its node. Since the detach change, if that node is full at wake time the resume moves the actor to any worker with room. That is the right behavior. Two things around it could be better.
| Today | Suggestion | |
|---|---|---|
| Visibility | the actor's status keeps the old node; the only sign of a move is a snapshot download in atelet's restore record | record the move and the source node on the actor status |
| Destination | chosen without looking at images, so the new node usually unpacks the image (~28 s here) | prefer a node that already holds the image, the same preference #276 proposes for placement |
In a density run, 36,631 of 105,400 wakes moved, and I could only count them by joining logs afterwards.
Proposal
Detach prefers a worker on a node that holds the image when one has room (see the placement proposal). The actor status records that the resume moved and from which node. atelet's restore record carries the node name.
How to see it
- A fleet of suspended actors that fits the slots, plus a second workload that keeps creating fresh actors so the slots on the fleet's nodes are taken between its steps.
- Resume the fleet. In atelet's restore records, the resumes with
downloadabove zero and seconds ofoci_unpackare the ones that moved; nothing on the actor says so.
Setup
etup: two GKE worker pools. Pool A: 40 x n2-standard-8 (8 vCPU, 32 GiB, Intel Cascade Lake), 192 GB pd-balanced boot disk, 320 worker pods. Pool B: 783 x e2-standard-8 (8 vCPU, 32 GiB, AMD Rome), 500 GB pd-balanced boot disk, 2,000 worker pods. ateapi at 2 to 12 replicas; Postgres on one n2-standard-16 with pd-ssd. Images: SWE-bench Verified (445, about 1.1 GB compressed median, 13 layers), R2E-Gym-V1 (8,101, 0.57 GB compressed median, 1.9 GB max, 14 layers, almost no layer sharing), a 36,871-image SWE-RL set (0.5 to 1.4 GB compressed median per subset, up to 13 GB squashed single-layer images); unpacked size 2 to 2.5 times compressed; plain containerd pulls from a same-region Artifact Registry. gVisor (runsc), GKE 1.36.4-gke.2046002, Container-Optimized OS, Linux x86_64. Observed on Substrate 0fdb67b5; the code cited is unchanged on main at a508f8fe.
- Lingua principale
- Go
- Stelle
- 5.9k
- Fork
- 637
- Merge medio
- 2g 1h
- PR unite (30g)
- 523
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di agent-substrate/substrate
-
Clean up the ko retry testsForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaarea/dev-infra area/reliability area/tests kind/cleanup
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
agent-substrate/substrate#3461 ·
I maintainer di solito rispondono entro 1 giorno
-
egress: drop the empty-provider check in providerCredentialForse già presa @cloudonly l’ha presa 3 giorni fa. Apertaarea/network kind/cleanup
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
agent-substrate/substrate#3428 ·
I maintainer di solito rispondono entro 1 giorno
-
kubectl-ate create actor-template -f <file> fails with useless errorForse già presa @cloudonly l’ha presa 4 giorni fa. Apertaarea/cli kind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
agent-substrate/substrate#3406 ·
I maintainer di solito rispondono entro 1 giorno
-
k8s-credential-provider manifest is missing ate-otel-config envFrom, failing OTLP metric exports to [::1]:4317 / 127.0.0.1:4317 every 60sForse già presa @ericcurtin l’ha presa 5 giorni fa. Apertaarea/dev-infra area/observability area/security kind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
agent-substrate/substrate#3282 ·
I maintainer di solito rispondono entro 1 giorno
-
filecachegc.runPass suppresses eviction logs when FreedBytes < target and consecutiveShortfalls > 3Forse già presa @ericcurtin l’ha presa 4 giorni fa. Apertaarea/node area/observability area/storage kind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
agent-substrate/substrate#3281 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di agent-substrate/substrate
Issue simili
-
bug good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
[mesheryctl] design delete fails when passing file or URL as positional argumentForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertacomponent/mesheryctl kind/bug language/go
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
meshery/meshery#22772 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
backend security size:S
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
limitlessprojects/Go-Hybrid#3342 ·
I maintainer di solito rispondono entro 1 giorno
-
status/ready type/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
buildpacks/pack#2733 ·
I maintainer di solito rispondono entro 1 giorno