Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Make DELTA_LENGTH_BYTE_ARRAY default encoding for binary values

Ouverte
#3,083 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
48/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
java

Piste de recherche

L’issue ne nomme aucun fichier source ni aucun test. Commencez par localiser la sélection de l’encodage par défaut de V1 et V2 dans l’implémentation Core de parquet-java, puis examinez les tests d’encodage existants. Le travail est terminé lorsque les colonnes BYTE_ARRAY utilisent DELTA_LENGTH_BYTE_ARRAY par défaut, tandis que le reste du comportement d’encodage reste inchangé.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Type: enhancement
Describe the enhancement requested

The current default for V1 pages is PLAIN encoding. This encoding mixes string length with string data. This is inefficient for for skipping N values, as the encoding does not allow random access. It's also slow to decode as the interleaving of lengths with data does not allow efficient batched implementations and forces most implementations to make copies of the data to fit the usual representation of separate offsets and data for strings.

DELTA_LENGTH_BYTE_ARRAY has none of the above problems as it separates offsets and data. The parquet-format spec also seems to recommend this
https://github.com/apache/parquet-format/blob/c70281359087dfaee8bd43bed9748675f4aabe11/Encodings.md?plain=1#L299

### Delta-length byte array: (DELTA_LENGTH_BYTE_ARRAY = 6)

Supported Types: BYTE_ARRAY

This encoding is always preferred over PLAIN for byte array columns.

V2 pages use DELTA_BYTE_ARRAY as the default encoding, this is an improvement over PLAIN but adds complexity which makes it slower to decode than DELTA_LENGTH_BYTE_ARRAY with the potential benefit of lower storage requirements.

JMH benchmarks in Trino's parquet reader at io.trino.parquet.reader.BenchmarkBinaryColumnReader showed that DELTA_LENGTH_BYTE_ARRAY can be decoded at over 5X speed and DELTA_BYTE_ARRAY at over 2X the speed of decoding PLAIN encoding.
Given the above recommendation of parquet-format spec and significant performance difference, the reference implementation here should be updated to use DELTA_LENGTH_BYTE_ARRAY by default.

Component(s)

Core

Langage dominant
Java
Étoiles
3.1k
Forks
1.6k
Merge moyen
6 j 16 h
PR mergées (30 j)
36

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de apache/parquet-java

Toutes les issues de apache/parquet-java

Issues similaires

Plus d'issues Java

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.