Repository navigation
perf(aggregate): reuse dictionary hashes and group mappings - #26826
jayzhan211 merged 3 commits into
Conversation
|
run benchmark tpch tpcds clickbench_partitioned env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "e1aa5f4bed1c2880b1043b0d87502e5c984fa9cc" |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing e1aa5f4 (e1aa5f4) to 4ede583 diff Run configurationrun benchmark tpch
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "e1aa5f4bed1c2880b1043b0d87502e5c984fa9cc"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing e1aa5f4 (e1aa5f4) to 4ede583 diff Run configurationrun benchmark tpcds
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "e1aa5f4bed1c2880b1043b0d87502e5c984fa9cc"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing e1aa5f4 (e1aa5f4) to 4ede583 diff Run configurationrun benchmark tpch
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "e1aa5f4bed1c2880b1043b0d87502e5c984fa9cc"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usagetpch — base (merge-base)
tpch — branch
File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing e1aa5f4 (e1aa5f4) to 4ede583 diff Run configurationrun benchmark clickbench_partitioned
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "e1aa5f4bed1c2880b1043b0d87502e5c984fa9cc"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing e1aa5f4 (e1aa5f4) to 4ede583 diff Run configurationrun benchmark tpcds
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "e1aa5f4bed1c2880b1043b0d87502e5c984fa9cc"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usagetpcds — base (merge-base)
tpcds — branch
File an issue against this benchmark runner |
e1aa5f4 to
d49dd6d
Compare
|
run benchmark tpch tpcds clickbench_partitioned env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "d49dd6d5614860d21328eb63633fd9d8e08fbd37" |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing d49dd6d (d49dd6d) to 4ede583 diff Run configurationrun benchmark tpch
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "d49dd6d5614860d21328eb63633fd9d8e08fbd37"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing d49dd6d (d49dd6d) to 4ede583 diff Run configurationrun benchmark tpcds
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "d49dd6d5614860d21328eb63633fd9d8e08fbd37"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing d49dd6d (d49dd6d) to 4ede583 diff Run configurationrun benchmark clickbench_partitioned
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "d49dd6d5614860d21328eb63633fd9d8e08fbd37"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing d49dd6d (d49dd6d) to 4ede583 diff Run configurationrun benchmark tpch
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "d49dd6d5614860d21328eb63633fd9d8e08fbd37"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usagetpch — base (merge-base)
tpch — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing d49dd6d (d49dd6d) to 4ede583 diff Run configurationrun benchmark tpcds
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "d49dd6d5614860d21328eb63633fd9d8e08fbd37"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usagetpcds — base (merge-base)
tpcds — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing e1aa5f4 (e1aa5f4) to 4ede583 diff Run configurationrun benchmark clickbench_partitioned
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "e1aa5f4bed1c2880b1043b0d87502e5c984fa9cc"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usageclickbench_partitioned — base (merge-base)
clickbench_partitioned — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing d49dd6d (d49dd6d) to 4ede583 diff Run configurationrun benchmark clickbench_partitioned
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "d49dd6d5614860d21328eb63633fd9d8e08fbd37"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usageclickbench_partitioned — base (merge-base)
clickbench_partitioned — branch
File an issue against this benchmark runner |
|
run benchmark dictionary_group_values env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "d49dd6d5614860d21328eb63633fd9d8e08fbd37" |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing d49dd6d (d49dd6d) to 4ede583 diff Run configurationrun benchmark dictionary_group_values
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "d49dd6d5614860d21328eb63633fd9d8e08fbd37"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing d49dd6d (d49dd6d) to 4ede583 diff Run configurationrun benchmark dictionary_group_values
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "d49dd6d5614860d21328eb63633fd9d8e08fbd37"CPU Details (lscpu)Details
Resource Usagedictionary_group_values — base (merge-base)
dictionary_group_values — branch
File an issue against this benchmark runner |
| fn create_hashes(&mut self, cols: &[ArrayRef], hashes: &mut [u64]) -> Result<()> { | ||
| if !self.has_dictionary { | ||
| create_hashes(cols, &self.random_state, hashes)?; |
There was a problem hiding this comment.
this gets re-used across all 3 PR's I think we should move it up into the hash util PR
d49dd6d to
0044519
Compare
|
run benchmark dictionary_group_values env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "0044519d3b609ae6fbb0cfc59500b322ea368d39" |
|
run benchmark tpch tpcds clickbench_partitioned env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "0044519d3b609ae6fbb0cfc59500b322ea368d39" |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing 0044519 (0044519) to 4ede583 diff Run configurationrun benchmark dictionary_group_values
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "0044519d3b609ae6fbb0cfc59500b322ea368d39"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing 0044519 (0044519) to 4ede583 diff Run configurationrun benchmark tpch
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "0044519d3b609ae6fbb0cfc59500b322ea368d39"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing 0044519 (0044519) to 4ede583 diff Run configurationrun benchmark tpcds
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "0044519d3b609ae6fbb0cfc59500b322ea368d39"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing 0044519 (0044519) to 4ede583 diff Run configurationrun benchmark clickbench_partitioned
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "0044519d3b609ae6fbb0cfc59500b322ea368d39"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing 0044519 (0044519) to 4ede583 diff Run configurationrun benchmark tpch
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "0044519d3b609ae6fbb0cfc59500b322ea368d39"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usagetpch — base (merge-base)
tpch — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing 0044519 (0044519) to 4ede583 diff Run configurationrun benchmark tpcds
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "4ede5833f68dad5bc8169492dedc5749fcc4b8d5"
changed:
ref: "0044519d3b609ae6fbb0cfc59500b322ea368d39"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usagetpcds — base (merge-base)
tpcds — branch
File an issue against this benchmark runner |
|
run benchmark tpch tpcds clickbench_partitioned env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
baseline:
ref: "5191bcc46d7e617bb8d11277fdc180b388141b11"
changed:
ref: "8caaa35c2c4fce9f1c602e27fe114be0cf0acd0e" |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing 8caaa35 (8caaa35) to 5191bcc diff Run configurationrun benchmark tpcds
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "5191bcc46d7e617bb8d11277fdc180b388141b11"
changed:
ref: "8caaa35c2c4fce9f1c602e27fe114be0cf0acd0e"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing 8caaa35 (8caaa35) to 5191bcc diff Run configurationrun benchmark tpch
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "5191bcc46d7e617bb8d11277fdc180b388141b11"
changed:
ref: "8caaa35c2c4fce9f1c602e27fe114be0cf0acd0e"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing 8caaa35 (8caaa35) to 5191bcc diff Run configurationrun benchmark clickbench_partitioned
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "5191bcc46d7e617bb8d11277fdc180b388141b11"
changed:
ref: "8caaa35c2c4fce9f1c602e27fe114be0cf0acd0e"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing 8caaa35 (8caaa35) to 5191bcc diff Run configurationrun benchmark tpch
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "5191bcc46d7e617bb8d11277fdc180b388141b11"
changed:
ref: "8caaa35c2c4fce9f1c602e27fe114be0cf0acd0e"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usagetpch — base (merge-base)
tpch — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing 8caaa35 (8caaa35) to 5191bcc diff Run configurationrun benchmark tpcds
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "5191bcc46d7e617bb8d11277fdc180b388141b11"
changed:
ref: "8caaa35c2c4fce9f1c602e27fe114be0cf0acd0e"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usagetpcds — base (merge-base)
tpcds — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing 8caaa35 (8caaa35) to 5191bcc diff Run configurationrun benchmark clickbench_partitioned
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
baseline:
ref: "5191bcc46d7e617bb8d11277fdc180b388141b11"
changed:
ref: "8caaa35c2c4fce9f1c602e27fe114be0cf0acd0e"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usageclickbench_partitioned — base (merge-base)
clickbench_partitioned — branch
File an issue against this benchmark runner |
|
run benchmark dictionary_group_values env:
BENCH_FILTER: "dict_(alternating_values_(single|multi)|shared_values_multi|fresh_values_per_batch)"
baseline:
ref: "b14a6523cd8be7d5033ea4651ad1487e92a8e27d"
changed:
ref: "4b19df3cf2916d7ef7eccccd7d668a6a210cf0ea" |
|
Benchmark for this request failed before finishing (Kubernetes reason: Benchmarks requested: Runner log (last 40 lines)Kubernetes messageFile an issue against this benchmark runner |
|
run benchmark dictionary_group_values env:
BENCH_FILTER: "dict_shared_values_arc" |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing rich-T-kid/aggregate-dictionary-hash-cache (8caaa35) to 5191bcc (merge-base) diff Run configurationrun benchmark dictionary_group_values
env:
BENCH_FILTER: "dict_shared_values_arc"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing rich-T-kid/aggregate-dictionary-hash-cache (8caaa35) to 5191bcc (merge-base) diff Run configurationrun benchmark dictionary_group_values
env:
BENCH_FILTER: "dict_shared_values_arc"CPU Details (lscpu)Details
Resource Usagedictionary_group_values — base (merge-base)
dictionary_group_values — branch
File an issue against this benchmark runner |
|
run benchmark tpch tpcds clickbench_partitioned env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true" |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing rich-T-kid/aggregate-dictionary-hash-cache (8caaa35) to 5191bcc (merge-base) diff Run configurationrun benchmark tpch
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing rich-T-kid/aggregate-dictionary-hash-cache (8caaa35) to 5191bcc (merge-base) diff Run configurationrun benchmark tpcds
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing rich-T-kid/aggregate-dictionary-hash-cache (8caaa35) to 5191bcc (merge-base) diff Run configurationrun benchmark clickbench_partitioned
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"Results will be posted here when complete File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing rich-T-kid/aggregate-dictionary-hash-cache (8caaa35) to 5191bcc (merge-base) diff Run configurationrun benchmark tpch
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usagetpch — base (merge-base)
tpch — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing rich-T-kid/aggregate-dictionary-hash-cache (8caaa35) to 5191bcc (merge-base) diff Run configurationrun benchmark tpcds
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usagetpcds — base (merge-base)
tpcds — branch
File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: Comparing rich-T-kid/aggregate-dictionary-hash-cache (8caaa35) to 5191bcc (merge-base) diff Run configurationrun benchmark clickbench_partitioned
env:
DATAFUSION_EXECUTION_PARQUET_ENABLE_RLE_TO_DICTIONARY: "true"
DATAFUSION_RUNTIME_MEMORY_LIMIT: "32G"CPU Details (lscpu)Details
Memory Pool PeaksPeak Base:
Pool accounting vs. process RSS Max pool peak is the largest reservation any single query in the run reached; peak RSS covers the whole invocation, including data loading and allocator retention, and the two high-water marks need not coincide in time. The gap is therefore an upper bound on what the pool did not account for, not a measurement of it.
Resource Usageclickbench_partitioned — base (merge-base)
clickbench_partitioned — branch
File an issue against this benchmark runner |
Which issue does this PR close?
Closes #26812.
Rationale for this change
Dictionary batches often share one values array while only their keys change. Partial aggregation was rehashing the same dictionary values for every batch.
What changes are included in this PR?
The non-streaming group table now caches dictionary value hashes while the values
Arcis unchanged. A single dictionary group key can also map known keys directly to group indices.New keys, changed or oversized dictionaries, and partial emission use the normal fallback. Multi-column hashing keeps the same semantics as
create_hashes. The benchmark fixtures are split into #27246.What is the testing strategy for this PR?
Unit tests cover cached and uncached hash consistency, unseen keys, changed dictionaries, null groups, partial emission, and forced collisions.
Hosted cases from #27246 show alternating dictionary-only 1.30× faster; alternating dictionary + Int32 and fresh dictionaries flat; and shared dictionary + Int32 1.14× faster at 32K values and 1.28× at 100K.
Exact-head hosted suites with RLE dictionary reads enabled on both sides:
Are there any user-facing changes?
No.