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 摘要。