apache / apache/arrow-java

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

未關閉
#599 9 則留言 3 個 reaction 已指派 0 人 在 GitHub 檢視
help wanted Type: enhancement
主要語言
Java
星號
94
分支
152
平均合併
3 天 16 小時
30 天內合併 PR
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 背景。使用相同的 workload,將目前逐元素填充的方式與 bulk 方式進行比較;完成的標準是針對效能疑慮得出經過測量的結論,並且只有在比較結果支持的情況下才進行有針對性的修改。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
java
領域
performance
Issue 類型
重構
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
需要釐清
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。