apache / apache/arrow-java

Performance concern: fillHoles() method and read buffer expansion efficiency.

Ouverte
#599 9 commentaires 3 réactions 0 personnes assignées Voir sur GitHub
help wanted Type: enhancement
Langage dominant
Java
Étoiles
94
Forks
152
Merge moyen
3 j 16 h
PR mergées (30 j)
11

Description

Hi everyone,

I have the following use case: I’m benchmarking the read throughput performance when dealing with a large number of non-dictionary string columns (300 columns). Based on the profiler output (see the attached picture), I’ve noticed that a significant amount of time is spent in the fillHoles() method, which is part of the read buffer expansion process.

My question is: why is the buffer filled one element at a time instead of using a bulk operation? Wouldn’t a batch approach be more efficient?

Looking forward to your insights. Thanks!

![Image](https://github.com/user-attachments/assets/57108c7a-126d-4370-9a01-4f0aa85218d9)

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par fillHoles() dans le chemin d’extension du tampon de lecture et examinez l’image du profiler ainsi que le contexte du benchmark à 300 colonnes décrits dans l’issue. Comparez le remplissage actuel élément par élément avec une approche bulk en utilisant la même charge de travail ; le travail est terminé lorsqu’une conclusion mesurée sur le problème de performance est obtenue et qu’une modification ciblée est apportée uniquement si la comparaison la justifie.

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

Évaluation

Stack technique
java
Domaine
performance
Type d'issue
Refactorisation
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

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