apache / apache/arrow-java

[Java] reduce heap footprint of ValueVectors

未关闭
#412 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
94
派生
152
平均合并
3 天 16 小时
30 天内合并 PR
11

描述

In some scenarios, we hold lots of value vectors in memory eg. during join, aggregation. The heap analysis shows that the costs are as follows for a simple IntVector (used VisualVM on mac) :

 

IntVector : 80 bytes

vector.types.pojo.FieldType : 41 bytes

vector.types.pojo.Field : 40 bytes

IntReaderImpl : 28 bytes

 

I'll use this Jira to track ways to reduce the heap usage.

 

**Reporter**: [Pindikura Ravindra](https://issues.apache.org/jira/browse/ARROW-5482) / @pravindra
#### Related issues:
- [[Java] remove FieldReader from ValueVector](https://github.com/apache/arrow-java/issues/411) (is a parent of)
- [[Java] add ValueVector constructors that take a Field object](https://github.com/apache/arrow/issues/21932) (is a parent of)

**Note**: *This issue was originally created as [ARROW-5482](https://issues.apache.org/jira/browse/ARROW-5482). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

贡献指南

打开贡献指南

调研方向

先阅读 Java ValueVector 实现以及相关的“remove FieldReader from ValueVector” issue (#411),然后使用 VisualVM 重现列出的 IntVector 堆配置文件。完成标准是:测得报告中的 ValueVector 内存开销有所降低,并记录受影响的场景和权衡。

由索引模型根据 Issue 内容生成。

评估

技术栈
java
领域
performance
Issue 类型
重构
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。