jayzhan211 opened a new pull request, #13133:
URL: https://github.com/apache/datafusion/pull/13133
## Which issue does this PR close?
<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases. You can
link an issue to this PR using the GitHub syntax. For example `Closes #123`
indicates that this PR will close issue #123.
-->
Closes #12231.
## Rationale for this change
<!--
Why are you proposing this change? If this is already explained clearly in
the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand your
changes and offer better suggestions for fixes.
-->
To address the issue of unbalanced polling between partitions due to
tie-breakers being based on partition index, especially in cases of low
cardinality, we are making changes to the winner selection mechanism.
Previously, partitions with smaller indices were consistently chosen as the
winners, leading to an uneven distribution of polling. This caused upstream
operator buffers for the other partitions to grow excessively, as they
continued receiving data without consuming it.
For example, an upstream operator like a repartition execution would keep
sending data to certain partitions, but those partitions wouldn't consume the
data if they weren't selected as winners. This resulted in inefficient buffer
usage.
To resolve this, we are modifying the tie-breaking logic. Instead of always
choosing the partition with the smallest index, we now select the partition
that has the fewest poll counts for the same value. This ensures that multiple
partitions with the same value are chosen equally, distributing the polling
load in a round-robin fashion. This approach balances the workload more
effectively across partitions and avoids excessive buffer growth.
## What changes are included in this PR?
<!--
There is no need to duplicate the description in the issue here but it is
sometimes worth providing a summary of the individual changes in this PR.
-->
## Are these changes tested?
<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code
If tests are not included in your PR, please explain why (for example, are
they covered by existing tests)?
-->
Test in `physical-plan/src/sorts/sort_preserving_merge.rs`
`test_round_robin_tie_breaker_success` and
`test_round_robin_tie_breaker_fail` ensure the change reduces the memory usage
## Benmark
### Existing benchmark
```
Comparing main and rrt-spm-upstream
--------------------
Benchmark clickbench_1.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ main ┃ rrt-spm-upstream ┃ Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 0.45ms │ 0.57ms │ 1.26x slower │
│ QQuery 1 │ 46.24ms │ 48.52ms │ no change │
│ QQuery 2 │ 76.71ms │ 83.55ms │ 1.09x slower │
│ QQuery 3 │ 63.92ms │ 68.84ms │ 1.08x slower │
│ QQuery 4 │ 380.44ms │ 385.14ms │ no change │
│ QQuery 5 │ 670.42ms │ 646.37ms │ no change │
│ QQuery 6 │ 38.02ms │ 35.67ms │ +1.07x faster │
│ QQuery 7 │ 42.44ms │ 40.35ms │ no change │
│ QQuery 8 │ 589.93ms │ 592.98ms │ no change │
│ QQuery 9 │ 671.63ms │ 687.24ms │ no change │
│ QQuery 10 │ 205.05ms │ 198.88ms │ no change │
│ QQuery 11 │ 227.11ms │ 213.99ms │ +1.06x faster │
│ QQuery 12 │ 713.92ms │ 709.17ms │ no change │
│ QQuery 13 │ 933.24ms │ 855.42ms │ +1.09x faster │
│ QQuery 14 │ 853.75ms │ 827.67ms │ no change │
│ QQuery 15 │ 533.70ms │ 490.15ms │ +1.09x faster │
│ QQuery 16 │ 1515.81ms │ 1247.68ms │ +1.21x faster │
│ QQuery 17 │ 1222.66ms │ 1147.56ms │ +1.07x faster │
│ QQuery 18 │ 3638.60ms │ 2507.95ms │ +1.45x faster │
│ QQuery 19 │ 53.47ms │ 52.83ms │ no change │
│ QQuery 20 │ 919.38ms │ 890.12ms │ no change │
│ QQuery 21 │ 1207.98ms │ 1161.21ms │ no change │
│ QQuery 22 │ 3158.55ms │ 3089.64ms │ no change │
│ QQuery 23 │ 7646.03ms │ 8210.14ms │ 1.07x slower │
│ QQuery 24 │ 483.60ms │ 476.21ms │ no change │
│ QQuery 25 │ 489.30ms │ 484.56ms │ no change │
│ QQuery 26 │ 536.40ms │ 524.97ms │ no change │
│ QQuery 27 │ 1346.64ms │ 1327.41ms │ no change │
│ QQuery 28 │ 10173.63ms │ 10044.20ms │ no change │
│ QQuery 29 │ 385.79ms │ 391.05ms │ no change │
│ QQuery 30 │ 683.58ms │ 712.13ms │ no change │
│ QQuery 31 │ 658.72ms │ 696.05ms │ 1.06x slower │
│ QQuery 32 │ 3507.12ms │ 2716.60ms │ +1.29x faster │
│ QQuery 33 │ 4117.65ms │ 3722.80ms │ +1.11x faster │
│ QQuery 34 │ 4877.99ms │ 3418.66ms │ +1.43x faster │
│ QQuery 35 │ 1019.64ms │ 948.61ms │ +1.07x faster │
│ QQuery 36 │ 147.46ms │ 143.21ms │ no change │
│ QQuery 37 │ 103.93ms │ 100.25ms │ no change │
│ QQuery 38 │ 111.03ms │ 106.88ms │ no change │
│ QQuery 39 │ 313.83ms │ 313.32ms │ no change │
│ QQuery 40 │ 39.52ms │ 33.74ms │ +1.17x faster │
│ QQuery 41 │ 34.21ms │ 32.91ms │ no change │
│ QQuery 42 │ 40.16ms │ 39.11ms │ no change │
└──────────────┴────────────┴──────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (main) │ 54479.61ms │
│ Total Time (rrt-spm-upstream) │ 50424.31ms │
│ Average Time (main) │ 1266.97ms │
│ Average Time (rrt-spm-upstream) │ 1172.66ms │
│ Queries Faster │ 12 │
│ Queries Slower │ 5 │
│ Queries with No Change │ 26 │
└─────────────────────────────────┴────────────┘
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ main ┃ rrt-spm-upstream ┃ Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.40ms │ 1.27ms │ +1.10x faster │
│ QQuery 1 │ 33.72ms │ 30.21ms │ +1.12x faster │
│ QQuery 2 │ 73.83ms │ 75.51ms │ no change │
│ QQuery 3 │ 55.09ms │ 59.58ms │ 1.08x slower │
│ QQuery 4 │ 393.95ms │ 379.21ms │ no change │
│ QQuery 5 │ 445.54ms │ 454.98ms │ no change │
│ QQuery 6 │ 27.19ms │ 26.65ms │ no change │
│ QQuery 7 │ 31.08ms │ 30.76ms │ no change │
│ QQuery 8 │ 620.59ms │ 623.24ms │ no change │
│ QQuery 9 │ 660.40ms │ 647.26ms │ no change │
│ QQuery 10 │ 174.50ms │ 175.96ms │ no change │
│ QQuery 11 │ 204.17ms │ 208.39ms │ no change │
│ QQuery 12 │ 503.89ms │ 498.32ms │ no change │
│ QQuery 13 │ 761.24ms │ 753.65ms │ no change │
│ QQuery 14 │ 606.85ms │ 610.73ms │ no change │
│ QQuery 15 │ 464.33ms │ 459.33ms │ no change │
│ QQuery 16 │ 1198.99ms │ 1229.86ms │ no change │
│ QQuery 17 │ 1095.33ms │ 1137.24ms │ no change │
│ QQuery 18 │ 3024.95ms │ 3283.14ms │ 1.09x slower │
│ QQuery 19 │ 42.05ms │ 45.01ms │ 1.07x slower │
│ QQuery 20 │ 1071.77ms │ 1081.38ms │ no change │
│ QQuery 21 │ 1257.39ms │ 1257.81ms │ no change │
│ QQuery 22 │ 3496.73ms │ 3232.40ms │ +1.08x faster │
│ QQuery 23 │ 6624.41ms │ 6532.45ms │ no change │
│ QQuery 24 │ 343.09ms │ 359.05ms │ no change │
│ QQuery 25 │ 340.91ms │ 310.57ms │ +1.10x faster │
│ QQuery 26 │ 403.59ms │ 383.72ms │ no change │
│ QQuery 27 │ 1518.98ms │ 1400.43ms │ +1.08x faster │
│ QQuery 28 │ 9779.07ms │ 9320.41ms │ no change │
│ QQuery 29 │ 381.86ms │ 427.38ms │ 1.12x slower │
│ QQuery 30 │ 641.28ms │ 634.10ms │ no change │
│ QQuery 31 │ 573.84ms │ 567.99ms │ no change │
│ QQuery 32 │ 3489.73ms │ 3112.20ms │ +1.12x faster │
│ QQuery 33 │ 5149.93ms │ 3671.92ms │ +1.40x faster │
│ QQuery 34 │ 4633.02ms │ 4101.02ms │ +1.13x faster │
│ QQuery 35 │ 1077.79ms │ 1066.61ms │ no change │
│ QQuery 36 │ 142.61ms │ 129.47ms │ +1.10x faster │
│ QQuery 37 │ 59.04ms │ 58.39ms │ no change │
│ QQuery 38 │ 89.33ms │ 89.34ms │ no change │
│ QQuery 39 │ 300.53ms │ 295.00ms │ no change │
│ QQuery 40 │ 27.87ms │ 27.96ms │ no change │
│ QQuery 41 │ 24.07ms │ 24.34ms │ no change │
│ QQuery 42 │ 32.99ms │ 31.84ms │ no change │
└──────────────┴───────────┴──────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (main) │ 51878.95ms │
│ Total Time (rrt-spm-upstream) │ 48846.07ms │
│ Average Time (main) │ 1206.49ms │
│ Average Time (rrt-spm-upstream) │ 1135.96ms │
│ Queries Faster │ 9 │
│ Queries Slower │ 4 │
│ Queries with No Change │ 30 │
└─────────────────────────────────┴────────────┘
Note: Skipping
/Users/bytedance/arrow-datafusion/benchmarks/results/main/imdb.json as
/Users/bytedance/arrow-datafusion/benchmarks/results/rrt-spm-upstream/imdb.json
does not exist
--------------------
Benchmark tpch_mem_sf1.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ main ┃ rrt-spm-upstream ┃ Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 67.97ms │ 69.60ms │ no change │
│ QQuery 2 │ 13.89ms │ 14.24ms │ no change │
│ QQuery 3 │ 21.74ms │ 21.15ms │ no change │
│ QQuery 4 │ 16.72ms │ 15.28ms │ +1.09x faster │
│ QQuery 5 │ 36.64ms │ 32.53ms │ +1.13x faster │
│ QQuery 6 │ 5.30ms │ 4.46ms │ +1.19x faster │
│ QQuery 7 │ 69.24ms │ 56.51ms │ +1.23x faster │
│ QQuery 8 │ 16.79ms │ 15.79ms │ +1.06x faster │
│ QQuery 9 │ 35.87ms │ 33.51ms │ +1.07x faster │
│ QQuery 10 │ 38.64ms │ 37.40ms │ no change │
│ QQuery 11 │ 5.92ms │ 5.45ms │ +1.09x faster │
│ QQuery 12 │ 21.70ms │ 22.56ms │ no change │
│ QQuery 13 │ 15.34ms │ 14.99ms │ no change │
│ QQuery 14 │ 7.61ms │ 7.07ms │ +1.08x faster │
│ QQuery 15 │ 11.56ms │ 11.09ms │ no change │
│ QQuery 16 │ 14.41ms │ 13.88ms │ no change │
│ QQuery 17 │ 48.13ms │ 44.84ms │ +1.07x faster │
│ QQuery 18 │ 116.31ms │ 102.80ms │ +1.13x faster │
│ QQuery 19 │ 19.98ms │ 18.92ms │ +1.06x faster │
│ QQuery 20 │ 21.47ms │ 20.01ms │ +1.07x faster │
│ QQuery 21 │ 80.11ms │ 71.54ms │ +1.12x faster │
│ QQuery 22 │ 14.28ms │ 13.46ms │ +1.06x faster │
└──────────────┴──────────┴──────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (main) │ 699.60ms │
│ Total Time (rrt-spm-upstream) │ 647.07ms │
│ Average Time (main) │ 31.80ms │
│ Average Time (rrt-spm-upstream) │ 29.41ms │
│ Queries Faster │ 14 │
│ Queries Slower │ 0 │
│ Queries with No Change │ 8 │
└─────────────────────────────────┴──────────┘
Note: Skipping
/Users/bytedance/arrow-datafusion/benchmarks/results/main/tpch_mem_sf10.json as
/Users/bytedance/arrow-datafusion/benchmarks/results/rrt-spm-upstream/tpch_mem_sf10.json
does not exist
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ main ┃ rrt-spm-upstream ┃ Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 95.44ms │ 109.33ms │ 1.15x slower │
│ QQuery 2 │ 27.33ms │ 26.26ms │ no change │
│ QQuery 3 │ 42.81ms │ 43.71ms │ no change │
│ QQuery 4 │ 27.25ms │ 26.30ms │ no change │
│ QQuery 5 │ 57.48ms │ 55.18ms │ no change │
│ QQuery 6 │ 18.26ms │ 18.05ms │ no change │
│ QQuery 7 │ 72.86ms │ 69.96ms │ no change │
│ QQuery 8 │ 56.06ms │ 54.84ms │ no change │
│ QQuery 9 │ 70.99ms │ 66.08ms │ +1.07x faster │
│ QQuery 10 │ 69.62ms │ 63.32ms │ +1.10x faster │
│ QQuery 11 │ 20.89ms │ 19.07ms │ +1.10x faster │
│ QQuery 12 │ 52.16ms │ 45.78ms │ +1.14x faster │
│ QQuery 13 │ 41.33ms │ 34.95ms │ +1.18x faster │
│ QQuery 14 │ 29.83ms │ 29.15ms │ no change │
│ QQuery 15 │ 48.01ms │ 44.87ms │ +1.07x faster │
│ QQuery 16 │ 21.04ms │ 19.35ms │ +1.09x faster │
│ QQuery 17 │ 82.28ms │ 72.71ms │ +1.13x faster │
│ QQuery 18 │ 118.77ms │ 104.85ms │ +1.13x faster │
│ QQuery 19 │ 55.26ms │ 50.51ms │ +1.09x faster │
│ QQuery 20 │ 42.10ms │ 41.71ms │ no change │
│ QQuery 21 │ 88.76ms │ 84.89ms │ no change │
│ QQuery 22 │ 17.43ms │ 17.78ms │ no change │
└──────────────┴──────────┴──────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (main) │ 1155.97ms │
│ Total Time (rrt-spm-upstream) │ 1098.66ms │
│ Average Time (main) │ 52.54ms │
│ Average Time (rrt-spm-upstream) │ 49.94ms │
│ Queries Faster │ 10 │
│ Queries Slower │ 1 │
│ Queries with No Change │ 11 │
└─────────────────────────────────┴───────────┘
--------------------
Benchmark tpch_sf10.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ main ┃ rrt-spm-upstream ┃ Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 720.38ms │ 713.40ms │ no change │
│ QQuery 2 │ 143.36ms │ 123.34ms │ +1.16x faster │
│ QQuery 3 │ 391.19ms │ 360.93ms │ +1.08x faster │
│ QQuery 4 │ 201.77ms │ 202.13ms │ no change │
│ QQuery 5 │ 559.81ms │ 538.89ms │ no change │
│ QQuery 6 │ 135.95ms │ 124.48ms │ +1.09x faster │
│ QQuery 7 │ 808.27ms │ 770.86ms │ no change │
│ QQuery 8 │ 631.28ms │ 580.88ms │ +1.09x faster │
│ QQuery 9 │ 1062.98ms │ 941.08ms │ +1.13x faster │
│ QQuery 10 │ 625.48ms │ 604.40ms │ no change │
│ QQuery 11 │ 85.16ms │ 88.97ms │ no change │
│ QQuery 12 │ 361.73ms │ 325.75ms │ +1.11x faster │
│ QQuery 13 │ 428.71ms │ 398.42ms │ +1.08x faster │
│ QQuery 14 │ 244.17ms │ 220.02ms │ +1.11x faster │
│ QQuery 15 │ 341.46ms │ 328.12ms │ no change │
│ QQuery 16 │ 108.79ms │ 103.85ms │ no change │
│ QQuery 17 │ 989.85ms │ 884.71ms │ +1.12x faster │
│ QQuery 18 │ 1502.95ms │ 1290.73ms │ +1.16x faster │
│ QQuery 19 │ 466.98ms │ 412.42ms │ +1.13x faster │
│ QQuery 20 │ 395.18ms │ 360.38ms │ +1.10x faster │
│ QQuery 21 │ 1046.22ms │ 999.99ms │ no change │
│ QQuery 22 │ 122.09ms │ 118.41ms │ no change │
└──────────────┴───────────┴──────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (main) │ 11373.77ms │
│ Total Time (rrt-spm-upstream) │ 10492.17ms │
│ Average Time (main) │ 516.99ms │
│ Average Time (rrt-spm-upstream) │ 476.92ms │
│ Queries Faster │ 12 │
│ Queries Slower │ 0 │
│ Queries with No Change │ 10 │
└─────────────────────────────────┴────────────┘
```
## SPM benchmark
```
low_card_without_tiebreaker_batch_count_1_partition_count_2
time: [13.366 µs 13.434 µs 13.509 µs]
Found 5 outliers among 100 measurements (5.00%)
3 (3.00%) high mild
2 (2.00%) high severe
low_card_without_tiebreaker_batch_count_1_partition_count_8
time: [61.584 µs 61.669 µs 61.766 µs]
Found 5 outliers among 100 measurements (5.00%)
3 (3.00%) high mild
2 (2.00%) high severe
low_card_without_tiebreaker_batch_count_1_partition_count_32
time: [304.05 µs 308.92 µs 314.73 µs]
Found 16 outliers among 100 measurements (16.00%)
6 (6.00%) high mild
10 (10.00%) high severe
low_card_without_tiebreaker_batch_count_25_partition_count_2
time: [312.28 µs 319.79 µs 329.16 µs]
Found 16 outliers among 100 measurements (16.00%)
7 (7.00%) high mild
9 (9.00%) high severe
low_card_without_tiebreaker_batch_count_25_partition_count_8
time: [1.5046 ms 1.5100 ms 1.5162 ms]
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe
low_card_without_tiebreaker_batch_count_25_partition_count_32
time: [7.4279 ms 7.4460 ms 7.4651 ms]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
low_card_without_tiebreaker_batch_count_625_partition_count_2
time: [7.8036 ms 7.8623 ms 7.9302 ms]
Found 7 outliers among 100 measurements (7.00%)
4 (4.00%) high mild
3 (3.00%) high severe
low_card_without_tiebreaker_batch_count_625_partition_count_8
time: [39.093 ms 39.248 ms 39.429 ms]
Found 5 outliers among 100 measurements (5.00%)
2 (2.00%) high mild
3 (3.00%) high severe
low_card_without_tiebreaker_batch_count_625_partition_count_32
time: [191.00 ms 191.44 ms 191.92 ms]
Found 7 outliers among 100 measurements (7.00%)
5 (5.00%) high mild
2 (2.00%) high severe
low_card_with_tiebreaker_batch_count_1_partition_count_2
time: [16.404 µs 16.490 µs 16.593 µs]
Found 6 outliers among 100 measurements (6.00%)
3 (3.00%) high mild
3 (3.00%) high severe
low_card_with_tiebreaker_batch_count_1_partition_count_8
time: [68.279 µs 68.755 µs 69.363 µs]
Found 7 outliers among 100 measurements (7.00%)
1 (1.00%) high mild
6 (6.00%) high severe
low_card_with_tiebreaker_batch_count_1_partition_count_32
time: [330.79 µs 331.68 µs 332.60 µs]
Found 12 outliers among 100 measurements (12.00%)
1 (1.00%) low mild
3 (3.00%) high mild
8 (8.00%) high severe
low_card_with_tiebreaker_batch_count_25_partition_count_2
time: [387.35 µs 391.46 µs 397.10 µs]
Found 5 outliers among 100 measurements (5.00%)
2 (2.00%) high mild
3 (3.00%) high severe
low_card_with_tiebreaker_batch_count_25_partition_count_8
time: [1.6955 ms 1.7088 ms 1.7241 ms]
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe
low_card_with_tiebreaker_batch_count_25_partition_count_32
time: [7.9670 ms 7.9976 ms 8.0309 ms]
Found 6 outliers among 100 measurements (6.00%)
5 (5.00%) high mild
1 (1.00%) high severe
low_card_with_tiebreaker_batch_count_625_partition_count_2
time: [9.6862 ms 9.7693 ms 9.8785 ms]
Found 7 outliers among 100 measurements (7.00%)
5 (5.00%) high mild
2 (2.00%) high severe
low_card_with_tiebreaker_batch_count_625_partition_count_8
time: [43.646 ms 44.099 ms 44.713 ms]
Found 5 outliers among 100 measurements (5.00%)
2 (2.00%) high mild
3 (3.00%) high severe
low_card_with_tiebreaker_batch_count_625_partition_count_32
time: [203.61 ms 204.11 ms 204.66 ms]
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe
high_card_without_tiebreaker_batch_count_1_partition_count_2
time: [14.491 µs 14.522 µs 14.559 µs]
Found 5 outliers among 100 measurements (5.00%)
3 (3.00%) high mild
2 (2.00%) high severe
high_card_without_tiebreaker_batch_count_1_partition_count_8
time: [70.368 µs 71.419 µs 72.912 µs]
Found 5 outliers among 100 measurements (5.00%)
3 (3.00%) high mild
2 (2.00%) high severe
high_card_without_tiebreaker_batch_count_1_partition_count_32
time: [385.86 µs 390.40 µs 395.69 µs]
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe
high_card_without_tiebreaker_batch_count_25_partition_count_2
time: [319.50 µs 324.18 µs 330.14 µs]
Found 5 outliers among 100 measurements (5.00%)
3 (3.00%) high mild
2 (2.00%) high severe
high_card_without_tiebreaker_batch_count_25_partition_count_8
time: [1.5848 ms 1.6063 ms 1.6340 ms]
Found 5 outliers among 100 measurements (5.00%)
1 (1.00%) high mild
4 (4.00%) high severe
high_card_without_tiebreaker_batch_count_25_partition_count_32
time: [7.6091 ms 7.6281 ms 7.6474 ms]
high_card_without_tiebreaker_batch_count_625_partition_count_2
time: [7.8836 ms 7.9195 ms 7.9607 ms]
Found 8 outliers among 100 measurements (8.00%)
6 (6.00%) high mild
2 (2.00%) high severe
high_card_without_tiebreaker_batch_count_625_partition_count_8
time: [39.740 ms 39.938 ms 40.212 ms]
Found 4 outliers among 100 measurements (4.00%)
2 (2.00%) high mild
2 (2.00%) high severe
high_card_without_tiebreaker_batch_count_625_partition_count_32
time: [193.04 ms 193.58 ms 194.20 ms]
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe
high_card_with_tiebreaker_batch_count_1_partition_count_2
time: [16.543 µs 16.740 µs 17.011 µs]
Found 12 outliers among 100 measurements (12.00%)
9 (9.00%) high mild
3 (3.00%) high severe
high_card_with_tiebreaker_batch_count_1_partition_count_8
time: [76.672 µs 77.095 µs 77.590 µs]
Found 10 outliers among 100 measurements (10.00%)
7 (7.00%) high mild
3 (3.00%) high severe
high_card_with_tiebreaker_batch_count_1_partition_count_32
time: [390.44 µs 391.35 µs 392.40 µs]
Found 7 outliers among 100 measurements (7.00%)
7 (7.00%) high mild
high_card_with_tiebreaker_batch_count_25_partition_count_2
time: [358.82 µs 369.85 µs 382.69 µs]
Found 13 outliers among 100 measurements (13.00%)
1 (1.00%) high mild
12 (12.00%) high severe
high_card_with_tiebreaker_batch_count_25_partition_count_8
time: [1.6513 ms 1.6563 ms 1.6626 ms]
Found 7 outliers among 100 measurements (7.00%)
3 (3.00%) high mild
4 (4.00%) high severe
high_card_with_tiebreaker_batch_count_25_partition_count_32
time: [7.9372 ms 7.9543 ms 7.9725 ms]
Found 7 outliers among 100 measurements (7.00%)
7 (7.00%) high mild
high_card_with_tiebreaker_batch_count_625_partition_count_2
time: [8.5996 ms 8.6271 ms 8.6556 ms]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
high_card_with_tiebreaker_batch_count_625_partition_count_8
time: [43.480 ms 44.112 ms 44.990 ms]
Found 8 outliers among 100 measurements (8.00%)
2 (2.00%) high mild
6 (6.00%) high severe
high_card_with_tiebreaker_batch_count_625_partition_count_32
time: [202.68 ms 203.14 ms 203.64 ms]
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe
```
# Summary
## Performance
I run the benchmark couple of times since it varies each time, I find there
is clear improvement for some query like clickbench q34. I think it only shows
difference in larger dataset and extreme cases.
## Memory usage
The memory issue is what we focus on and we also observe less memory usage.
👍
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]