perf: Concrete TopK array storage#23609
Conversation
|
run benchmark topk_aggregate |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing concrete-topk-storage (8a7b678) to 95de385 (merge-base) diff using: topk_aggregate File an issue against this benchmark runner |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #23609 +/- ##
=======================================
Coverage ? 80.65%
=======================================
Files ? 1086
Lines ? 366091
Branches ? 366091
=======================================
Hits ? 295262
Misses ? 53235
Partials ? 17594 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
🤖 Benchmark completed (GKE) | trigger Instance: CPU Details (lscpu)Details
Resource Usagetopk_aggregate — base (merge-base)
topk_aggregate — branch
File an issue against this benchmark runner |
|
Benchmarks look good -- I am running them once more to see if htey are reproducable |
|
run benchmark topk_aggregate |
|
🤖 Benchmark running (GKE) | trigger CPU Details (lscpu)Comparing concrete-topk-storage (8a7b678) to 95de385 (merge-base) diff using: topk_aggregate File an issue against this benchmark runner |
|
🤖 Benchmark completed (GKE) | trigger Instance: CPU Details (lscpu)Details
Resource Usagetopk_aggregate — base (merge-base)
topk_aggregate — branch
File an issue against this benchmark runner |
Which issue does this PR close?
N/A
Rationale for this change
Eliminate the overhead of casting with
dyn Anyfor every item.What changes are included in this PR?
Cast once per batch and store the typed array.
PrimitiveHashTables was already generic, so this was a big and simple win.
StringHashTable was made to use an enum for consistency/readability.
Are these changes tested?
Should be covered by existing tests.
For benching try
cargo bench -p datafusion --bench topk_aggregate -- "top k=10 aggregate".Are there any user-facing changes?
None.