Writer: compact zstd writes one frame per array; Rust writes 8192 values per frame
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 66/100
Piste de recherche
Commence au preset compact qui appelle ZstdEncodingEncoder.forText() côté Java, où valuesPerFrame vaut 0, et compare-le à la référence Rust dans vortex-btrblocks/src/schemes/binary/zstd.rs:59, qui utilise 8192. Vérifie le chemin de lecture multi-frames pour confirmer que les frames sont découpées selon n_values, et vérifie comment la règle de fermeture de frame de 1 GiB de #633 interagit avec la nouvelle taille de frame. C'est terminé lorsque le preset compact écrit 8192 valeurs par frame et que les tests de lecture et d'aller-retour existants passent toujours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Rust's btrblocks binary zstd scheme compresses with 8192 values per frame (vortex-btrblocks/src/schemes/binary/zstd.rs:59, from_var_bin_view_without_dict(&compacted, 3, 8192, ...)). The Java compact preset uses ZstdEncodingEncoder.forText(), i.e. valuesPerFrame = 0: one frame per array.
Both read back (Rust and Java read multiple frames by n_values), so this is an encoding-parity gap, not a correctness bug. It also means a slice scan of a Java-written compact column decompresses the whole array instead of the frames overlapping its row range.
Since #633, a Java varbin frame also closes before 1 GiB of payload (a Java-only rule that keeps every frame under the reader's 2 GiB per-frame cap); adopting Rust's 8192 values per frame would make that cap rarely matter.
Found while reviewing #633.
- Langage dominant
- Java
- Étoiles
- 3
- Forks
- 2
- Merge moyen
- 9 h 47 min
- PR mergées (30 j)
- 128
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de dfa1/vortex-java
-
bug
Difficulté 3/5 1-2 jours Accessibilité débutants 70/100
dfa1/vortex-java#655 ·
Les mainteneurs répondent en général sous 1 jour
-
perf
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
dfa1/vortex-java#651 ·
Les mainteneurs répondent en général sous 1 jour
-
Writer: string columns written as per-chunk dicts where Rust uses its dict layout (up to 2x larger)Ouverteperf
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
dfa1/vortex-java#650 ·
Les mainteneurs répondent en général sous 1 jour
-
perf
Difficulté 4/5 3-5 jours Accessibilité débutants 28/100
dfa1/vortex-java#649 ·
Les mainteneurs répondent en général sous 1 jour
-
perf
Difficulté 4/5 3-5 jours Accessibilité débutants 18/100
dfa1/vortex-java#648 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de dfa1/vortex-java
Issues similaires
-
5.0.x backport enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
spring-cloud/spring-cloud-function#1507 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
open-learning-exchange/myplanet#18484 ·
Les mainteneurs répondent en général sous 1 jour
-
ai-driven-fuzzing bug claude Minor
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
linagora/twake-calendar-side-service#1417 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
line/armeria#7109 · 3 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
open-feature/java-sdk-contrib#1966 ·
Les mainteneurs répondent en général sous 1 jour