JIT timestamp IN with 40 or more intervals is slower than the Java filter
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- java
- Ambito
- databases, performance
Direzione di ricerca
Start with CompiledFilterIRSerializer.java at the TIMESTAMP key limit and serializeInTimestampRange, then compare its generated checks with IntervalUtils.findInterval and the DATE key cap. Reproduce the reported timings for interval counts around the 10–40 crossover, including the designated-column OR case. Done when the JIT avoids the reported slowdown for long interval lists without losing its reported advantage at 10 intervals.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
A4. JIT timestamp IN with 40 or more intervals is slower than the Java filter
-
Net impact: filters with many intervals run up to 14x slower with the JIT on.
-
Location:
CompiledFilterIRSerializer.java:5475-5489leaves TIMESTAMP keys uncapped (Integer.MAX_VALUE).serializeInTimestampRange(:4969-5059) emits one range check per interval.- The Java filter binary-searches the intervals instead (
IntervalUtils.findInterval).
-
Symptom: 5M rows, non-designated
tm,tm IN '2024-01-01T09:00;1h;1d;N'. Times with the JIT on and off, at head (base):N JIT on JIT off 10 17 ms (16 ms) 37 ms (25 ms) 40 72 ms (72 ms) 59 ms (37 ms) 100 181 ms (180 ms) 80 ms (50 ms) 300 757 ms (779 ms) 142 ms (90 ms) - On 8 workers, N = 300 takes 81 ms with the JIT and 13.5 ms without.
- The JIT wins at N = 10, so the crossover lies between 10 and 40.
-
Origin: pre-existing.
-
Reachability: the default JIT mode, a temporal IN over an interval expression with 40 or more intervals on a non-designated column, or on the designated one under OR.
-
Suggested fix: cap TIMESTAMP keys at a limit derived from the crossover, as the PR caps DATE keys, or emit a binary search for long interval lists.
-
Severity if filed standalone: Critical (data-path performance).
- Lingua principale
- Java
- Stelle
- 17.5k
- Fork
- 1.7k
- Merge medio
- 5g 11h
- PR unite (30g)
- 64
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun 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 questdb/questdb
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 2 giorni
-
A CHAR cast to LONG256 fails with an error that names LONGForse già presa @sgavriil01 l’ha presa oggi. ApertaBug SQL
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
questdb/questdb#8352 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
ILP over UDP stores lines without a timestamp in 1970 on tables with a nanosecond designated timestampForse già presa @pcbeingused333 l’ha presa 2 giorni fa. ApertaBug ILP
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
questdb/questdb#8322 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
COPY into a table with a DATE or TIMESTAMP column fails when the CSV file does not have that columnApertaBug SQL
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di questdb/questdb
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dekobon/big-code-analysis#1913 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
bug:unconfirmed
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
UniversalMediaServer/UniversalMediaServer#6473 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
ClickHouse/clickhouse-java#3349 ·
I maintainer di solito rispondono entro 1 giorno