[Java] Improving Arrow Vector Reading performance
- 主要言語
- Java
- スター
- 94
- フォーク
- 152
- 平均マージ
- 3日 16時間
- マージ済み PR(30日)
- 11
説明
Currently the read interface of Java Arrow Vector is quite slow because the access operation has to go through validity bit check and boundary check before it can actually load the data. Such a safety check incurs unnecessary overhead in actually computation.
The Arrow Vector and ArrowBuf should expose unsafe methods for advanced users to directly access underlying data without null check and boundary check.
**Reporter**: [Yurui Zhou](https://issues.apache.org/jira/browse/ARROW-5197) / @yuruiz
#### Subtasks:
- [ ] [[Java] Add hasNull flag to Vectors](https://github.com/apache/arrow-java/issues/415)
- [X] [[Java] Add unsafe access method to ArrowBuf](https://github.com/apache/arrow/issues/21674)
#### Related issues:
- [[Java] Add accessor methods for data buffers that skip null checking](https://github.com/apache/arrow/issues/15627) (relates to)
- [[Java] Provide light-weight arrow APIs](https://github.com/apache/arrow/issues/21675) (is related to)
#### PRs and other links:
- [GitHub Pull Request apache/arrow#4199](https://github.com/apache/arrow/pull/4199)
**Note**: *This issue was originally created as [ARROW-5197](https://issues.apache.org/jira/browse/ARROW-5197). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*
コントリビューションガイド
調査の方向性
まず Java Arrow Vector と ArrowBuf のアクセスインターフェースを確認し、次に完了した ArrowBuf の作業と PR apache/arrow#4199 を調査します。unsafe アクセスメソッドが null チェックや境界チェックなしの直接読み取りをサポートし、関連するベクターの作業とパフォーマンスの挙動に対処できた時点で、この issue は完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- data-engineering
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 20/100