apache / apache/arrow-java

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

オープン
#599 コメント 9 件 リアクション 3 件 担当者 0 名 GitHub で見る
help wanted Type: enhancement
主要言語
Java
スター
94
フォーク
152
平均マージ
3日 16時間
マージ済み PR(30日)
11

説明

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)

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

read buffer の拡張パスにある fillHoles() から始め、issue で説明されている profiler image と 300-column benchmark のコンテキストを確認してください。現在の要素ごとの filling と、同じ workload を使った bulk approach を比較してください。完了の条件は、パフォーマンス上の懸念について測定に基づく結論が得られ、比較結果がそれを支持する場合に限って焦点を絞った変更を行うことです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
performance
issue の種類
リファクタリング
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。