apache / apache/parquet-java

Use the same default page size across different language bindings

Open
#2,116 0 comments 0 reactions 0 assignees View on GitHub
Component: Parquet Priority: Major Type: task
Dominant language
Java
Stars
3.1k
Forks
1.6k
Avg merge
3d 12h
Merged PRs (30d)
33

Description

Currently there are many different page size recommandations/defaults in use:
- [parquet-format](https://github.com/apache/parquet-format#configurations) recommends 8 KB.
- [parquet-mr](https://github.com/apache/parquet-mr/blob/master/parquet-column/src/main/java/org/apache/parquet/column/ParquetProperties.java#L46) uses 1 MB.
- [Impala](https://github.com/apache/impala/blob/daff8eb0ca19aa612c9fc7cc2ddd647735b31266/be/src/exec/hdfs-parquet-table-writer.h#L83) uses 64 KB.

These values (and other language bindings not listed above) should be consistent.

To pick a sensible new value, we may need to do some measurements. Because of this, we shall wait for column indexes to be implemented before picking a new value.

The new default page size does not necessarily have to be a single value any more, we have several options:
- A single default page size, as before.
- Different page size defaults depending on the type.
- Using a specified number of values instead of data size (e.g., every page contains 10000 values).

**Reporter**: [Zoltan Ivanfi](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=zi) / @zivanfi

**Note**: *This issue was originally created as [PARQUET-1190](https://issues.apache.org/jira/browse/PARQUET-1190). 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

Review the current defaults in parquet-format and parquet-mr, including parquet-column/src/main/java/org/apache/parquet/column/ParquetProperties.java, and compare them with the Impala writer value cited in the issue. Work should wait for column indexes and measurements; done means choosing and implementing an agreed default strategy consistently across bindings.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
data-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.