doris icon indicating copy to clipboard operation
doris copied to clipboard

[feat](nereids)push Limit to local agg

Open englefly opened this issue 9 months ago • 57 comments

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...

englefly avatar May 14 '24 11:05 englefly

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.

doris-robot avatar May 14 '24 11:05 doris-robot

run buildall

englefly avatar May 14 '24 11:05 englefly

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar May 14 '24 11:05 github-actions[bot]

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar May 15 '24 08:05 github-actions[bot]

add description please

morrySnow avatar May 15 '24 08:05 morrySnow

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar May 15 '24 10:05 github-actions[bot]

add description

morrySnow avatar May 21 '24 12:05 morrySnow

run buildall

englefly avatar May 22 '24 01:05 englefly

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar May 22 '24 01:05 github-actions[bot]

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

doris-robot avatar May 22 '24 03:05 doris-robot

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

doris-robot avatar May 22 '24 03:05 doris-robot

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

doris-robot avatar May 22 '24 03:05 doris-robot

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar May 22 '24 06:05 github-actions[bot]

run buildall

englefly avatar May 22 '24 08:05 englefly

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar May 22 '24 09:05 github-actions[bot]

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

doris-robot avatar May 22 '24 10:05 doris-robot

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

doris-robot avatar May 22 '24 10:05 doris-robot

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

doris-robot avatar May 22 '24 10:05 doris-robot