doris
doris copied to clipboard
[feat](nereids)push Limit to local agg
Proposed changes
for a pattern: topn(n)->globalAgg->localAgg this pr tries to add a filter on global/localAgg which means only the first n tuples are counted, and others could be ignored.
Issue Number: close #xxx
Further comments
If this is a relatively large or complex change, kick off the discussion at [email protected] by explaining why you chose the solution you did and what alternatives you considered, etc...
Thank you for your contribution to Apache Doris. Don't know what should be done next? See How to process your PR
Since 2024-03-18, the Document has been moved to doris-website. See Doris Document.
run buildall
clang-tidy review says "All clean, LGTM! :+1:"
clang-tidy review says "All clean, LGTM! :+1:"
add description please
clang-tidy review says "All clean, LGTM! :+1:"
add description
run buildall
clang-tidy review says "All clean, LGTM! :+1:"
TPC-H: Total hot run time: 42152 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit e9d6017c9dbf124d3af8c1cb73e23ad03eae6a3a, data reload: false
------ Round 1 ----------------------------------
q1 17606 5006 4316 4316
q2 2023 196 195 195
q3 10444 1163 1215 1163
q4 10194 861 835 835
q5 7461 2699 2707 2699
q6 222 134 134 134
q7 1043 602 610 602
q8 9246 2193 2105 2105
q9 9147 6760 6757 6757
q10 9178 3943 3882 3882
q11 459 242 251 242
q12 458 222 229 222
q13 17252 3210 3237 3210
q14 285 234 219 219
q15 528 467 468 467
q16 517 380 398 380
q17 989 669 649 649
q18 8569 7852 7999 7852
q19 6185 1585 1493 1493
q20 644 327 339 327
q21 5252 4185 4128 4128
q22 354 291 275 275
Total cold run time: 118056 ms
Total hot run time: 42152 ms
----- Round 2, with runtime_filter_mode=off -----
q1 4545 4465 4439 4439
q2 380 281 266 266
q3 3174 2927 2755 2755
q4 1868 1607 1688 1607
q5 5536 5535 5498 5498
q6 212 121 128 121
q7 2336 1962 1978 1962
q8 3293 3426 3505 3426
q9 8713 8851 8642 8642
q10 3926 3857 3845 3845
q11 613 494 496 494
q12 812 617 603 603
q13 15955 3115 3197 3115
q14 300 284 270 270
q15 530 497 493 493
q16 507 418 429 418
q17 1787 1515 1466 1466
q18 7769 7650 7633 7633
q19 1667 1586 1515 1515
q20 2024 1789 1776 1776
q21 11576 4809 4951 4809
q22 563 497 460 460
Total cold run time: 78086 ms
Total hot run time: 55613 ms
TPC-DS: Total hot run time: 181914 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit e9d6017c9dbf124d3af8c1cb73e23ad03eae6a3a, data reload: false
query1 913 394 385 385
query2 6434 2308 2437 2308
query3 6654 205 205 205
query4 23729 21263 21312 21263
query5 4140 420 416 416
query6 273 177 176 176
query7 4580 288 286 286
query8 243 192 195 192
query9 8535 2401 2385 2385
query10 424 249 246 246
query11 14660 14211 14159 14159
query12 133 89 87 87
query13 1637 380 375 375
query14 9670 8529 7722 7722
query15 226 184 180 180
query16 7133 260 256 256
query17 1032 549 548 548
query18 1915 295 269 269
query19 200 153 150 150
query20 93 104 85 85
query21 194 132 127 127
query22 5045 4846 4818 4818
query23 34474 33661 33429 33429
query24 5028 3018 2884 2884
query25 468 402 370 370
query26 692 155 155 155
query27 1845 319 332 319
query28 3844 2043 2044 2043
query29 843 610 592 592
query30 251 183 178 178
query31 920 769 739 739
query32 59 51 60 51
query33 379 249 241 241
query34 865 462 479 462
query35 770 721 665 665
query36 1043 950 899 899
query37 112 71 74 71
query38 2866 2777 2777 2777
query39 1620 1564 1568 1564
query40 198 134 127 127
query41 57 45 48 45
query42 106 95 101 95
query43 601 568 546 546
query44 1063 725 735 725
query45 269 257 244 244
query46 1052 729 734 729
query47 1938 1905 1895 1895
query48 375 309 297 297
query49 780 401 396 396
query50 768 393 375 375
query51 6880 6823 6782 6782
query52 108 90 88 88
query53 354 280 295 280
query54 558 429 432 429
query55 73 70 74 70
query56 235 225 225 225
query57 1231 1138 1147 1138
query58 226 200 200 200
query59 3732 3134 3396 3134
query60 250 236 235 235
query61 93 92 87 87
query62 577 460 483 460
query63 308 283 282 282
query64 2614 1840 1806 1806
query65 3162 3128 3125 3125
query66 688 355 350 350
query67 15248 14660 14844 14660
query68 4550 549 545 545
query69 483 307 310 307
query70 1173 1113 1147 1113
query71 430 274 273 273
query72 7234 2704 2515 2515
query73 723 317 318 317
query74 6647 6257 6204 6204
query75 3342 2644 2605 2605
query76 2334 1053 908 908
query77 449 273 277 273
query78 10735 10249 10287 10249
query79 2301 520 522 520
query80 873 446 445 445
query81 533 240 247 240
query82 809 101 102 101
query83 255 173 177 173
query84 267 93 88 88
query85 1151 326 313 313
query86 464 312 304 304
query87 3312 3129 3176 3129
query88 4067 2335 2333 2333
query89 477 383 387 383
query90 2073 196 191 191
query91 136 107 110 107
query92 66 51 50 50
query93 2045 511 500 500
query94 1133 188 188 188
query95 531 307 335 307
query96 592 263 268 263
query97 3203 2964 2972 2964
query98 243 228 219 219
query99 1225 898 885 885
Total cold run time: 261342 ms
Total hot run time: 181914 ms
ClickBench: Total hot run time: 30.66 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit e9d6017c9dbf124d3af8c1cb73e23ad03eae6a3a, data reload: false
query1 0.04 0.04 0.03
query2 0.08 0.04 0.04
query3 0.23 0.05 0.06
query4 1.67 0.08 0.08
query5 0.50 0.48 0.50
query6 1.12 0.73 0.74
query7 0.02 0.01 0.02
query8 0.05 0.04 0.04
query9 0.53 0.50 0.49
query10 0.55 0.57 0.55
query11 0.15 0.11 0.11
query12 0.15 0.11 0.12
query13 0.60 0.59 0.59
query14 0.76 0.77 0.78
query15 0.82 0.81 0.81
query16 0.36 0.37 0.36
query17 0.95 1.04 0.98
query18 0.22 0.25 0.24
query19 1.84 1.72 1.71
query20 0.01 0.01 0.01
query21 15.49 0.68 0.66
query22 4.09 7.55 1.85
query23 18.25 1.38 1.34
query24 1.67 0.28 0.21
query25 0.15 0.09 0.09
query26 0.26 0.17 0.16
query27 0.08 0.08 0.08
query28 13.34 1.02 1.00
query29 12.74 3.30 3.26
query30 0.24 0.06 0.06
query31 2.86 0.38 0.38
query32 3.29 0.47 0.48
query33 2.85 2.94 2.90
query34 17.03 4.43 4.41
query35 4.53 4.53 4.54
query36 0.68 0.49 0.46
query37 0.18 0.16 0.16
query38 0.17 0.14 0.14
query39 0.04 0.04 0.04
query40 0.16 0.14 0.14
query41 0.09 0.04 0.05
query42 0.05 0.05 0.05
query43 0.04 0.04 0.04
Total cold run time: 108.93 s
Total hot run time: 30.66 s
clang-tidy review says "All clean, LGTM! :+1:"
run buildall
clang-tidy review says "All clean, LGTM! :+1:"
TPC-H: Total hot run time: 40308 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 8c1ead2da8d951d6396d7c5af18194600ae996f3, data reload: false
------ Round 1 ----------------------------------
q1 17596 4919 4265 4265
q2 2018 188 204 188
q3 10551 1233 1199 1199
q4 10394 838 754 754
q5 7557 2753 2618 2618
q6 222 138 151 138
q7 973 618 631 618
q8 9474 2139 2092 2092
q9 9103 6646 6622 6622
q10 9430 3762 3714 3714
q11 461 252 245 245
q12 483 231 225 225
q13 18829 3012 3041 3012
q14 252 228 229 228
q15 503 472 472 472
q16 547 384 387 384
q17 995 622 749 622
q18 8160 7504 7486 7486
q19 4501 1572 1458 1458
q20 667 317 315 315
q21 5028 3899 3372 3372
q22 348 281 282 281
Total cold run time: 118092 ms
Total hot run time: 40308 ms
----- Round 2, with runtime_filter_mode=off -----
q1 4364 4254 4229 4229
q2 374 263 272 263
q3 2970 2800 2692 2692
q4 1884 1565 1557 1557
q5 5288 5301 5296 5296
q6 215 128 130 128
q7 2168 1691 1783 1691
q8 3222 3322 3329 3322
q9 8400 8312 8328 8312
q10 3873 3699 3684 3684
q11 587 497 504 497
q12 763 599 628 599
q13 17179 3040 3036 3036
q14 281 253 270 253
q15 521 475 482 475
q16 476 422 412 412
q17 1772 1501 1479 1479
q18 7882 7538 7510 7510
q19 1661 1562 1581 1562
q20 1984 1771 1801 1771
q21 4888 4815 4728 4728
q22 571 508 478 478
Total cold run time: 71323 ms
Total hot run time: 53974 ms
TPC-DS: Total hot run time: 171080 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 8c1ead2da8d951d6396d7c5af18194600ae996f3, data reload: false
query1 920 387 375 375
query2 6450 2487 2351 2351
query3 6649 211 205 205
query4 20028 17376 17353 17353
query5 4176 423 426 423
query6 252 169 170 169
query7 4601 300 291 291
query8 248 203 206 203
query9 8363 2393 2372 2372
query10 454 296 272 272
query11 10598 10257 10109 10109
query12 139 89 91 89
query13 1645 368 368 368
query14 8528 7307 7755 7307
query15 262 168 170 168
query16 8176 268 266 266
query17 1828 550 539 539
query18 2118 281 277 277
query19 283 165 163 163
query20 93 88 84 84
query21 197 131 132 131
query22 4384 4157 3898 3898
query23 33770 33087 34008 33087
query24 11733 2886 2830 2830
query25 547 351 362 351
query26 1269 151 150 150
query27 2901 293 295 293
query28 7517 2037 2049 2037
query29 858 603 631 603
query30 319 173 176 173
query31 968 751 748 748
query32 87 53 56 53
query33 773 273 259 259
query34 1054 473 481 473
query35 699 569 553 553
query36 1071 928 910 910
query37 212 80 80 80
query38 2910 2793 2802 2793
query39 849 791 792 791
query40 284 121 118 118
query41 48 44 41 41
query42 101 95 100 95
query43 588 564 553 553
query44 1207 738 767 738
query45 184 164 162 162
query46 1074 692 734 692
query47 1841 1772 1738 1738
query48 371 297 290 290
query49 1178 388 390 388
query50 786 416 399 399
query51 6983 6832 6704 6704
query52 110 100 89 89
query53 351 292 284 284
query54 921 434 422 422
query55 75 72 73 72
query56 260 242 242 242
query57 1108 1053 1065 1053
query58 238 209 211 209
query59 3386 3323 3193 3193
query60 301 256 250 250
query61 94 87 90 87
query62 844 684 653 653
query63 311 281 284 281
query64 9751 2234 1807 1807
query65 3197 3108 3134 3108
query66 1274 334 325 325
query67 15245 15041 14835 14835
query68 6406 529 539 529
query69 503 269 276 269
query70 1223 1157 1135 1135
query71 510 269 270 269
query72 7765 5666 2737 2737
query73 821 318 320 318
query74 6130 5612 5664 5612
query75 4024 2599 2632 2599
query76 4521 994 961 961
query77 677 270 272 270
query78 10392 9901 10038 9901
query79 3029 512 520 512
query80 1276 503 434 434
query81 524 246 245 245
query82 763 206 203 203
query83 215 175 171 171
query84 265 86 84 84
query85 1436 286 263 263
query86 463 310 295 295
query87 3357 3094 3079 3079
query88 4393 2315 2328 2315
query89 501 401 388 388
query90 2015 195 192 192
query91 125 95 97 95
query92 62 51 48 48
query93 4047 511 501 501
query94 1135 237 186 186
query95 419 320 317 317
query96 610 266 267 266
query97 3191 2999 2967 2967
query98 239 218 212 212
query99 1663 1283 1282 1282
Total cold run time: 282740 ms
Total hot run time: 171080 ms
ClickBench: Total hot run time: 30.31 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 8c1ead2da8d951d6396d7c5af18194600ae996f3, data reload: false
query1 0.04 0.04 0.03
query2 0.09 0.04 0.04
query3 0.23 0.05 0.06
query4 1.65 0.07 0.08
query5 0.50 0.48 0.50
query6 1.12 0.72 0.71
query7 0.03 0.01 0.01
query8 0.04 0.04 0.04
query9 0.54 0.49 0.49
query10 0.55 0.55 0.53
query11 0.16 0.11 0.12
query12 0.15 0.12 0.12
query13 0.59 0.59 0.60
query14 0.78 0.77 0.78
query15 0.83 0.82 0.80
query16 0.37 0.34 0.37
query17 0.96 0.95 0.95
query18 0.21 0.25 0.25
query19 1.82 1.69 1.63
query20 0.02 0.01 0.01
query21 15.74 0.66 0.65
query22 4.00 8.03 1.83
query23 18.25 1.38 1.27
query24 1.64 0.26 0.22
query25 0.14 0.09 0.08
query26 0.25 0.17 0.17
query27 0.08 0.08 0.07
query28 13.48 1.02 1.02
query29 13.05 3.32 3.31
query30 0.24 0.06 0.06
query31 2.84 0.40 0.38
query32 3.27 0.47 0.46
query33 2.92 2.87 2.91
query34 17.26 4.40 4.48
query35 4.52 4.56 4.47
query36 0.65 0.45 0.47
query37 0.17 0.15 0.15
query38 0.15 0.15 0.15
query39 0.05 0.03 0.04
query40 0.16 0.14 0.14
query41 0.10 0.05 0.04
query42 0.06 0.05 0.04
query43 0.04 0.03 0.04
Total cold run time: 109.74 s
Total hot run time: 30.31 s