Skip to content

Conversation

@Gabriel39
Copy link
Contributor

…d data distribution

This is a follow-up for #34122 .
Currently, we use bucket shuffle local exchange to re-distribution data before a 'colocated' operator. But if no colocate/bucket-shuffle join followed, bucket-shuffle for this operator is not always suitable because the parallism will be restricted by the account of buckets.

Issue Number: close #xxx

Further comments

If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...

@doris-robot
Copy link

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.

@Gabriel39
Copy link
Contributor Author

run buildall

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.76% (9008/25192)
Line Coverage: 27.39% (74563/272222)
Region Coverage: 26.61% (38575/144951)
Branch Coverage: 23.47% (19667/83804)
Coverage Report: http://coverage.selectdb-in.cc/coverage/1c4abdc1b9aed5e460b094f9544ac64b59a87d5c_1c4abdc1b9aed5e460b094f9544ac64b59a87d5c/report/index.html

@doris-robot
Copy link

TPC-H: Total hot run time: 41046 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 1c4abdc1b9aed5e460b094f9544ac64b59a87d5c, data reload: false

------ Round 1 ----------------------------------
q1	17618	4472	4282	4282
q2	2014	190	184	184
q3	10471	1236	1243	1236
q4	10203	787	822	787
q5	7473	2740	2666	2666
q6	216	139	132	132
q7	963	623	644	623
q8	9422	2127	2107	2107
q9	10086	6667	6675	6667
q10	9131	3853	3857	3853
q11	453	241	233	233
q12	500	226	229	226
q13	17510	3260	3194	3194
q14	283	222	220	220
q15	533	479	488	479
q16	498	403	406	403
q17	1010	644	760	644
q18	8366	7821	7762	7762
q19	6726	1535	1487	1487
q20	1058	335	315	315
q21	5181	3289	3269	3269
q22	348	289	277	277
Total cold run time: 120063 ms
Total hot run time: 41046 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4589	4334	4447	4334
q2	525	282	271	271
q3	3156	2886	2935	2886
q4	1964	1698	1725	1698
q5	5296	5409	5445	5409
q6	218	129	125	125
q7	2183	1844	1801	1801
q8	3220	3382	3359	3359
q9	8657	8633	8692	8633
q10	4121	3864	3796	3796
q11	568	479	472	472
q12	797	614	613	613
q13	15977	3191	3122	3122
q14	296	293	258	258
q15	535	483	484	483
q16	492	441	421	421
q17	1806	1510	1523	1510
q18	7850	7497	7322	7322
q19	1666	1554	1545	1545
q20	2000	1775	1801	1775
q21	10873	4767	4707	4707
q22	574	516	510	510
Total cold run time: 77363 ms
Total hot run time: 55050 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 170440 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 1c4abdc1b9aed5e460b094f9544ac64b59a87d5c, data reload: false

query1	920	383	381	381
query2	6442	2445	2428	2428
query3	6633	203	202	202
query4	20698	17301	17369	17301
query5	4091	424	423	423
query6	252	152	156	152
query7	4577	296	288	288
query8	237	193	187	187
query9	8518	2367	2360	2360
query10	469	282	275	275
query11	10529	10331	10226	10226
query12	139	90	90	90
query13	1638	381	380	380
query14	8526	7869	7651	7651
query15	238	170	172	170
query16	8035	302	269	269
query17	1691	530	526	526
query18	2086	283	270	270
query19	199	153	158	153
query20	95	82	84	82
query21	193	138	131	131
query22	4251	3872	3860	3860
query23	33672	33014	33293	33014
query24	10209	2832	2759	2759
query25	556	358	377	358
query26	705	159	161	159
query27	2436	340	340	340
query28	6060	2115	2050	2050
query29	842	605	582	582
query30	241	151	153	151
query31	977	752	749	749
query32	96	53	56	53
query33	645	277	262	262
query34	864	483	467	467
query35	738	636	620	620
query36	1032	914	922	914
query37	100	66	67	66
query38	2891	2823	2805	2805
query39	832	823	816	816
query40	194	124	124	124
query41	45	44	44	44
query42	103	100	93	93
query43	604	559	559	559
query44	1081	746	751	746
query45	173	164	161	161
query46	1077	754	715	715
query47	1860	1777	1788	1777
query48	387	299	303	299
query49	824	381	389	381
query50	772	394	402	394
query51	6900	6841	6768	6768
query52	106	88	94	88
query53	350	284	296	284
query54	886	448	435	435
query55	73	73	71	71
query56	258	244	245	244
query57	1098	1058	1047	1047
query58	234	213	209	209
query59	3367	3323	3140	3140
query60	281	259	274	259
query61	98	87	85	85
query62	605	459	451	451
query63	314	286	289	286
query64	8490	2210	1740	1740
query65	3186	3096	3106	3096
query66	795	331	323	323
query67	15477	15331	14626	14626
query68	4574	528	525	525
query69	470	308	261	261
query70	1197	1118	1048	1048
query71	411	272	270	270
query72	7695	2773	2554	2554
query73	723	330	325	325
query74	6038	5703	5642	5642
query75	3418	2642	2639	2639
query76	2838	1058	1001	1001
query77	603	270	265	265
query78	10297	9809	9831	9809
query79	2325	510	508	508
query80	907	441	451	441
query81	520	224	221	221
query82	747	91	92	91
query83	242	171	168	168
query84	243	90	85	85
query85	1371	370	267	267
query86	461	310	317	310
query87	3259	3116	3101	3101
query88	4260	2449	2465	2449
query89	473	399	380	380
query90	2029	189	193	189
query91	127	101	98	98
query92	58	51	51	51
query93	1840	506	495	495
query94	1190	188	182	182
query95	406	323	322	322
query96	590	272	276	272
query97	3194	3005	3015	3005
query98	252	221	215	215
query99	1179	869	836	836
Total cold run time: 266928 ms
Total hot run time: 170440 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 30.32 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 1c4abdc1b9aed5e460b094f9544ac64b59a87d5c, data reload: false

query1	0.04	0.04	0.03
query2	0.08	0.04	0.05
query3	0.22	0.04	0.05
query4	1.67	0.09	0.08
query5	0.49	0.52	0.50
query6	1.12	0.72	0.73
query7	0.02	0.01	0.02
query8	0.05	0.04	0.04
query9	0.54	0.50	0.49
query10	0.55	0.55	0.54
query11	0.17	0.12	0.12
query12	0.14	0.12	0.13
query13	0.61	0.58	0.59
query14	0.76	0.77	0.78
query15	0.85	0.82	0.81
query16	0.37	0.38	0.38
query17	0.96	0.95	1.03
query18	0.20	0.28	0.23
query19	1.82	1.67	1.68
query20	0.02	0.01	0.01
query21	15.57	0.68	0.65
query22	4.19	7.68	1.68
query23	18.29	1.43	1.33
query24	1.59	0.30	0.20
query25	0.14	0.10	0.08
query26	0.27	0.17	0.17
query27	0.08	0.08	0.07
query28	13.50	1.02	1.00
query29	13.74	3.25	3.24
query30	0.25	0.06	0.05
query31	2.86	0.39	0.38
query32	3.28	0.46	0.46
query33	2.86	2.95	2.86
query34	17.14	4.47	4.50
query35	4.47	4.52	4.65
query36	0.64	0.46	0.45
query37	0.18	0.15	0.15
query38	0.15	0.14	0.15
query39	0.05	0.04	0.03
query40	0.15	0.15	0.14
query41	0.08	0.04	0.05
query42	0.06	0.05	0.05
query43	0.04	0.03	0.04
Total cold run time: 110.26 s
Total hot run time: 30.32 s

@Gabriel39
Copy link
Contributor Author

run buildall

@Gabriel39
Copy link
Contributor Author

run buildall

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

1 similar comment
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@doris-robot
Copy link

TPC-H: Total hot run time: 41368 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit f1a9bae1e2e0d6538b926d27c67bd221e4cc8353, data reload: false

------ Round 1 ----------------------------------
q1	17618	4514	4353	4353
q2	2029	199	194	194
q3	10431	1282	1244	1244
q4	10202	896	743	743
q5	7500	2702	2740	2702
q6	224	135	138	135
q7	990	604	618	604
q8	9224	2174	2145	2145
q9	9269	6722	6738	6722
q10	9120	3873	3887	3873
q11	452	240	244	240
q12	522	241	252	241
q13	18443	3282	3158	3158
q14	282	221	223	221
q15	530	490	476	476
q16	500	410	407	407
q17	1012	657	745	657
q18	8344	7856	7826	7826
q19	5590	1569	1534	1534
q20	624	329	315	315
q21	5207	3299	4145	3299
q22	369	287	279	279
Total cold run time: 118482 ms
Total hot run time: 41368 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4526	4361	4424	4361
q2	386	280	272	272
q3	3167	2940	2976	2940
q4	1986	1714	1698	1698
q5	5362	5520	5537	5520
q6	213	127	125	125
q7	2231	1787	1850	1787
q8	3281	3441	3444	3441
q9	8635	8708	8705	8705
q10	4149	3811	3719	3719
q11	579	514	502	502
q12	841	635	652	635
q13	16156	3139	3179	3139
q14	307	265	273	265
q15	522	490	507	490
q16	493	436	435	435
q17	1823	1494	1472	1472
q18	7796	7667	7474	7474
q19	1658	1522	1506	1506
q20	1992	1813	1749	1749
q21	8482	4812	4608	4608
q22	574	482	502	482
Total cold run time: 75159 ms
Total hot run time: 55325 ms

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.75% (9007/25196)
Line Coverage: 27.36% (74547/272486)
Region Coverage: 26.57% (38562/145108)
Branch Coverage: 23.44% (19666/83894)
Coverage Report: http://coverage.selectdb-in.cc/coverage/f1a9bae1e2e0d6538b926d27c67bd221e4cc8353_f1a9bae1e2e0d6538b926d27c67bd221e4cc8353/report/index.html

@doris-robot
Copy link

TPC-DS: Total hot run time: 172806 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 f1a9bae1e2e0d6538b926d27c67bd221e4cc8353, data reload: false

query1	900	391	381	381
query2	6430	2473	2277	2277
query3	6645	207	207	207
query4	19355	17260	17259	17259
query5	4186	419	421	419
query6	250	153	153	153
query7	4588	286	283	283
query8	241	187	177	177
query9	8662	2357	2371	2357
query10	455	284	258	258
query11	10458	9973	10133	9973
query12	136	92	87	87
query13	1647	368	369	368
query14	10116	7725	7724	7724
query15	239	179	170	170
query16	8026	268	295	268
query17	1669	522	511	511
query18	2002	272	266	266
query19	198	148	148	148
query20	90	86	83	83
query21	191	131	129	129
query22	4337	4006	3992	3992
query23	33498	33052	32975	32975
query24	10514	2892	2944	2892
query25	558	356	358	356
query26	692	154	161	154
query27	2210	319	330	319
query28	5846	2036	2054	2036
query29	842	596	592	592
query30	243	151	148	148
query31	940	755	742	742
query32	92	51	58	51
query33	650	262	259	259
query34	880	472	471	471
query35	732	604	595	595
query36	1087	931	952	931
query37	102	61	65	61
query38	2870	2774	2737	2737
query39	867	801	784	784
query40	196	128	121	121
query41	46	45	44	44
query42	102	97	98	97
query43	603	560	575	560
query44	1127	738	738	738
query45	188	161	159	159
query46	1066	700	754	700
query47	1863	1767	1779	1767
query48	371	313	293	293
query49	838	375	377	375
query50	764	401	386	386
query51	6744	6778	6699	6699
query52	103	92	92	92
query53	356	296	295	295
query54	840	433	426	426
query55	74	71	69	69
query56	285	236	238	236
query57	1135	1027	1026	1026
query58	235	207	205	205
query59	3473	3208	3349	3208
query60	271	257	250	250
query61	91	87	87	87
query62	606	451	444	444
query63	310	278	283	278
query64	8528	2209	1690	1690
query65	3185	3090	3129	3090
query66	764	324	342	324
query67	15153	14941	14731	14731
query68	4532	512	518	512
query69	441	270	274	270
query70	1135	1131	1112	1112
query71	376	312	261	261
query72	6874	5506	5316	5316
query73	715	321	319	319
query74	6111	5721	5658	5658
query75	3271	2634	2632	2632
query76	2350	1010	1056	1010
query77	374	260	258	258
query78	10130	9931	9822	9822
query79	2026	512	505	505
query80	1145	431	417	417
query81	521	219	218	218
query82	652	89	90	89
query83	242	183	166	166
query84	248	84	85	84
query85	1935	276	356	276
query86	490	301	299	299
query87	3272	3123	3227	3123
query88	4102	2421	2422	2421
query89	485	389	392	389
query90	1992	184	188	184
query91	122	96	101	96
query92	59	51	48	48
query93	2258	509	495	495
query94	1275	180	184	180
query95	410	312	311	311
query96	585	267	266	266
query97	3174	3035	3009	3009
query98	246	216	224	216
query99	1181	861	870	861
Total cold run time: 265490 ms
Total hot run time: 172806 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 30.62 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit f1a9bae1e2e0d6538b926d27c67bd221e4cc8353, data reload: false

query1	0.05	0.03	0.03
query2	0.08	0.04	0.04
query3	0.24	0.05	0.05
query4	1.67	0.06	0.06
query5	0.51	0.50	0.50
query6	1.13	0.71	0.72
query7	0.02	0.02	0.01
query8	0.05	0.04	0.04
query9	0.53	0.47	0.49
query10	0.55	0.57	0.54
query11	0.16	0.12	0.11
query12	0.14	0.12	0.12
query13	0.60	0.58	0.59
query14	0.79	0.77	0.77
query15	0.83	0.81	0.81
query16	0.34	0.37	0.38
query17	0.98	1.03	1.01
query18	0.22	0.26	0.23
query19	1.76	1.69	1.76
query20	0.02	0.01	0.01
query21	15.43	0.71	0.68
query22	4.38	7.12	1.95
query23	18.27	1.49	1.31
query24	2.03	0.23	0.21
query25	0.16	0.09	0.08
query26	0.28	0.16	0.17
query27	0.07	0.07	0.08
query28	13.26	1.02	1.00
query29	13.24	3.35	3.31
query30	0.24	0.05	0.05
query31	2.89	0.38	0.39
query32	3.31	0.46	0.46
query33	2.90	2.82	2.95
query34	16.96	4.42	4.41
query35	4.48	4.52	4.57
query36	0.69	0.46	0.46
query37	0.18	0.15	0.16
query38	0.15	0.15	0.14
query39	0.05	0.03	0.03
query40	0.17	0.14	0.15
query41	0.09	0.05	0.05
query42	0.06	0.05	0.05
query43	0.04	0.04	0.04
Total cold run time: 110 s
Total hot run time: 30.62 s

Copy link
Member

@mrhhsg mrhhsg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label May 28, 2024
@github-actions
Copy link
Contributor

PR approved by at least one committer and no changes requested.

@github-actions
Copy link
Contributor

PR approved by anyone and no changes requested.

@Gabriel39 Gabriel39 merged commit 78a2ee2 into apache:master May 28, 2024
dataroaring pushed a commit that referenced this pull request May 28, 2024
#35454)

…d data distribution

This is a follow-up for #34122 .
Currently, we use bucket shuffle local exchange to re-distribution data
before a 'colocated' operator. But if no colocate/bucket-shuffle join
followed, bucket-shuffle for this operator is not always suitable
because the parallism will be restricted by the account of buckets
Gabriel39 added a commit to Gabriel39/incubator-doris that referenced this pull request Aug 28, 2024
apache#35454)

…d data distribution

This is a follow-up for apache#34122 .
Currently, we use bucket shuffle local exchange to re-distribution data
before a 'colocated' operator. But if no colocate/bucket-shuffle join
followed, bucket-shuffle for this operator is not always suitable
because the parallism will be restricted by the account of buckets
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. dev/3.0.0-merged reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants