Skip to content
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

Specialize batched column-wise hashing for RunLengthEncodedBlock #19723

Merged

Conversation

pettyjamesm
Copy link
Member

Description

Adds special case handling of RunLengthEncodedBlock in generated FlatHashStrategy implementations that hoists the hash calculation outside of the loop. This has the added benefit of making the normal compute loop at most bi-morphic between DictionaryBlock and the type-corresponding ValueBock subclass.

FlatGroupByHash already specializes hash calculations for RunLengthEncodedBlock at a higher level when all group by input blocks are run-length encoded, so this change will only affect performance for mutli-column grouping operations with a mix of run length and dictionary/plain block inputs.

Release notes

(x) This is not user-visible or is docs only, and no release notes are required.
( ) Release notes are required. Please propose a release note for me.
( ) Release notes are required, with the following suggested text:

@cla-bot cla-bot bot added the cla-signed label Nov 13, 2023
@pettyjamesm pettyjamesm marked this pull request as ready for review November 13, 2023 19:58
Copy link
Member

@dain dain left a comment

Choose a reason for hiding this comment

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

Nice!

@pettyjamesm pettyjamesm merged commit a24475e into trinodb:master Nov 15, 2023
90 checks passed
@pettyjamesm pettyjamesm deleted the specialize-rle-hash-strategies branch November 15, 2023 02:51
@github-actions github-actions bot added this to the 434 milestone Nov 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

2 participants