-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Misc aggregation performance improvements #19910
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
base: main
Are you sure you want to change the base?
Conversation
|
run benchmarks |
|
🤖 |
| let entry = self.map.find_mut(hash, |header| { | ||
| // compare value if hashes match | ||
| if header.len != value_len { | ||
| if header.hash != hash { |
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.
Comment says "compare value if hashes match" but actual implementation is comparing lengths 🤔
| let entry = self.map.find_mut(hash, |header| { | ||
| // compare value if hashes match | ||
| if header.len != value_len { | ||
| if header.hash != hash { |
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.
This should save some random access if a lot of values share the same length
| let v = self.builder.get_value(header.view_idx); | ||
|
|
||
| if v.len() != value.len() { | ||
| if header.hash != hash { |
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.
This should save some random access if a lot of values share the same length
|
run benchmark sql_aggregation |
|
🤖 Hi @Dandandan, thanks for the request (#19910 (comment)).
Please choose one or more of these with |
|
run benchmark aggregate_query_sql aggregate_vectorized |
|
🤖: Benchmark completed Details
|
|
run benchmarks |
|
🤖 |
|
🤖: Benchmark completed Details
|
|
🤖 |
|
Benchmark script failed with exit code 101. Last 10 lines of output: Click to expand |
|
🤖 |
|
🤖: Benchmark completed Details
|
|
run benchmarks |
|
🤖 |
|
🤖: Benchmark completed Details
|
|
Unfortunately the benchmark runner is very noisy lately 😢 |
|
run benchmark tpch tpcds |
|
🤖 |
|
🤖: Benchmark completed Details
|
|
🤖 |
|
🤖: Benchmark completed Details
|
|
run benchmark tpch_mem |
|
🤖 |
|
🤖: Benchmark completed Details
|
Which issue does this PR close?
Rationale for this change
Just a couple of optimizations for hash table lookups usage in hash aggregate.
What changes are included in this PR?
Are these changes tested?
Are there any user-facing changes?