Skip to content

ARROW-18437: [C++][Parquet] Fix encoder for DELTA_BINARY_PACKED when flushing more than once - #14959

Merged
rok merged 6 commits into
apache:masterfrom
mapleFU:fixing-delta-bit-pack
Dec 22, 2022
Merged

ARROW-18437: [C++][Parquet] Fix encoder for DELTA_BINARY_PACKED when flushing more than once#14959
rok merged 6 commits into
apache:masterfrom
mapleFU:fixing-delta-bit-pack

Conversation

@mapleFU

Copy link
Copy Markdown
Member

When flush more than one block, DELTA_BINARY_PACKED will be corrupt, because it didn't reset the context after flush.

I'll add some tests this weekend.

@github-actions

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

⚠️ Ticket has not been started in JIRA, please click 'Start Progress'.

Comment threadcpp/src/parquet/encoding.cc
@mapleFU

Copy link
Copy Markdown
MemberAuthor

@wjones127@pitrou@rok Mind take a took? I don't want to modify testing for a lot, so a just add a ROUND_TRIP_TIME to make it build multiple times. /cc @wgtmac

@rokrok 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.

Thanks for looking into this @mapleFU, I didn't realize encoders get reused like this.
I'm adding a couple of naming suggestions.

Comment threadcpp/src/parquet/encoding.cc Outdated
Comment threadcpp/src/parquet/encoding_test.cc Outdated
Comment threadcpp/src/parquet/encoding_test.cc Outdated
Comment threadcpp/src/parquet/encoding_test.cc Outdated
@mapleFU

Copy link
Copy Markdown
MemberAuthor

Resolved now, thanks @rok

@mapleFU

Copy link
Copy Markdown
MemberAuthor

@pitrou Mind take a look?

@mapleFU
mapleFUforce-pushed the fixing-delta-bit-pack branch from ee0d29f to aca32f1CompareDecember 22, 2022 04:54
@mapleFU

Copy link
Copy Markdown
MemberAuthor

Retrigger CI, seems the macos error is not caused by me

@mapleFU
mapleFU requested a review from rokDecember 22, 2022 08:39
@mapleFU

Copy link
Copy Markdown
MemberAuthor

@pitrou can we merge this patch?

@pitrou

Copy link
Copy Markdown
Member

@rok Can you give this a final look and merge if ok?

@rokrok changed the title ARROW-18437: [C++] Parquet Fixing DELTA_BINARY_PACKED for flush more than one blockARROW-18437: [C++] Parquet fix encoder for DELTA_BINARY_PACKED when flushing more than onceDec 22, 2022
@rokrok changed the title ARROW-18437: [C++] Parquet fix encoder for DELTA_BINARY_PACKED when flushing more than onceARROW-18437: [C++][Parquet] Fix encoder for DELTA_BINARY_PACKED when flushing more than onceDec 22, 2022
@rok
rok merged commit ff10020 into apache:masterDec 22, 2022
@rok

rok commented Dec 22, 2022

Copy link
Copy Markdown
Member

Merged. Thanks for noticing and fixing this @mapleFU !

@mapleFU
mapleFU deleted the fixing-delta-bit-pack branch December 22, 2022 15:37
@ursabot

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = 053080d and contender = ff10020. ff10020 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Failed] test-mac-arm
[Finished ⬇️0.0% ⬆️2.81%] ursa-i9-9960x
[Finished ⬇️0.58% ⬆️0.0%] ursa-thinkcentre-m75q
Buildkite builds:
[Finished] ff100205 ec2-t3-xlarge-us-east-2
[Failed] ff100205 test-mac-arm
[Finished] ff100205 ursa-i9-9960x
[Finished] ff100205 ursa-thinkcentre-m75q
[Finished] 053080dc ec2-t3-xlarge-us-east-2
[Failed] 053080dc test-mac-arm
[Finished] 053080dc ursa-i9-9960x
[Finished] 053080dc ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python, R. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@ursabot

Copy link
Copy Markdown

['Python', 'R'] benchmarks have high level of regressions.
ursa-i9-9960x

EpsilonPrime pushed a commit to EpsilonPrime/arrow that referenced this pull request Jan 5, 2023
…flushing more than once (apache#14959)
When flush more than one block, `DELTA_BINARY_PACKED` will be corrupt, because it didn't reset the context after flush.
I'll add some tests this weekend.
Authored-by: mwish <maplewish117@gmail.com>
Signed-off-by: Rok Mihevc <rok@mihevc.org>
Sign up for freeto 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.

5 participants

@mapleFU@pitrou@rok@ursabot@wgtmac