apache / apache/parquet-java

InternalParquetRecordWriter doesn't immediately limit current row group to threshold

Open
#2,441 0 comments 0 reactions 0 assignees View on GitHub
Component: Java Component: Parquet Priority: Major Type: bug
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.