Writer: nested List<Struct> columns are 5.5x larger than Rust's (masked wrappers at every level, uncompressed list offsets)
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
- 18/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Ambito
- data, performance
Direzione di ricerca
The payload names no source files, so start by comparing one tags chunk from the Rust-written file with the Java-written file, splitting bytes into list offsets, struct elements and validity. The issue points at the vortex.masked wrappers on the list, struct and each field, and at list offsets that Rust run-end encodes but Java does not. Done means the per-child breakdown identifies which part causes the 5.5x gap, and the Java output size is brought close to Rust's on the same input.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Raincloud osm-germany-nodes, column tags (List<Struct<key: Utf8, value: Utf8>>), vortex-java's Parquet import vs the vortex-jni-written file, data bytes:
| size | typical chunk encoding | |
|---|---|---|
| Rust | 732.7 MB | list(struct(dict(primitive, fsst(primitive, primitive)), dict(bitpacked, fsst(primitive, primitive))), runend(primitive, primitive)) |
| Java | 4,023.7 MB (5.5x) | masked(list(masked(struct(masked(dict(bitpacked, fsst(...)), constant), masked(dict(bitpacked, fsst(...)), ... |
+3.3 GB on this one column; the whole file is 18.4 GB vs Rust's 15.5 GB.
Visible differences in the trees:
vortex.maskedwrappers on the list, the struct and each field, where Rust carries validity in the arrays themselves (as #604 did for integers; #646 for decimals);- Rust run-end encodes the list offsets (
runend(primitive, primitive)); Java's offsets don't appear compressed that way.
To narrow down: per-child byte breakdown of one chunk in both files (offsets vs elements vs validity), and whether Java's chunks hold far fewer rows (Java wrote 1559+ chunks of the most common shape alone).
- Lingua principale
- Java
- Stelle
- 3
- Fork
- 2
- Merge medio
- 9h 47m
- PR unite (30g)
- 128
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 dfa1/vortex-java
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
dfa1/vortex-java#636 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 70/100
dfa1/vortex-java#655 ·
I maintainer di solito rispondono entro 1 giorno
-
perf
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
dfa1/vortex-java#651 ·
I maintainer di solito rispondono entro 1 giorno
-
Writer: string columns written as per-chunk dicts where Rust uses its dict layout (up to 2x larger)Apertaperf
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
dfa1/vortex-java#650 ·
I maintainer di solito rispondono entro 1 giorno
-
perf
Difficoltà 4/5 3-5 giorni Idoneità per principianti 28/100
dfa1/vortex-java#649 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di dfa1/vortex-java
Issue simili
-
5.0.x backport enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 63/100
spring-cloud/spring-cloud-function#1507 ·
I maintainer di solito rispondono entro 1 giorno
-
ai-driven-fuzzing bug claude Minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
linagora/twake-calendar-side-service#1417 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
line/armeria#7109 · 3 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
a2aproject/a2a-java#1275 ·
I maintainer di solito rispondono entro 1 giorno
-
module/ftp Type/Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ballerina-platform/ballerina-library#9476 ·
I maintainer di solito rispondono entro 1 giorno