[Java] reduce heap footprint of ValueVectors
- 主要言語
- Java
- スター
- 94
- フォーク
- 152
- 平均マージ
- 3日 16時間
- マージ済み PR(30日)
- 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
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100