Skip to content

GH-32863: [C++][Parquet] Add DELTA_BYTE_ARRAY encoder to Parquet writer#14341

Merged
pitrou merged 78 commits into
apache:mainfrom
rok:ARROW-17619
Aug 21, 2023
Merged

GH-32863: [C++][Parquet] Add DELTA_BYTE_ARRAY encoder to Parquet writer#14341
pitrou merged 78 commits into
apache:mainfrom
rok:ARROW-17619

Conversation

@rok

@rok rok commented Oct 7, 2022

Copy link
Copy Markdown
Member

This is to add DELTA_BYTE_ARRAY encoder.

@github-actions

github-actions Bot commented Oct 7, 2022

Copy link
Copy Markdown

@rok

rok commented Oct 7, 2022

Copy link
Copy Markdown
Member Author

This is not really review ready yet and needs #14191 and #14293 to merge first.

@rok

rok commented Jan 26, 2023

Copy link
Copy Markdown
Member Author

note: this should support BYTE_ARRAY and FIXED_LEN_BYTE_ARRAY. PARQUET-2231

@rok rok changed the title ARROW-17619: [C++][Parquet] Add DELTA_BYTE_ARRAY encoder to Parquet writer GH-32863: [C++][Parquet] Add DELTA_BYTE_ARRAY encoder to Parquet writer Feb 23, 2023
@github-actions

Copy link
Copy Markdown

@mapleFU

mapleFU commented Feb 28, 2023

Copy link
Copy Markdown
Member

(Can this patch go ahead now?)

@mapleFU mapleFU left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Though this patch is still draft, I run it for fun. Seems that here is some issue. May that helps

Comment thread cpp/src/parquet/encoding.cc Outdated
Comment thread cpp/src/parquet/encoding.cc Outdated
@github-actions github-actions Bot added awaiting review Awaiting review awaiting committer review Awaiting committer review awaiting changes Awaiting changes and removed awaiting review Awaiting review awaiting committer review Awaiting committer review labels Mar 1, 2023
@github-actions github-actions Bot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Mar 1, 2023
@github-actions github-actions Bot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Mar 1, 2023
@pitrou

pitrou commented Aug 21, 2023

Copy link
Copy Markdown
Member

I'm going to merge this now.

@mapleFU

mapleFU commented Aug 21, 2023

Copy link
Copy Markdown
Member

Thats a long time, bravo!

@rok

rok commented Aug 21, 2023

Copy link
Copy Markdown
Member Author

Thanks all for helping this along! I'm very happy we got this in!

@anjakefala

Copy link
Copy Markdown
Contributor

Congratulations, @rok!!!

@AlenkaF

AlenkaF commented Aug 22, 2023

Copy link
Copy Markdown
Member

Great work everybody, congrats!!

@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit 94bd0d2.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them.

@jorisvandenbossche

Copy link
Copy Markdown
Member

We should probably update the python docstring as well:

column_encoding : string or dict, default None
Specify the encoding scheme on a per column basis.
Currently supported values: {'PLAIN', 'BYTE_STREAM_SPLIT'}.
Certain encodings are only compatible with certain data types.
Please refer to the encodings section of `Reading and writing Parquet
files <https://arrow.apache.org/docs/cpp/parquet.html#encodings>`_.

(which was clearly already outdated before this PR as well! ;))

@pitrou

pitrou commented Aug 22, 2023

Copy link
Copy Markdown
Member

Feel free to open a PR :-)

@rok

rok commented Aug 22, 2023

Copy link
Copy Markdown
Member Author

I created an issue :) #37312

Comment on lines -1342 to -1343
RETURN_NOT_OK(helper.builder->ReserveData(
std::min<int64_t>(len_, helper.chunk_space_remaining)));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why previously here ReserveData for min(len_, helper.chunk_space_remaining) here, wouldn't len_ be too large @pitrou

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand: are you commented on the removed code? I'd rather not try to understand code that was removed months ago...

@jorisvandenbossche jorisvandenbossche Nov 8, 2023

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #38437 for context, where this code is being added back partially

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also don't understand them T_T.

Just confused by this change, so I tried to understand the origin code and find out why this cause the regression, what should I do to fix it

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[C++][Parquet] Add DELTA_BYTE_ARRAY encoder to Parquet writer

9 participants