Bulk skip in RunLengthBitPackingHybridDecoder / DictionaryValuesReader
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
まず RunLengthBitPackingHybridDecoder.readInt() と readNext() を読み、その後 DictionaryValuesReader と RunLengthBitPackingHybridValuesReader の skip(int) を調べます。辞書エンコードされた値がどのようにデコードされるかを確認し、関連する既存のテストまたはテストエントリーポイントを特定します。3 つすべての reader で一括スキップがデコーダーのパスを使用し、スキップされる値の数を維持できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Motivation
Make Hive leverage bulk skip when implementing probe decode for Parquet, similarly to https://issues.apache.org/jira/browse/HIVE-22731, which was about ORC.
Problem
ValuesReader.skip(int n) ships with a naive default:
public void skip(int n) {
for (int i = 0; i < n; i++) skip();
}
For dictionary-encoded columns (the common case), each skip() bottoms
out in RunLengthBitPackingHybridDecoder.readInt() — a mode switch,
array-index arithmetic, and a value the caller immediately discards.
Any filter-then-skip path (column-index row ranges, hash-join probe
filtering, runtime filters) pays this cost per skipped row.
Proposal
- Add
RunLengthBitPackingHybridDecoder.skipInts(int n)— re-use
readNext()per run, then advancecurrentCountby
min(n, currentCount)instead of walking every value through
readInt(). - Override
skip(int)onDictionaryValuesReaderand
RunLengthBitPackingHybridValuesReaderto calldecoder.skipInts(n).
Component(s)
Core
- 主要言語
- Java
- スター
- 3.1k
- フォーク
- 1.6k
- 平均マージ
- 4日 5時間
- マージ済み PR(30日)
- 30
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/parquet-java のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
apache/parquet-java#3829 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
apache/parquet-java#3820 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
apache/parquet-java#3767 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
apache/parquet-java#3695 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/parquet-java#3667 ·
メンテナーはふだん 2 日以内に返信
apache/parquet-java の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
aoqia194/leaf-loader#19 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
apache/streampark#4521 ·
-
Update license yearオープン0 - Backlog 1 - Ready documentation good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
cbor
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
FasterXML/jackson-dataformats-binary#844 ·
メンテナーはふだん 1 日以内に返信
-
Issue: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
OpenAPITools/openapi-generator#25107 ·
メンテナーはふだん 1 日以内に返信