Shared persistent server-side state
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 30/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- helm, postgresql, typescript
Direzione di ricerca
Inizia leggendo src/lib/server/trino/user-clients.ts, src/lib/server/auth.ts, src/lib/server/trino/queries.ts e src/routes/healthz/+server.ts, quindi esamina values.yaml e le probe di Helm. Scegli un backing store che copra i quattro consumer e definisci il comportamento di replicaCount. Il lavoro è completato quando lo stato condiviso sopravvive ai riavvii e alle repliche, /healthz e /readyz eseguono controlli distinti e le probe sono aggiornate.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Epic: Shared persistent server-side state
All server-side state is held in process-local Maps, so the deployment is capped at one replica and a restart drops everything.
Part of this is already tackled in the ongoing FileBrowser PRs.
[!NOTE]
This text is AI generated against our normal policy because it is migrated from another place, when we tackle this for real it needs to be properly rewritten
Four places:
- Trino connection config —
src/lib/server/trino/user-clients.ts:18,
new Map<string, UserEntry>(). Per-user URL and credentials. - Sessions and users —
src/lib/server/auth.ts.betterAuth()is called without a
databaseoption, so it uses the built-in memory adapter. - Query state —
src/lib/server/trino/queries.ts:76,79. Progress, rows, status and
per-tab access times. - Readiness —
src/routes/healthz/+server.ts. Liveness and readiness both point at
/healthz, which always returns 200.
What this costs
replicaCountis a plain user-settable chart value (values.yaml:4, documented as
"Number of replicas") with nothing stopping someone setting it to 2. At two replicas
users are logged out at random, a query started on one pod is invisible to the other,
and a saved connection only exists on the pod that received it.- A restart orphans running queries in Trino, loses completed results, and logs everyone out.
- A readiness probe has nothing meaningful to check, so
/readyzwould be a placeholder
until a backing store exists.
Scope
- Pick a backing store and wire all four consumers to it. #41 proposes PostgreSQL for
better-auth; whatever is chosen should cover all four rather than solving them separately. - Split
/healthz(liveness, trivial) and/readyz(readiness, checks the store), and
update the Helm probes. - Decide what
replicaCount > 1does until then: document the constraint, or make the
chart reject it.
Out of scope
- Persisting completed query results beyond their TTL (
STACKABLE_COCKPIT_QUERY_TTL, default 1800s). Separate question. - S3 credentials in
localStorage(#306). Client-side, different problem.
- Lingua principale
- TypeScript
- Stelle
- 1
- Fork
- 0
- Merge medio
- 22h 6m
- PR unite (30g)
- 12
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
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 stackabletech/cockpit
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
stackabletech/cockpit#312 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
stackabletech/cockpit#224 ·
-
Remove unused dependencies Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
stackabletech/cockpit#101 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
stackabletech/cockpit#313 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
stackabletech/cockpit#309 ·
Tutte le issue di stackabletech/cockpit
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
bug v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
modelcontextprotocol/inspector#2458 · 1 commento ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
railmapgen/rmp-gallery#4068 ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
carbon-design-system/ibm-products#9907 ·