InternalParquetRecordWriter doesn't immediately limit current row group to threshold
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 1.6k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 33
Description
The MemoryManager adjust the row group size threshold of writers when the allocated memory pool fills up.
**Problem**: However InternalParquetRecordWriter only re-adjusts the row group size on the next flush meaning they still use the old size.
This opens up a possibility of getting an OOM error if all writers are started at relatively the same time and progress in tandem(I saw this when investigating failing jobs while writing to disk in Spark)
**Reporter**: [Brian Mwambazi](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=brimzi) / @brimzi
#### PRs and other links:
- [GitHub Pull Request #748](https://github.com/apache/parquet-mr/pull/748)
**Note**: *This issue was originally created as [PARQUET-1767](https://issues.apache.org/jira/browse/PARQUET-1767). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing GitHub Pull Request #748 and the InternalParquetRecordWriter and MemoryManager entry points mentioned in the issue. Confirm how the row-group threshold is updated when the memory pool fills, and verify that writers stop using the old threshold immediately so parallel writers do not risk an OOM.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- data-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100