Perf: time-bound by-ID log lookups in ClickHouse (retry, retrieve event, retrieve attempt)
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
Direzione di ricerca
Read Retry in internal/apirouter/retry_handlers.go and RetrieveEvent and RetrieveAttempt in internal/logstore/chlogstore/chlogstore.go; trace the ClickHouse queries and their existing tests. Compare an expanding time window with an optional time hint, since the issue leaves the approach and window sizing open. Done means lookups are time-bounded where possible, results and defaults stay unchanged, and the listed retry, event, and attempt paths are covered.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Lookups by ID in the ClickHouse log store run with no time range. The tables are sorted by time first, so the primary key can't narrow these queries and ClickHouse scans every part of the table. The cost grows with the amount of history stored.
Affected paths:
POST /retry:Retryininternal/apirouter/retry_handlers.golooks up the latest prior attempt by tenant,event_idanddestination_id(limit 1) with no time filter. When no attempt is found it falls back toRetrieveEvent, also unbounded.GET /events/:event_idandGET /attempts/:attempt_id:RetrieveEventandRetrieveAttemptininternal/logstore/chlogstore/chlogstore.gofilter onevent_id = ?/attempt_id = ?only.
Results must stay the same and defaults unchanged. Ideas:
- Expanding window. Search a recent window first and widen until the row is found, up to the retention window (or without a limit when retention is unlimited). Open design point: how many steps and how wide. It depends on how much data a window holds, not only on retention length: a high-throughput deployment with short retention may still gain from a few steps, a low-volume one with long retention may not.
- Optional time hint. Let API callers pass the event time, or a lower bound, when they have it (operator events and alert payloads include it). Optional and backward-compatible; without it, 1 applies.
Open to other approaches.
- Lingua principale
- Go
- Stelle
- 1.1k
- Fork
- 70
- Merge medio
- 3g 9h
- PR unite (30g)
- 34
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 hookdeck/outpost
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 3 giorni
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
hookdeck/outpost#1195 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
hookdeck/outpost#1194 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di hookdeck/outpost
Issue simili
-
Cluster details: the Control Plane version field has a different border color than its icon boxApertakind/design sig/ui
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
kubermatic/dashboard#8449 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
filecoin-project/curio#1632 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
compose: derived node options overwrite each other's targetsForse già presa @yangjj-iso l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno