Skip to content

[C++][Parquet] Default to V2 data pages #55272

Open

Description

@pitrou

Describe the enhancement requested

V2 data pages are very old and probably supported by every implementation post-2020. Given they allow selective compression of data pages and other useful stuff (such as num_nulls), we should probably write them by default.

Component(s)

C++, Parquet

Activity

  1. pitrou commented on Oct 26, 2026

    @pitrou
    MemberAuthor

    @wgtmac @HuaHuaY Thoughts?

  2. wgtmac commented on Oct 27, 2026

    @wgtmac
    Member

    I just found https://stackoverflow.com/questions/77654784/what-is-the-difference-between-data-page-version-1-0-and-2-0-in-parquet-files which is answered by @emkornfield :)

    We have enabled all supported encodings in our production environment for years but we still default data page to v1 for better compression ratio. I don't know if data page v2 has any potential bug but overall I'm in favor of switching the default to v2.

  3. adamreeve commented on Oct 28, 2026

    @adamreeve
    Contributor

    we still default data page to v1 for better compression ratio

    Can you provide some more details on this @wgtmac, why would v1 give better compression?

  4. wgtmac commented on Oct 28, 2026

    @wgtmac
    Member

    It was several years ago when we ran TPC-H/TPC-DS/SSB benchmarks. If I remember correctly, v1 data pages have better compression ratio because of better compression on definition levels as they are all flat schemas.

  5. pitrou commented on Oct 28, 2026

    @pitrou
    MemberAuthor

    It'd be interesting to know by how much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions