Skip to content

Conversation

@zhangstar333
Copy link
Contributor

@zhangstar333 zhangstar333 commented Feb 6, 2024

Proposed changes

this shuffle control by session variables: enable_strict_consistency_dml, and default value is false.
Co-authored-by : morrySnow @morrySnow

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

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

}

template <typename Channels>
Status VDataStreamSender::channel_add_rows_with_idx(
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: function 'channel_add_rows_with_idx' has cognitive complexity of 52 (threshold 50) [readability-function-cognitive-complexity]

Status VDataStreamSender::channel_add_rows_with_idx(
                          ^
Additional context

be/src/vec/sink/vdata_stream_sender.h:435: +1, including nesting penalty of 0, nesting level increased to 1

    for (int i = 0; i < num_channels; ++i) {
    ^

be/src/vec/sink/vdata_stream_sender.h:436: +2, including nesting penalty of 1, nesting level increased to 2

        if (!channels[i]->is_receiver_eof() && !channel2rows[i].empty()) {
        ^

be/src/vec/sink/vdata_stream_sender.h:436: +1

        if (!channels[i]->is_receiver_eof() && !channel2rows[i].empty()) {
                                            ^

be/src/vec/sink/vdata_stream_sender.h:438: +3, including nesting penalty of 2, nesting level increased to 3

            HANDLE_CHANNEL_STATUS(state, channels[i], status);
            ^

be/src/vec/sink/vdata_stream_sender.h:407: expanded from macro 'HANDLE_CHANNEL_STATUS'

    do {                                                 \
    ^

be/src/vec/sink/vdata_stream_sender.h:438: +4, including nesting penalty of 3, nesting level increased to 4

            HANDLE_CHANNEL_STATUS(state, channels[i], status);
            ^

be/src/vec/sink/vdata_stream_sender.h:408: expanded from macro 'HANDLE_CHANNEL_STATUS'

        if (status.is<ErrorCode::END_OF_FILE>()) {       \
        ^

be/src/vec/sink/vdata_stream_sender.h:438: +1, nesting level increased to 4

            HANDLE_CHANNEL_STATUS(state, channels[i], status);
            ^

be/src/vec/sink/vdata_stream_sender.h:410: expanded from macro 'HANDLE_CHANNEL_STATUS'

        } else {                                         \
          ^

be/src/vec/sink/vdata_stream_sender.h:438: +5, including nesting penalty of 4, nesting level increased to 5

            HANDLE_CHANNEL_STATUS(state, channels[i], status);
            ^

be/src/vec/sink/vdata_stream_sender.h:411: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.h:438: +6, including nesting penalty of 5, nesting level increased to 6

            HANDLE_CHANNEL_STATUS(state, channels[i], status);
            ^

be/src/vec/sink/vdata_stream_sender.h:411: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.h:442: +1, including nesting penalty of 0, nesting level increased to 1

    if (eos) {
    ^

be/src/vec/sink/vdata_stream_sender.h:443: +2, including nesting penalty of 1, nesting level increased to 2

        for (int i = 0; i < num_channels; ++i) {
        ^

be/src/vec/sink/vdata_stream_sender.h:444: +3, including nesting penalty of 2, nesting level increased to 3

            if (!channels[i]->is_receiver_eof()) {
            ^

be/src/vec/sink/vdata_stream_sender.h:446: +4, including nesting penalty of 3, nesting level increased to 4

                HANDLE_CHANNEL_STATUS(state, channels[i], status);
                ^

be/src/vec/sink/vdata_stream_sender.h:407: expanded from macro 'HANDLE_CHANNEL_STATUS'

    do {                                                 \
    ^

be/src/vec/sink/vdata_stream_sender.h:446: +5, including nesting penalty of 4, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, channels[i], status);
                ^

be/src/vec/sink/vdata_stream_sender.h:408: expanded from macro 'HANDLE_CHANNEL_STATUS'

        if (status.is<ErrorCode::END_OF_FILE>()) {       \
        ^

be/src/vec/sink/vdata_stream_sender.h:446: +1, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, channels[i], status);
                ^

be/src/vec/sink/vdata_stream_sender.h:410: expanded from macro 'HANDLE_CHANNEL_STATUS'

        } else {                                         \
          ^

be/src/vec/sink/vdata_stream_sender.h:446: +6, including nesting penalty of 5, nesting level increased to 6

                HANDLE_CHANNEL_STATUS(state, channels[i], status);
                ^

be/src/vec/sink/vdata_stream_sender.h:411: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.h:446: +7, including nesting penalty of 6, nesting level increased to 7

                HANDLE_CHANNEL_STATUS(state, channels[i], status);
                ^

be/src/vec/sink/vdata_stream_sender.h:411: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

}

template <typename Channels>
Status VDataStreamSender::channel_add_rows_with_idx(
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: function 'channel_add_rows_with_idx' has cognitive complexity of 52 (threshold 50) [readability-function-cognitive-complexity]

Status VDataStreamSender::channel_add_rows_with_idx(
                          ^
Additional context

be/src/vec/sink/vdata_stream_sender.h:436: +1, including nesting penalty of 0, nesting level increased to 1

    for (int i = 0; i < num_channels; ++i) {
    ^

be/src/vec/sink/vdata_stream_sender.h:437: +2, including nesting penalty of 1, nesting level increased to 2

        if (!channels[i]->is_receiver_eof() && !channel2rows[i].empty()) {
        ^

be/src/vec/sink/vdata_stream_sender.h:437: +1

        if (!channels[i]->is_receiver_eof() && !channel2rows[i].empty()) {
                                            ^

be/src/vec/sink/vdata_stream_sender.h:439: +3, including nesting penalty of 2, nesting level increased to 3

            HANDLE_CHANNEL_STATUS(state, channels[i], status);
            ^

be/src/vec/sink/vdata_stream_sender.h:408: expanded from macro 'HANDLE_CHANNEL_STATUS'

    do {                                                 \
    ^

be/src/vec/sink/vdata_stream_sender.h:439: +4, including nesting penalty of 3, nesting level increased to 4

            HANDLE_CHANNEL_STATUS(state, channels[i], status);
            ^

be/src/vec/sink/vdata_stream_sender.h:409: expanded from macro 'HANDLE_CHANNEL_STATUS'

        if (status.is<ErrorCode::END_OF_FILE>()) {       \
        ^

be/src/vec/sink/vdata_stream_sender.h:439: +1, nesting level increased to 4

            HANDLE_CHANNEL_STATUS(state, channels[i], status);
            ^

be/src/vec/sink/vdata_stream_sender.h:411: expanded from macro 'HANDLE_CHANNEL_STATUS'

        } else {                                         \
          ^

be/src/vec/sink/vdata_stream_sender.h:439: +5, including nesting penalty of 4, nesting level increased to 5

            HANDLE_CHANNEL_STATUS(state, channels[i], status);
            ^

be/src/vec/sink/vdata_stream_sender.h:412: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.h:439: +6, including nesting penalty of 5, nesting level increased to 6

            HANDLE_CHANNEL_STATUS(state, channels[i], status);
            ^

be/src/vec/sink/vdata_stream_sender.h:412: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.h:443: +1, including nesting penalty of 0, nesting level increased to 1

    if (eos) {
    ^

be/src/vec/sink/vdata_stream_sender.h:444: +2, including nesting penalty of 1, nesting level increased to 2

        for (int i = 0; i < num_channels; ++i) {
        ^

be/src/vec/sink/vdata_stream_sender.h:445: +3, including nesting penalty of 2, nesting level increased to 3

            if (!channels[i]->is_receiver_eof()) {
            ^

be/src/vec/sink/vdata_stream_sender.h:447: +4, including nesting penalty of 3, nesting level increased to 4

                HANDLE_CHANNEL_STATUS(state, channels[i], status);
                ^

be/src/vec/sink/vdata_stream_sender.h:408: expanded from macro 'HANDLE_CHANNEL_STATUS'

    do {                                                 \
    ^

be/src/vec/sink/vdata_stream_sender.h:447: +5, including nesting penalty of 4, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, channels[i], status);
                ^

be/src/vec/sink/vdata_stream_sender.h:409: expanded from macro 'HANDLE_CHANNEL_STATUS'

        if (status.is<ErrorCode::END_OF_FILE>()) {       \
        ^

be/src/vec/sink/vdata_stream_sender.h:447: +1, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, channels[i], status);
                ^

be/src/vec/sink/vdata_stream_sender.h:411: expanded from macro 'HANDLE_CHANNEL_STATUS'

        } else {                                         \
          ^

be/src/vec/sink/vdata_stream_sender.h:447: +6, including nesting penalty of 5, nesting level increased to 6

                HANDLE_CHANNEL_STATUS(state, channels[i], status);
                ^

be/src/vec/sink/vdata_stream_sender.h:412: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.h:447: +7, including nesting penalty of 6, nesting level increased to 7

                HANDLE_CHANNEL_STATUS(state, channels[i], status);
                ^

be/src/vec/sink/vdata_stream_sender.h:412: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

@zhangstar333 zhangstar333 force-pushed the partition_tablet_shuffle branch from 2827800 to cf88168 Compare February 20, 2024 02:52
@zhangstar333
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.76% (8556/23928)
Line Coverage: 27.70% (69392/250472)
Region Coverage: 26.83% (36013/134244)
Branch Coverage: 23.64% (18415/77914)
Coverage Report: http://coverage.selectdb-in.cc/coverage/cf881686c552a2fb5246cf267bda134fc301e026_cf881686c552a2fb5246cf267bda134fc301e026/report/index.html

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17687	4896	4798	4798
q2	2031	139	132	132
q3	10587	1002	986	986
q4	4653	963	961	961
q5	7876	3236	3268	3236
q6	200	134	131	131
q7	1248	772	763	763
q8	9342	2108	2097	2097
q9	7681	6755	6749	6749
q10	8342	2665	2668	2665
q11	838	223	218	218
q12	935	321	334	321
q13	18031	3737	3708	3708
q14	294	259	266	259
q15	598	513	558	513
q16	480	420	424	420
q17	939	882	873	873
q18	7483	6716	6766	6716
q19	1574	1510	1527	1510
q20	570	357	342	342
q21	6710	4117	4150	4117
q22	899	387	389	387
Total cold run time: 108998 ms
Total hot run time: 41902 ms

----- Round 2, with runtime_filter_mode=off -----
q1	5372	5509	5224	5224
q2	293	184	183	183
q3	3621	3645	3671	3645
q4	2556	2548	2519	2519
q5	5821	5789	5724	5724
q6	213	121	123	121
q7	2241	1626	1637	1626
q8	2986	3069	3095	3069
q9	8715	8666	8674	8666
q10	6749	4215	4296	4215
q11	504	393	382	382
q12	754	527	541	527
q13	4418	3382	3423	3382
q14	267	240	239	239
q15	607	501	503	501
q16	474	441	426	426
q17	1646	1594	1951	1594
q18	8346	7729	7530	7530
q19	1641	1645	1648	1645
q20	2113	1827	1821	1821
q21	6560	6193	6131	6131
q22	571	494	512	494
Total cold run time: 66468 ms
Total hot run time: 59664 ms

@doris-robot
Copy link

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

query1	914	342	348	342
query2	6540	1732	1709	1709
query3	6699	202	199	199
query4	23116	21066	21002	21002
query5	4315	454	442	442
query6	257	166	163	163
query7	4619	283	284	283
query8	252	189	195	189
query9	8427	2815	2797	2797
query10	407	220	213	213
query11	15013	14442	14406	14406
query12	144	82	82	82
query13	1700	423	427	423
query14	9014	7507	7483	7483
query15	218	183	183	183
query16	7452	258	248	248
query17	1403	558	530	530
query18	1954	269	260	260
query19	188	143	145	143
query20	87	81	81	81
query21	185	124	122	122
query22	4888	4793	4903	4793
query23	32499	31424	31627	31424
query24	12669	3407	3396	3396
query25	633	359	355	355
query26	1882	150	157	150
query27	3054	308	310	308
query28	6718	1836	1817	1817
query29	1129	608	600	600
query30	279	135	145	135
query31	949	747	741	741
query32	98	64	57	57
query33	730	233	230	230
query34	1057	490	498	490
query35	925	829	816	816
query36	981	920	877	877
query37	170	60	59	59
query38	3281	3208	3218	3208
query39	1370	1315	1297	1297
query40	288	104	106	104
query41	35	34	34	34
query42	104	97	96	96
query43	459	428	444	428
query44	1056	692	704	692
query45	196	179	176	176
query46	1048	768	742	742
query47	1657	1611	1531	1531
query48	415	354	337	337
query49	1206	298	290	290
query50	774	379	380	379
query51	5332	5257	5177	5177
query52	104	89	93	89
query53	397	292	298	292
query54	290	211	224	211
query55	87	79	82	79
query56	212	191	187	187
query57	1076	983	912	912
query58	216	204	193	193
query59	2199	2174	2154	2154
query60	249	217	222	217
query61	83	83	87	83
query62	574	379	364	364
query63	328	280	276	276
query64	6438	3011	3097	3011
query65	3288	3241	3244	3241
query66	1323	324	315	315
query67	14673	14450	14572	14450
query68	5118	547	542	542
query69	502	349	355	349
query70	1266	1203	1247	1203
query71	423	245	249	245
query72	6278	2808	2580	2580
query73	693	312	319	312
query74	6913	6444	6415	6415
query75	3195	2532	2539	2532
query76	3246	1132	1184	1132
query77	364	241	226	226
query78	9409	8825	8794	8794
query79	973	501	495	495
query80	504	347	333	333
query81	433	202	198	198
query82	157	80	84	80
query83	143	122	117	117
query84	224	77	76	76
query85	1031	324	333	324
query86	297	305	302	302
query87	3506	3257	3266	3257
query88	2701	2282	2273	2273
query89	433	356	346	346
query90	1900	162	165	162
query91	151	125	128	125
query92	56	46	47	46
query93	994	489	505	489
query94	1105	179	173	173
query95	8555	370	8226	370
query96	569	271	267	267
query97	4429	4275	4294	4275
query98	211	197	193	193
query99	1075	734	758	734
Total cold run time: 277177 ms
Total hot run time: 177078 ms

@doris-robot
Copy link

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

query1	0.03	0.02	0.02
query2	0.06	0.02	0.02
query3	0.23	0.07	0.07
query4	1.68	0.09	0.08
query5	0.48	0.48	0.47
query6	1.33	0.59	0.62
query7	0.02	0.01	0.01
query8	0.04	0.02	0.03
query9	0.51	0.46	0.45
query10	0.48	0.49	0.48
query11	0.12	0.10	0.09
query12	0.12	0.10	0.10
query13	0.58	0.58	0.59
query14	0.76	0.78	0.77
query15	0.81	0.79	0.79
query16	0.32	0.34	0.33
query17	0.88	0.87	0.89
query18	0.18	0.17	0.16
query19	1.78	1.61	1.69
query20	0.02	0.01	0.01
query21	15.40	0.64	0.58
query22	2.63	3.77	2.08
query23	17.50	1.00	1.07
query24	2.00	0.44	0.16
query25	0.60	0.07	0.05
query26	0.16	0.14	0.12
query27	0.05	0.05	0.06
query28	12.42	0.80	0.83
query29	12.50	3.40	3.29
query30	0.51	0.49	0.47
query31	2.78	0.36	0.37
query32	3.34	0.47	0.48
query33	3.09	3.17	3.11
query34	15.36	4.48	4.49
query35	4.48	4.52	4.51
query36	1.06	0.94	0.94
query37	0.07	0.05	0.05
query38	0.04	0.02	0.02
query39	0.02	0.02	0.01
query40	0.17	0.15	0.15
query41	0.07	0.02	0.01
query42	0.03	0.01	0.02
query43	0.02	0.02	0.01
Total cold run time: 104.73 s
Total hot run time: 30.25 s

@doris-robot
Copy link

Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'

Load test result on commit cf881686c552a2fb5246cf267bda134fc301e026 with default session variables
Stream load json:         19 seconds loaded 2358488459 Bytes, about 118 MB/s
Stream load orc:          58 seconds loaded 1101869774 Bytes, about 18 MB/s
Stream load parquet:      31 seconds loaded 861443392 Bytes, about 26 MB/s
Insert into select:       13.7 seconds inserted 10000000 Rows, about 729K ops/s

@zhangstar333
Copy link
Contributor Author

run buildall

@zhangstar333
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.76% (8558/23931)
Line Coverage: 27.71% (69416/250537)
Region Coverage: 26.83% (36017/134263)
Branch Coverage: 23.64% (18422/77934)
Coverage Report: http://coverage.selectdb-in.cc/coverage/ddcdb28b8f6a45db24f70f84f00ec26eb411576e_ddcdb28b8f6a45db24f70f84f00ec26eb411576e/report/index.html

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	18852	5044	4945	4945
q2	2040	141	134	134
q3	11104	1087	1080	1080
q4	4767	1005	1022	1005
q5	7837	3383	3408	3383
q6	209	144	145	144
q7	1288	818	824	818
q8	9706	2132	2116	2116
q9	9279	6788	6738	6738
q10	8295	2652	2618	2618
q11	408	229	203	203
q12	755	331	332	331
q13	18171	3694	3690	3690
q14	289	267	264	264
q15	589	503	506	503
q16	480	430	405	405
q17	925	881	893	881
q18	7489	6525	6616	6525
q19	1570	1508	1495	1495
q20	654	371	343	343
q21	6779	3977	3974	3974
q22	875	353	328	328
Total cold run time: 112361 ms
Total hot run time: 41923 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4853	4851	4819	4819
q2	294	190	191	190
q3	3607	3586	3591	3586
q4	2529	2542	2532	2532
q5	5761	5759	5727	5727
q6	215	126	124	124
q7	2251	1685	1673	1673
q8	3061	3089	3128	3089
q9	8724	8711	8720	8711
q10	6794	4253	4246	4246
q11	528	378	379	378
q12	785	546	557	546
q13	4314	3404	3438	3404
q14	281	240	238	238
q15	590	499	494	494
q16	479	435	441	435
q17	1692	1615	1613	1613
q18	8425	7683	7845	7683
q19	1654	1663	1662	1662
q20	2160	1847	1841	1841
q21	6602	6273	6168	6168
q22	592	498	514	498
Total cold run time: 66191 ms
Total hot run time: 59657 ms

@doris-robot
Copy link

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

query1	923	348	351	348
query2	6528	1673	1702	1673
query3	6692	206	203	203
query4	23220	21155	21141	21141
query5	4242	374	452	374
query6	260	182	184	182
query7	4601	293	306	293
query8	243	192	200	192
query9	8405	2874	2902	2874
query10	405	227	226	226
query11	15123	14612	14512	14512
query12	141	84	86	84
query13	1698	423	425	423
query14	9097	7696	7690	7690
query15	212	188	190	188
query16	7449	253	249	249
query17	1412	562	544	544
query18	1958	267	267	267
query19	199	153	146	146
query20	86	90	87	87
query21	191	127	123	123
query22	4904	4734	4717	4717
query23	32588	31684	31683	31683
query24	12754	3435	3386	3386
query25	645	367	357	357
query26	1881	157	164	157
query27	3045	306	312	306
query28	6662	1865	1842	1842
query29	1096	614	622	614
query30	281	136	142	136
query31	933	740	752	740
query32	95	55	58	55
query33	731	240	236	236
query34	1066	497	495	495
query35	922	836	823	823
query36	1002	868	880	868
query37	173	63	66	63
query38	3281	3175	3167	3167
query39	1391	1332	1325	1325
query40	288	110	109	109
query41	37	35	35	35
query42	109	100	103	100
query43	465	438	455	438
query44	1071	702	706	702
query45	200	188	177	177
query46	1030	776	739	739
query47	1612	1524	1596	1524
query48	410	342	346	342
query49	1243	304	303	303
query50	781	394	381	381
query51	5313	5148	5167	5148
query52	105	98	95	95
query53	393	300	299	299
query54	296	224	224	224
query55	83	80	80	80
query56	232	202	198	198
query57	1105	941	937	937
query58	210	191	200	191
query59	2330	2126	2128	2126
query60	253	213	230	213
query61	83	80	81	80
query62	606	376	387	376
query63	321	287	282	282
query64	6398	3066	3139	3066
query65	3285	3269	3253	3253
query66	1365	332	325	325
query67	14386	14213	14246	14213
query68	5022	606	561	561
query69	487	362	351	351
query70	1207	1239	1218	1218
query71	339	252	262	252
query72	6267	2771	2617	2617
query73	695	317	321	317
query74	6898	6487	6447	6447
query75	3167	2560	2532	2532
query76	3081	1107	1208	1107
query77	356	239	238	238
query78	9356	8841	8747	8747
query79	976	493	496	493
query80	625	364	358	358
query81	449	206	202	202
query82	164	90	85	85
query83	209	125	122	122
query84	230	78	83	78
query85	1085	333	333	333
query86	304	310	311	310
query87	3498	3290	3315	3290
query88	2744	2272	2270	2270
query89	444	367	374	367
query90	2054	164	173	164
query91	152	128	127	127
query92	59	48	47	47
query93	1014	492	523	492
query94	1168	178	185	178
query95	487	8671	8397	8397
query96	579	271	262	262
query97	4453	4266	4281	4266
query98	227	204	191	191
query99	1096	701	708	701
Total cold run time: 269437 ms
Total hot run time: 185865 ms

@doris-robot
Copy link

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

query1	0.03	0.03	0.02
query2	0.07	0.03	0.03
query3	0.23	0.07	0.07
query4	1.65	0.09	0.10
query5	0.50	0.49	0.48
query6	1.41	0.61	0.61
query7	0.02	0.01	0.01
query8	0.04	0.02	0.02
query9	0.53	0.47	0.45
query10	0.50	0.49	0.49
query11	0.12	0.10	0.09
query12	0.11	0.10	0.10
query13	0.59	0.60	0.58
query14	0.76	0.79	0.79
query15	0.82	0.80	0.81
query16	0.33	0.33	0.34
query17	0.88	0.89	0.91
query18	0.20	0.18	0.17
query19	1.81	1.66	1.66
query20	0.01	0.01	0.01
query21	15.41	0.63	0.60
query22	3.27	4.00	2.74
query23	17.68	1.01	1.04
query24	2.00	0.24	0.50
query25	0.65	0.06	0.06
query26	0.16	0.13	0.14
query27	0.06	0.05	0.05
query28	12.18	0.83	0.81
query29	12.50	3.40	3.40
query30	0.52	0.50	0.48
query31	2.77	0.36	0.36
query32	3.34	0.47	0.47
query33	3.13	3.12	3.14
query34	15.34	4.53	4.54
query35	4.50	4.50	4.51
query36	1.08	0.95	0.95
query37	0.08	0.05	0.05
query38	0.04	0.03	0.03
query39	0.02	0.02	0.02
query40	0.16	0.14	0.15
query41	0.07	0.02	0.01
query42	0.02	0.01	0.02
query43	0.03	0.02	0.02
Total cold run time: 105.62 s
Total hot run time: 31.42 s

@doris-robot
Copy link

Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'

Load test result on commit ddcdb28b8f6a45db24f70f84f00ec26eb411576e with default session variables
Stream load json:         19 seconds loaded 2358488459 Bytes, about 118 MB/s
Stream load orc:          59 seconds loaded 1101869774 Bytes, about 17 MB/s
Stream load parquet:      32 seconds loaded 861443392 Bytes, about 25 MB/s
Insert into select:       13.3 seconds inserted 10000000 Rows, about 751K ops/s

@zhangstar333
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17638	4965	4834	4834
q2	2041	141	134	134
q3	10587	1037	998	998
q4	4722	969	994	969
q5	7720	3268	3285	3268
q6	190	131	126	126
q7	1244	786	771	771
q8	9390	2098	2082	2082
q9	7698	6761	6698	6698
q10	8369	2642	2646	2642
q11	417	206	211	206
q12	773	324	329	324
q13	18027	3664	3678	3664
q14	291	263	269	263
q15	584	519	527	519
q16	537	408	435	408
q17	947	887	864	864
q18	7463	6688	6699	6688
q19	1548	1498	1498	1498
q20	562	353	338	338
q21	6126	4007	3960	3960
q22	867	350	338	338
Total cold run time: 107741 ms
Total hot run time: 41592 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4811	4821	4827	4821
q2	301	187	204	187
q3	3617	3597	3579	3579
q4	2537	2537	2525	2525
q5	5768	5745	5754	5745
q6	212	129	124	124
q7	2224	1683	1687	1683
q8	3045	3109	3108	3108
q9	8692	8734	8634	8634
q10	6877	4236	4252	4236
q11	520	398	407	398
q12	770	539	538	538
q13	4194	3416	3427	3416
q14	269	248	248	248
q15	625	528	487	487
q16	484	428	452	428
q17	1679	1607	1606	1606
q18	8262	7753	7600	7600
q19	1647	1644	1640	1640
q20	2111	1832	1812	1812
q21	6622	6183	6159	6159
q22	582	516	518	516
Total cold run time: 65849 ms
Total hot run time: 59490 ms

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.71% (8557/23963)
Line Coverage: 27.59% (69420/251652)
Region Coverage: 26.73% (36028/134784)
Branch Coverage: 23.55% (18426/78258)
Coverage Report: http://coverage.selectdb-in.cc/coverage/4f068489404938574499c98e55290317133c861a_4f068489404938574499c98e55290317133c861a/report/index.html

@zhangstar333
Copy link
Contributor Author

run buildall

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

return Status::OK();
}

Status VDataStreamSender::send(RuntimeState* state, Block* block, bool eos) {
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: function 'send' has cognitive complexity of 184 (threshold 50) [readability-function-cognitive-complexity]

Status VDataStreamSender::send(RuntimeState* state, Block* block, bool eos) {
                          ^
Additional context

be/src/vec/sink/vdata_stream_sender.cpp:574: +1, including nesting penalty of 0, nesting level increased to 1

    if (all_receiver_eof) {
    ^

be/src/vec/sink/vdata_stream_sender.cpp:578: +1, including nesting penalty of 0, nesting level increased to 1

    if (_part_type == TPartitionType::UNPARTITIONED || _channels.size() == 1) {
    ^

be/src/vec/sink/vdata_stream_sender.cpp:582: +2, including nesting penalty of 1, nesting level increased to 2

        if (_only_local_exchange) {
        ^

be/src/vec/sink/vdata_stream_sender.cpp:583: +3, including nesting penalty of 2, nesting level increased to 3

            if (!block->empty()) {
            ^

be/src/vec/sink/vdata_stream_sender.cpp:592: +1, nesting level increased to 2

        } else if (_enable_pipeline_exec) {
               ^

be/src/vec/sink/vdata_stream_sender.cpp:594: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(_get_next_available_buffer(&block_holder));
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:594: +4, including nesting penalty of 3, nesting level increased to 4

            RETURN_IF_ERROR(_get_next_available_buffer(&block_holder));
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:598: +3, including nesting penalty of 2, nesting level increased to 3

                RETURN_IF_ERROR(_serializer.next_serialized_block(
                ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:598: +4, including nesting penalty of 3, nesting level increased to 4

                RETURN_IF_ERROR(_serializer.next_serialized_block(
                ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:600: +3, including nesting penalty of 2, nesting level increased to 3

                if (serialized) {
                ^

be/src/vec/sink/vdata_stream_sender.cpp:602: +4, including nesting penalty of 3, nesting level increased to 4

                    if (!cur_block.empty()) {
                    ^

be/src/vec/sink/vdata_stream_sender.cpp:603: +5, including nesting penalty of 4, nesting level increased to 5

                        RETURN_IF_ERROR(_serializer.serialize_block(
                        ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:603: +6, including nesting penalty of 5, nesting level increased to 6

                        RETURN_IF_ERROR(_serializer.serialize_block(
                        ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:605: +1, nesting level increased to 4

                    } else {
                      ^

be/src/vec/sink/vdata_stream_sender.cpp:624: +1, nesting level increased to 2

        } else {
          ^

be/src/vec/sink/vdata_stream_sender.cpp:627: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(_serializer.next_serialized_block(
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:627: +4, including nesting penalty of 3, nesting level increased to 4

            RETURN_IF_ERROR(_serializer.next_serialized_block(
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:629: +3, including nesting penalty of 2, nesting level increased to 3

            if (serialized) {
            ^

be/src/vec/sink/vdata_stream_sender.cpp:631: +4, including nesting penalty of 3, nesting level increased to 4

                if (!cur_block.empty()) {
                ^

be/src/vec/sink/vdata_stream_sender.cpp:632: +5, including nesting penalty of 4, nesting level increased to 5

                    RETURN_IF_ERROR(_serializer.serialize_block(&cur_block, _cur_pb_block,
                    ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:632: +6, including nesting penalty of 5, nesting level increased to 6

                    RETURN_IF_ERROR(_serializer.serialize_block(&cur_block, _cur_pb_block,
                    ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:652: +1, nesting level increased to 1

    } else if (_part_type == TPartitionType::RANDOM) {
           ^

be/src/vec/sink/vdata_stream_sender.cpp:655: +2, including nesting penalty of 1, nesting level increased to 2

        if (!current_channel->is_receiver_eof()) {
        ^

be/src/vec/sink/vdata_stream_sender.cpp:657: +3, including nesting penalty of 2, nesting level increased to 3

            if (current_channel->is_local()) {
            ^

be/src/vec/sink/vdata_stream_sender.cpp:659: +4, including nesting penalty of 3, nesting level increased to 4

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:419: expanded from macro 'HANDLE_CHANNEL_STATUS'

    do {                                                 \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:659: +5, including nesting penalty of 4, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:420: expanded from macro 'HANDLE_CHANNEL_STATUS'

        if (status.is<ErrorCode::END_OF_FILE>()) {       \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:659: +1, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:422: expanded from macro 'HANDLE_CHANNEL_STATUS'

        } else {                                         \
          ^

be/src/vec/sink/vdata_stream_sender.cpp:659: +6, including nesting penalty of 5, nesting level increased to 6

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:423: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:659: +7, including nesting penalty of 6, nesting level increased to 7

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:423: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:660: +1, nesting level increased to 3

            } else {
              ^

be/src/vec/sink/vdata_stream_sender.cpp:662: +4, including nesting penalty of 3, nesting level increased to 4

                RETURN_IF_ERROR(
                ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:662: +5, including nesting penalty of 4, nesting level increased to 5

                RETURN_IF_ERROR(
                ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:666: +4, including nesting penalty of 3, nesting level increased to 4

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:419: expanded from macro 'HANDLE_CHANNEL_STATUS'

    do {                                                 \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:666: +5, including nesting penalty of 4, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:420: expanded from macro 'HANDLE_CHANNEL_STATUS'

        if (status.is<ErrorCode::END_OF_FILE>()) {       \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:666: +1, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:422: expanded from macro 'HANDLE_CHANNEL_STATUS'

        } else {                                         \
          ^

be/src/vec/sink/vdata_stream_sender.cpp:666: +6, including nesting penalty of 5, nesting level increased to 6

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:423: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:666: +7, including nesting penalty of 6, nesting level increased to 7

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:423: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:671: +1, nesting level increased to 1

    } else if (_part_type == TPartitionType::HASH_PARTITIONED ||
           ^

be/src/vec/sink/vdata_stream_sender.cpp:676: +2, including nesting penalty of 1, nesting level increased to 2

            RETURN_IF_ERROR(_partitioner->do_partitioning(state, block, _mem_tracker.get()));
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:676: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(_partitioner->do_partitioning(state, block, _mem_tracker.get()));
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:678: +2, including nesting penalty of 1, nesting level increased to 2

        if (_part_type == TPartitionType::HASH_PARTITIONED) {
        ^

be/src/vec/sink/vdata_stream_sender.cpp:679: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(channel_add_rows(state, _channels, _partition_count,
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:679: +4, including nesting penalty of 3, nesting level increased to 4

            RETURN_IF_ERROR(channel_add_rows(state, _channels, _partition_count,
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:682: +1, nesting level increased to 2

        } else {
          ^

be/src/vec/sink/vdata_stream_sender.cpp:683: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(channel_add_rows(state, _channel_shared_ptrs, _partition_count,
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:683: +4, including nesting penalty of 3, nesting level increased to 4

            RETURN_IF_ERROR(channel_add_rows(state, _channel_shared_ptrs, _partition_count,
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:687: +1, nesting level increased to 1

    } else if (_part_type == TPartitionType::TABLET_SINK_SHUFFLE_PARTITIONED) {
           ^

be/src/vec/sink/vdata_stream_sender.cpp:689: +2, including nesting penalty of 1, nesting level increased to 2

        RETURN_IF_ERROR(_send_new_partition_batch());
        ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:689: +3, including nesting penalty of 2, nesting level increased to 3

        RETURN_IF_ERROR(_send_new_partition_batch());
        ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:690: +2, including nesting penalty of 1, nesting level increased to 2

        if (UNLIKELY(block->rows() == 0)) {
        ^

be/src/vec/sink/vdata_stream_sender.cpp:697: +2, including nesting penalty of 1, nesting level increased to 2

        RETURN_IF_ERROR(_row_distribution.generate_rows_distribution(
        ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:697: +3, including nesting penalty of 2, nesting level increased to 3

        RETURN_IF_ERROR(_row_distribution.generate_rows_distribution(
        ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:706: +2, including nesting penalty of 1, nesting level increased to 2

        for (int idx = 0; idx < row_ids.size(); ++idx) {
        ^

be/src/vec/sink/vdata_stream_sender.cpp:712: +2, including nesting penalty of 1, nesting level increased to 2

        RETURN_IF_ERROR(channel_add_rows_with_idx(state, _channels, num_channels, channel2rows,
        ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:712: +3, including nesting penalty of 2, nesting level increased to 3

        RETURN_IF_ERROR(channel_add_rows_with_idx(state, _channels, num_channels, channel2rows,
        ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:715: +2, including nesting penalty of 1, nesting level increased to 2

        if (eos) {
        ^

be/src/vec/sink/vdata_stream_sender.cpp:717: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(_send_new_partition_batch());
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/vec/sink/vdata_stream_sender.cpp:717: +4, including nesting penalty of 3, nesting level increased to 4

            RETURN_IF_ERROR(_send_new_partition_batch());
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/vec/sink/vdata_stream_sender.cpp:719: +1, nesting level increased to 1

    } else {
      ^

be/src/vec/sink/vdata_stream_sender.cpp:728: +1, including nesting penalty of 0, nesting level increased to 1

    if (eos && _enable_pipeline_exec) {
    ^

be/src/vec/sink/vdata_stream_sender.cpp:728: +1

    if (eos && _enable_pipeline_exec) {
            ^

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.69% (8543/23934)
Line Coverage: 27.50% (69312/252008)
Region Coverage: 26.66% (35955/134855)
Branch Coverage: 23.48% (18384/78308)
Coverage Report: http://coverage.selectdb-in.cc/coverage/0a2bd0856da911c9e12ad93e417241b920550822_0a2bd0856da911c9e12ad93e417241b920550822/report/index.html

@zhangstar333
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17651	5187	5013	5013
q2	2043	154	133	133
q3	10563	1000	1011	1000
q4	4657	978	997	978
q5	7593	3181	3249	3181
q6	198	144	138	138
q7	1268	787	790	787
q8	9246	2105	2067	2067
q9	7488	6639	6613	6613
q10	8319	2657	2651	2651
q11	416	206	220	206
q12	819	332	339	332
q13	17940	3613	3651	3613
q14	295	262	259	259
q15	625	507	533	507
q16	485	411	417	411
q17	936	867	852	852
q18	7587	6718	6655	6655
q19	1554	1502	1497	1497
q20	556	280	280	280
q21	6794	4002	4015	4002
q22	861	337	338	337
Total cold run time: 107894 ms
Total hot run time: 41512 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4963	4994	5036	4994
q2	298	194	198	194
q3	3662	3647	3620	3620
q4	2597	2616	2628	2616
q5	5819	5784	5807	5784
q6	214	133	130	130
q7	2310	1730	1713	1713
q8	3047	3113	3124	3113
q9	8804	8749	8773	8749
q10	6843	4275	4274	4274
q11	590	432	418	418
q12	797	550	551	550
q13	4440	3413	3464	3413
q14	260	257	234	234
q15	606	549	515	515
q16	489	438	462	438
q17	1755	1679	1663	1663
q18	8452	7655	7759	7655
q19	1635	1645	1633	1633
q20	2130	1842	1857	1842
q21	6779	6395	6390	6390
q22	596	520	501	501
Total cold run time: 67086 ms
Total hot run time: 60439 ms

@doris-robot
Copy link

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

query1	941	350	348	348
query2	6515	1768	1680	1680
query3	6690	205	205	205
query4	23455	21212	21177	21177
query5	4334	392	377	377
query6	259	170	173	170
query7	4602	294	294	294
query8	252	196	210	196
query9	8419	2839	2815	2815
query10	434	225	217	217
query11	15124	14519	14557	14519
query12	140	84	83	83
query13	1698	429	418	418
query14	9164	7681	7754	7681
query15	219	185	186	185
query16	7288	260	251	251
query17	1410	573	516	516
query18	1995	275	265	265
query19	196	148	152	148
query20	88	81	81	81
query21	196	123	116	116
query22	4983	4758	4723	4723
query23	32631	31500	31546	31500
query24	12791	3436	3400	3400
query25	652	376	358	358
query26	1880	155	166	155
query27	3044	315	323	315
query28	6580	1835	1801	1801
query29	1193	647	653	647
query30	282	135	146	135
query31	955	751	767	751
query32	92	60	58	58
query33	717	232	231	231
query34	1062	490	506	490
query35	939	845	840	840
query36	990	898	903	898
query37	146	61	62	61
query38	3279	3164	3210	3164
query39	1391	1329	1311	1311
query40	291	111	106	106
query41	38	36	35	35
query42	111	101	99	99
query43	469	435	449	435
query44	1085	683	707	683
query45	211	179	180	179
query46	1040	812	755	755
query47	1663	1585	1578	1578
query48	425	353	350	350
query49	1210	308	310	308
query50	779	373	379	373
query51	4423	4308	4339	4308
query52	107	94	98	94
query53	413	318	329	318
query54	294	231	236	231
query55	87	81	81	81
query56	237	205	206	205
query57	1049	939	965	939
query58	211	195	200	195
query59	2226	2218	2114	2114
query60	242	220	224	220
query61	85	86	84	84
query62	577	376	375	375
query63	359	310	312	310
query64	6354	3058	3146	3058
query65	3279	3273	3241	3241
query66	1356	337	316	316
query67	14627	14582	14079	14079
query68	5097	554	556	554
query69	539	369	363	363
query70	1286	1235	1242	1235
query71	392	269	256	256
query72	6351	2792	2625	2625
query73	698	304	308	304
query74	6936	6474	6461	6461
query75	3223	2582	2554	2554
query76	3275	1099	1193	1099
query77	356	250	244	244
query78	9444	8810	8779	8779
query79	988	505	516	505
query80	528	362	344	344
query81	440	200	205	200
query82	165	84	83	83
query83	144	130	120	120
query84	228	85	79	79
query85	1026	346	343	343
query86	310	315	272	272
query87	3518	3320	3270	3270
query88	2724	2282	2297	2282
query89	455	366	370	366
query90	1939	166	162	162
query91	154	123	127	123
query92	56	48	49	48
query93	1057	526	511	511
query94	1086	178	181	178
query95	443	338	352	338
query96	585	259	269	259
query97	4464	4257	4291	4257
query98	221	197	199	197
query99	1076	722	717	717
Total cold run time: 269478 ms
Total hot run time: 176777 ms

@doris-robot
Copy link

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

query1	0.03	0.02	0.02
query2	0.07	0.03	0.03
query3	0.23	0.08	0.08
query4	1.65	0.09	0.10
query5	0.49	0.48	0.48
query6	1.37	0.62	0.63
query7	0.01	0.01	0.02
query8	0.03	0.02	0.02
query9	0.53	0.45	0.45
query10	0.49	0.49	0.50
query11	0.13	0.09	0.09
query12	0.13	0.10	0.10
query13	0.59	0.59	0.58
query14	0.77	0.79	0.79
query15	0.82	0.79	0.79
query16	0.34	0.34	0.34
query17	0.94	0.93	0.93
query18	0.18	0.16	0.18
query19	1.80	1.71	1.73
query20	0.01	0.01	0.02
query21	15.41	0.65	0.59
query22	3.04	2.90	2.40
query23	17.53	1.10	0.88
query24	1.97	0.40	0.19
query25	0.62	0.05	0.06
query26	0.16	0.14	0.13
query27	0.07	0.05	0.04
query28	12.42	0.84	0.82
query29	12.60	3.27	3.32
query30	0.54	0.54	0.52
query31	2.78	0.36	0.37
query32	3.34	0.48	0.48
query33	3.11	3.16	3.10
query34	15.38	4.46	4.49
query35	4.50	4.48	4.49
query36	1.08	0.96	0.99
query37	0.07	0.05	0.06
query38	0.04	0.03	0.03
query39	0.02	0.02	0.02
query40	0.17	0.14	0.15
query41	0.08	0.01	0.02
query42	0.02	0.02	0.01
query43	0.03	0.02	0.02
Total cold run time: 105.59 s
Total hot run time: 30.8 s

@doris-robot
Copy link

Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'

Load test result on commit d1bcdf56f95d59e1c3513da34a5666147d891570 with default session variables
Stream load json:         19 seconds loaded 2358488459 Bytes, about 118 MB/s
Stream load orc:          60 seconds loaded 1101869774 Bytes, about 17 MB/s
Stream load parquet:      31 seconds loaded 861443392 Bytes, about 26 MB/s
Insert into select:       17.2 seconds inserted 10000000 Rows, about 581K ops/s

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.71% (8548/23940)
Line Coverage: 27.52% (69382/252073)
Region Coverage: 26.69% (35997/134873)
Branch Coverage: 23.50% (18406/78312)
Coverage Report: http://coverage.selectdb-in.cc/coverage/d1bcdf56f95d59e1c3513da34a5666147d891570_d1bcdf56f95d59e1c3513da34a5666147d891570/report/index.html

@zhangstar333
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17688	4971	4870	4870
q2	2041	140	138	138
q3	10574	1002	996	996
q4	4654	985	994	985
q5	7625	3181	3216	3181
q6	196	136	131	131
q7	1265	784	772	772
q8	9254	2090	2087	2087
q9	7897	6628	6593	6593
q10	8300	2668	2650	2650
q11	423	213	204	204
q12	763	328	330	328
q13	17946	3619	3603	3603
q14	289	257	253	253
q15	614	510	511	510
q16	473	418	424	418
q17	933	878	878	878
q18	7451	6641	6751	6641
q19	1576	1492	1502	1492
q20	553	274	270	270
q21	6914	3997	3971	3971
q22	877	353	343	343
Total cold run time: 108306 ms
Total hot run time: 41314 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4860	4853	4810	4810
q2	295	178	187	178
q3	3593	3582	3576	3576
q4	2515	2549	2534	2534
q5	5774	5748	5757	5748
q6	204	125	125	125
q7	2255	1667	1645	1645
q8	3049	3083	3108	3083
q9	8717	8733	8747	8733
q10	6822	4260	4248	4248
q11	520	361	380	361
q12	779	537	538	537
q13	4315	3450	3423	3423
q14	266	257	243	243
q15	593	504	492	492
q16	481	437	450	437
q17	1676	1623	1607	1607
q18	8361	7721	7843	7721
q19	1659	1665	1660	1660
q20	2162	1845	1821	1821
q21	6592	6191	6162	6162
q22	571	511	538	511
Total cold run time: 66059 ms
Total hot run time: 59655 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 176545 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 7742a87cb513d11f205a14afe213d0ba2f12ef32, data reload: false

query1	921	349	354	349
query2	6514	1744	1602	1602
query3	6701	202	200	200
query4	23149	21181	21107	21107
query5	4331	381	379	379
query6	273	172	161	161
query7	4610	295	297	295
query8	246	191	203	191
query9	8425	2867	2846	2846
query10	416	219	224	219
query11	14861	14584	14394	14394
query12	151	82	85	82
query13	1701	415	406	406
query14	9165	7717	7724	7717
query15	219	187	190	187
query16	7451	252	259	252
query17	1407	542	513	513
query18	1950	272	282	272
query19	193	149	149	149
query20	84	82	81	81
query21	187	123	114	114
query22	4877	4761	4807	4761
query23	32505	31557	31425	31425
query24	12712	3381	3422	3381
query25	642	370	359	359
query26	1881	157	157	157
query27	3055	313	309	309
query28	6602	1824	1829	1824
query29	1142	613	607	607
query30	278	137	143	137
query31	941	759	758	758
query32	94	58	55	55
query33	718	234	238	234
query34	1053	486	492	486
query35	932	830	799	799
query36	1021	868	878	868
query37	158	62	65	62
query38	3301	3202	3158	3158
query39	1403	1326	1318	1318
query40	290	104	102	102
query41	39	36	36	36
query42	107	102	100	100
query43	467	434	451	434
query44	1072	689	699	689
query45	203	182	174	174
query46	1024	766	768	766
query47	1602	1548	1592	1548
query48	414	351	347	347
query49	1226	307	305	305
query50	769	371	376	371
query51	4452	4306	4342	4306
query52	113	92	103	92
query53	403	309	295	295
query54	291	225	231	225
query55	86	81	83	81
query56	218	204	208	204
query57	1080	976	994	976
query58	221	196	200	196
query59	2149	2022	2046	2022
query60	241	226	213	213
query61	89	84	83	83
query62	578	395	371	371
query63	333	283	289	283
query64	6412	3138	3128	3128
query65	3288	3252	3251	3251
query66	1333	331	346	331
query67	14445	14338	14337	14337
query68	4611	532	548	532
query69	501	362	352	352
query70	1217	1159	1208	1159
query71	333	258	283	258
query72	6081	2766	2616	2616
query73	696	311	309	309
query74	6792	6450	6525	6450
query75	3185	2582	2593	2582
query76	3016	1144	1207	1144
query77	342	236	235	235
query78	9403	8910	8745	8745
query79	972	500	498	498
query80	577	359	347	347
query81	447	204	203	203
query82	166	88	86	86
query83	237	133	122	122
query84	228	78	78	78
query85	1087	349	333	333
query86	311	297	301	297
query87	3464	3283	3287	3283
query88	2736	2314	2302	2302
query89	449	365	350	350
query90	2058	167	166	166
query91	150	130	125	125
query92	55	53	49	49
query93	1011	515	484	484
query94	1102	180	178	178
query95	433	345	347	345
query96	575	267	264	264
query97	4437	4299	4269	4269
query98	223	208	204	204
query99	1033	700	752	700
Total cold run time: 267143 ms
Total hot run time: 176545 ms

@doris-robot
Copy link

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

query1	0.03	0.02	0.02
query2	0.07	0.03	0.02
query3	0.23	0.07	0.07
query4	1.64	0.09	0.08
query5	0.49	0.49	0.48
query6	1.36	0.61	0.60
query7	0.02	0.01	0.02
query8	0.04	0.02	0.02
query9	0.53	0.47	0.44
query10	0.49	0.49	0.48
query11	0.13	0.10	0.09
query12	0.12	0.10	0.10
query13	0.59	0.59	0.59
query14	0.78	0.77	0.79
query15	0.82	0.79	0.79
query16	0.33	0.33	0.33
query17	0.92	0.86	0.90
query18	0.17	0.17	0.17
query19	1.74	1.73	1.72
query20	0.01	0.01	0.02
query21	15.39	0.62	0.57
query22	2.71	3.93	2.36
query23	17.66	1.04	1.05
query24	2.04	0.57	0.38
query25	0.64	0.07	0.07
query26	0.18	0.13	0.13
query27	0.05	0.04	0.04
query28	11.95	0.87	0.81
query29	12.52	3.30	3.31
query30	0.52	0.51	0.49
query31	2.77	0.36	0.36
query32	3.37	0.47	0.49
query33	3.13	3.12	3.18
query34	15.36	4.50	4.49
query35	4.50	4.49	4.50
query36	1.09	0.95	0.97
query37	0.07	0.05	0.06
query38	0.03	0.02	0.02
query39	0.02	0.01	0.02
query40	0.17	0.14	0.14
query41	0.07	0.02	0.02
query42	0.03	0.01	0.02
query43	0.02	0.02	0.02
Total cold run time: 104.8 s
Total hot run time: 30.99 s

@doris-robot
Copy link

Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'

Load test result on commit 7742a87cb513d11f205a14afe213d0ba2f12ef32 with default session variables
Stream load json:         19 seconds loaded 2358488459 Bytes, about 118 MB/s
Stream load orc:          60 seconds loaded 1101869774 Bytes, about 17 MB/s
Stream load parquet:      31 seconds loaded 861443392 Bytes, about 26 MB/s
Insert into select:       16.6 seconds inserted 10000000 Rows, about 602K ops/s

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.73% (8548/23926)
Line Coverage: 27.52% (69364/252026)
Region Coverage: 26.68% (35985/134860)
Branch Coverage: 23.48% (18389/78310)
Coverage Report: http://coverage.selectdb-in.cc/coverage/7742a87cb513d11f205a14afe213d0ba2f12ef32_7742a87cb513d11f205a14afe213d0ba2f12ef32/report/index.html

@zhangstar333 zhangstar333 marked this pull request as ready for review February 26, 2024 09:16
@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Feb 26, 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.

Copy link
Contributor

@HappenLee HappenLee left a comment

Choose a reason for hiding this comment

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

LGTM

@HappenLee HappenLee merged commit e79462c into apache:master Feb 29, 2024
yiguolei pushed a commit that referenced this pull request Feb 29, 2024
Co-authored-by: morrySnow <morrysnow@126.com>
dataroaring pushed a commit that referenced this pull request Jun 30, 2024
…ange node rather than on TabletWriter when using `TABLET_SINK_SHUFFLE_PARTITIONED` (#36836)

## Proposed changes

Issue Number: close #36638

#30914 add partition tablet sink
shuffle and the processing of auto_increment column should be handled on
exchange node raher than TabletWriter when using partition tablet sink
shuffle.

branch-2.1-pick: #37029
dataroaring pushed a commit that referenced this pull request Jul 2, 2024
…ange node rather than on TabletWriter when using `TABLET_SINK_SHUFFLE_PARTITIONED` (#36836)

## Proposed changes

Issue Number: close #36638

#30914 add partition tablet sink
shuffle and the processing of auto_increment column should be handled on
exchange node raher than TabletWriter when using partition tablet sink
shuffle.

branch-2.1-pick: #37029
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. meta-change reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants