-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor ByteGroupValueBuilder
to use MaybeNullBufferBuilder
#12681
base: main
Are you sure you want to change the base?
Conversation
139a326
to
c06d0ba
Compare
I left a comment here: 36a2003#r1781444375 , I think the code could be simplified a bit by using generics a bit more. |
Thank you @Dandandan -- added to list on #12680 (note that link doesn't seem to work for me, but I found the relevant comment #12623 (comment)) |
This appears to have made another significant improvement in TPCH (presumably because the group keys aren't ever null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👌
Really nice performance improvements 🚀 |
Hm actually looking at the performance change of TPCH sf 1,this doesn't seem correct to me (main seems out of date?). |
Yes, sorry -- I am rerunning the performance -- I think this is reporting based on main before @jayzhan211 's changes. Will update shortly |
I re-ran benchmarks and posted them above -- TLDR is I don't think there are any significant differences in performance |
I can potentially try the |
Which issue does this PR close?
Follow on to #12269 from @jayzhan211 and #12623
Part of #12680
Rationale for this change
#12623 added a more performant way to track nulls in the
PrimitiveGroupValueBuilder
. Let's use the same thing for Strings/Binary views to reduce replicationWhat changes are included in this PR?
ByteGroupValueBuilder
to useMaybeNullBufferBuilder
to track nullsAre these changes tested?
Yes, by existing CI
Are there any user-facing changes?
No, this is an internal refactor
Performance (basically all changes within measurement threshold in my opinion)