apache / apache/parquet-java

checkBlockSizeReached zero record size perf issue

Aperta
#2,720 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Component: Java Component: Parquet Priority: Minor Type: bug
Lingua principale
Java
Stelle
3.1k
Fork
1.6k
Merge medio
3g 12h
PR unite (30g)
33

Descrizione

Parquet checks Block size after writing records to decide when it shall flush. This is relatively expensive, so it estimates the next check based on record size, record count etc.

For small records (less than 1byte after compression), the average record size is 0 after integer division. This caused overflow when calculating the next record count for block size check, resulting block size being checked for every record.

**Reporter**: [Huicheng Song](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=songhuicheng)

**Note**: *This issue was originally created as [PARQUET-2199](https://issues.apache.org/jira/browse/PARQUET-2199). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia tracciando checkBlockSizeReached e la logica di stima delle dimensioni dei blocchi descritta nell’issue. Riproduci il caso con record più piccoli di un byte compresso, quindi verifica che il calcolo non vada in overflow e che i controlli delle dimensioni dei blocchi non vengano eseguiti per ogni record.

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

Valutazione

Stack tecnologico
java
Ambito
data-engineering, performance
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.