apache / apache/arrow-java

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

Aperta
#599 9 commenti 3 reazioni 0 assegnatari Vedi su GitHub
help wanted Type: enhancement
Lingua principale
Java
Stelle
94
Fork
152
Merge medio
3g 16h
PR unite (30g)
11

Descrizione

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)

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con fillHoles() nel percorso di espansione del buffer di lettura e analizza l’immagine del profiler e il contesto del benchmark a 300 colonne descritti nell’issue. Confronta il riempimento attuale elemento per elemento con un approccio bulk usando lo stesso carico di lavoro; il lavoro è completato quando si è ottenuta una conclusione misurata sulla preoccupazione relativa alle prestazioni e si apporta una modifica mirata solo se il confronto la supporta.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
performance
Tipo di issue
Refactoring
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.