apache / apache/paimon-cpp

Reuse Parquet OffsetIndex objects and direct-plan decisions

Aperta
#328 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
65
Fork
25
Merge medio
2g 12h
PR unite (30g)
80

Descrizione

### Problem

Selective Parquet reads repeat CPU work within one file reader: Arrow 17 reparses OffsetIndex on each lookup, page planning scans page locations for sparse row selections, and decoding rebuilds a direct-read plan just to determine whether compressed row coordinates apply.

The byte cache in #272 reduces repeated I/O but does not eliminate this parsing and planning work.

### Proposed improvement

- Reuse parsed OffsetIndex objects within each retained row-group reader.
- Seek across page gaps for sparse selections and visit each selected page once.
- Reuse the direct-plan decision during decoding.

Preserve index validation, dictionary handling, per-leaf row coordinates and missing-index fallbacks. Keep parsed objects reader-local without introducing a shared data cache or public option.

### Validation

Check selected values and index lifetimes, including sparse/dense selections and the row-group retention limit. Compare against main with the format benchmark, reporting latency and storage bytes without assuming a general speedup.

Implementation: #314.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia controllando l'issue #314, indicata come l'implementazione di questo lavoro. Convalida i valori selezionati e i cicli di vita degli indici su selezioni sparse e dense, inclusi i limiti di conservazione dei row-groups, quindi confronta il format benchmark con main in termini di latenza e byte di storage, senza presumere un'accelerazione generale.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
data-engineering, performance
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.