apache / apache/arrow-java

[Java] Represent a data element of a vector as a tree of ArrowBufPointer

オープン
#275 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
Type: enhancement
主要言語
Java
スター
94
フォーク
152
平均マージ
3日 16時間
マージ済み PR(30日)
11

説明

For a fixed/variable width vector, each of its data element can be represented as an ArrowBufPointer object, which represents a contiguous memory segment. This makes many tasks easier and more efficient (without memory copy): calculating hash code, comparing values, etc.

This cannot be achieved for complex vectors, because their values often reside in more than one contiguous memory regions. However, it can be seen that the contiguous memory regions for each data element forms a tree-like structure, whose leaf nodes are the contiguous memory regions. For example, a data element for a struct vector forms a tree, whose root corresponds to the struct vector, while the child vectors corresponds to the child nodes of the tree root.

In this issue, we provide a data structure that represents each data element of a vector as a tree, whose leaf nodes are ArrowBufPointers, representing contiguous memory regions for the data element.

With this data structure, many tasks also becomes easier and more efficient: calculating hash code, comparing vector elements (ordering & equality). In addition, we can do something that could not have been done in the past, like placing data elements into a hash table/hash set, etc.

**Reporter**: [Liya Fan](https://issues.apache.org/jira/browse/ARROW-7213) / @liyafan82
#### PRs and other links:
- [GitHub Pull Request apache/arrow#5883](https://github.com/apache/arrow/pull/5883)

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

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

ARROW-7213 の原文の説明と GitHub Pull Request #5883 から始めてください。これらが issue における唯一の実装参照です。そこで扱われているベクトル型、API、動作を特定してください。ベクトル要素に対する使用可能なツリー表現が存在し、そこで示されている後続操作を不要なコピーなしでサポートできれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
data
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。