ColumnChunkPageWriter uses only heap memory.
- Lingua principale
- Java
- Stelle
- 3.1k
- Fork
- 1.6k
- Merge medio
- 3g 12h
- PR unite (30g)
- 33
Descrizione
After PARQUET-160 was resolved, ColumnChunkPageWriter started using ConcatenatingByteArrayCollector. There are all data is collected in the List of byte[], before writing the page. No way to use direct memory for allocating buffers. ByteBufferAllocator is present in the [ColumnChunkPageWriter](https://github.com/apache/parquet-mr/blob/master/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ColumnChunkPageWriteStore.java#L73) class, but never used.
Using of java heap space in some cases can cause OOM exceptions or GC's overhead.
ByteBufferAllocator should be used in the ConcatenatingByteArrayCollector or OutputStream classes.
**Reporter**: [Vitalii Diravka](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=vitalii) / @vdiravka
**Assignee**: [Vitalii Diravka](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=vitalii) / @vdiravka
#### Related issues:
- [Error: SYSTEM ERROR: RuntimeException: Unknown logical type ](https://issues.apache.org/jira/browse/DRILL-7825) (Is contained by)
- [Replace ParquetColumnChunkPageWriter with original Parquet class](https://issues.apache.org/jira/browse/DRILL-7906) (Is contained by)
- [Out of heap running CTAS against text delimited](https://issues.apache.org/jira/browse/DRILL-5544) (relates to)
- [Support configurable for DirectByteBufferAllocator from Hadoop Configuration](https://github.com/apache/parquet-java/issues/2443) (is related to)
- [Improvements in ByteBuffer read path](https://github.com/apache/parquet-java/issues/1534) (is related to)
- [Simplify CapacityByteArrayOutputStream](https://github.com/apache/parquet-java/issues/1712) (is related to)
**Note**: *This issue was originally created as [PARQUET-1006](https://issues.apache.org/jira/browse/PARQUET-1006). 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 da parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ColumnChunkPageWriteStore.java e segui come ColumnChunkPageWriter passa il proprio ByteBufferAllocator a ConcatenatingByteArrayCollector o all’OutputStream pertinente. Verifica dove vengono accumulati i dati delle pagine prima della scrittura e determina se il percorso completo alloca tramite l’allocator fornito invece di usare esclusivamente array di byte nell’heap.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- data-engineering
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 42/100