Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[fix](join) incorrect result of mark join #30543

Merged
merged 1 commit into from
Jan 31, 2024

Conversation

mrhhsg
Copy link
Member

@mrhhsg mrhhsg commented Jan 30, 2024

Proposed change

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

@mrhhsg
Copy link
Member Author

mrhhsg commented Jan 30, 2024

run buildall

Copy link
Contributor

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

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17665	4862	4497	4497
q2	2041	139	137	137
q3	10606	929	893	893
q4	4645	791	698	698
q5	7684	2819	2828	2819
q6	187	120	119	119
q7	1112	708	701	701
q8	9253	2006	2027	2006
q9	7219	6284	6365	6284
q10	8050	2417	2399	2399
q11	412	212	214	212
q12	749	277	282	277
q13	17980	3317	3301	3301
q14	278	245	230	230
q15	547	494	486	486
q16	460	416	405	405
q17	934	540	497	497
q18	6692	6000	5934	5934
q19	1567	1379	1395	1379
q20	633	339	316	316
q21	7001	3109	3035	3035
q22	818	313	301	301
Total cold run time: 106533 ms
Total hot run time: 36926 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4595	4490	4366	4366
q2	326	231	236	231
q3	2934	2856	2817	2817
q4	1848	1744	1691	1691
q5	5136	5261	5205	5205
q6	189	113	115	113
q7	2162	1785	1722	1722
q8	3149	3259	3247	3247
q9	8342	8341	8320	8320
q10	5785	3587	3564	3564
q11	553	459	461	459
q12	768	565	586	565
q13	16392	3070	3046	3046
q14	276	241	266	241
q15	526	488	487	487
q16	514	470	442	442
q17	1857	1663	1657	1657
q18	8005	7710	7470	7470
q19	7463	1504	1489	1489
q20	2138	1896	1899	1896
q21	4738	4611	4607	4607
q22	571	446	483	446
Total cold run time: 78267 ms
Total hot run time: 54081 ms

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.20% (8625/23827)
Line Coverage: 28.26% (70537/249627)
Region Coverage: 27.25% (36389/133554)
Branch Coverage: 24.04% (18647/77560)
Coverage Report: http://coverage.selectdb-in.cc/coverage/c04918a12c8213338dc65b5b94b539a834da5c39_c04918a12c8213338dc65b5b94b539a834da5c39/report/index.html

@doris-robot
Copy link

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

query1	930	331	331	331
query2	6565	1946	1902	1902
query3	6705	198	196	196
query4	27507	22148	21951	21951
query5	4453	353	350	350
query6	250	161	148	148
query7	4617	257	252	252
query8	243	169	175	169
query9	9003	2301	2281	2281
query10	405	208	205	205
query11	16821	15409	15304	15304
query12	121	65	62	62
query13	1677	375	372	372
query14	9137	6464	6513	6464
query15	219	172	178	172
query16	6161	252	244	244
query17	1834	474	455	455
query18	1777	251	251	251
query19	163	131	136	131
query20	68	71	69	69
query21	190	144	127	127
query22	4883	4773	4641	4641
query23	30963	30196	30214	30196
query24	10872	2811	2753	2753
query25	546	313	296	296
query26	881	138	144	138
query27	2856	275	277	275
query28	6421	1838	1831	1831
query29	946	609	601	601
query30	277	131	139	131
query31	932	697	729	697
query32	86	51	51	51
query33	596	201	206	201
query34	795	437	452	437
query35	816	754	764	754
query36	1288	1188	1222	1188
query37	90	57	53	53
query38	3341	3147	3151	3147
query39	1305	1258	1248	1248
query40	190	86	81	81
query41	37	36	34	34
query42	86	83	82	82
query43	532	477	491	477
query44	1034	678	690	678
query45	188	174	171	171
query46	1042	656	622	622
query47	1606	1467	1483	1467
query48	383	302	319	302
query49	1115	275	295	275
query50	686	303	305	303
query51	5222	5163	5147	5147
query52	81	86	72	72
query53	326	260	258	258
query54	241	179	179	179
query55	76	72	69	69
query56	175	166	163	163
query57	963	865	907	865
query58	179	152	146	146
query59	2380	2296	2394	2296
query60	198	185	178	178
query61	82	80	87	80
query62	598	362	356	356
query63	279	255	253	253
query64	4017	1702	1703	1702
query65	3278	3215	3201	3201
query66	1143	319	307	307
query67	14370	14121	13945	13945
query68	4096	497	475	475
query69	428	296	294	294
query70	1551	1473	1471	1471
query71	280	200	208	200
query72	3792	2806	2833	2806
query73	679	311	314	311
query74	6584	6294	6271	6271
query75	2798	2266	2320	2266
query76	3009	950	950	950
query77	364	223	216	216
query78	9042	8735	8540	8540
query79	2557	493	490	490
query80	1302	314	306	306
query81	525	198	191	191
query82	1031	80	76	76
query83	211	115	119	115
query84	228	77	79	77
query85	1268	329	335	329
query86	431	422	404	404
query87	3378	3290	3260	3260
query88	3423	2180	2157	2157
query89	424	340	342	340
query90	2037	181	177	177
query91	143	114	114	114
query92	50	43	46	43
query93	1795	402	405	402
query94	1347	159	151	151
query95	498	453	446	446
query96	609	317	312	312
query97	4205	4122	4095	4095
query98	212	195	193	193
query99	1047	712	723	712
Total cold run time: 266591 ms
Total hot run time: 171973 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 c04918a12c8213338dc65b5b94b539a834da5c39, data reload: false

query1	0.04	0.03	0.03
query2	0.06	0.02	0.02
query3	0.23	0.06	0.07
query4	1.68	0.10	0.09
query5	0.52	0.51	0.52
query6	1.19	0.65	0.63
query7	0.01	0.02	0.01
query8	0.03	0.02	0.02
query9	0.55	0.50	0.50
query10	0.56	0.54	0.56
query11	0.12	0.09	0.08
query12	0.12	0.08	0.09
query13	0.59	0.62	0.60
query14	0.78	0.80	0.79
query15	0.82	0.78	0.80
query16	0.40	0.39	0.39
query17	1.01	1.02	1.01
query18	0.24	0.26	0.25
query19	1.88	1.77	1.81
query20	0.02	0.01	0.01
query21	15.41	0.59	0.57
query22	2.44	2.46	1.60
query23	17.28	0.84	0.74
query24	2.38	1.28	0.76
query25	0.32	0.20	0.18
query26	0.54	0.15	0.15
query27	0.05	0.05	0.05
query28	12.14	0.83	0.83
query29	12.49	3.19	3.19
query30	0.68	0.55	0.48
query31	2.81	0.36	0.37
query32	3.34	0.48	0.48
query33	3.24	3.23	3.20
query34	15.69	4.33	4.30
query35	4.26	4.26	4.35
query36	1.11	1.06	1.07
query37	0.06	0.04	0.05
query38	0.04	0.03	0.03
query39	0.02	0.01	0.01
query40	0.17	0.13	0.12
query41	0.07	0.02	0.01
query42	0.03	0.01	0.02
query43	0.02	0.02	0.02
Total cold run time: 105.44 s
Total hot run time: 30.62 s

@doris-robot
Copy link

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

Load test result on commit c04918a12c8213338dc65b5b94b539a834da5c39 with default session variables
Stream load json:         18 seconds loaded 2358488459 Bytes, about 124 MB/s
Stream load orc:          58 seconds loaded 1101869774 Bytes, about 18 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

Copy link
Contributor

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

@mrhhsg mrhhsg force-pushed the fix_mark_join branch 2 times, most recently from f95d0c1 to 0556c50 Compare January 30, 2024 03:57
@mrhhsg
Copy link
Member Author

mrhhsg commented Jan 30, 2024

run buildall

Copy link
Contributor

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

1 similar comment
Copy link
Contributor

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

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.20% (8625/23827)
Line Coverage: 28.26% (70537/249622)
Region Coverage: 27.25% (36390/133554)
Branch Coverage: 24.05% (18650/77560)
Coverage Report: http://coverage.selectdb-in.cc/coverage/0556c5080b63febd6ecc8c363a36b0edea6e8181_0556c5080b63febd6ecc8c363a36b0edea6e8181/report/index.html

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17669	4458	4507	4458
q2	2043	137	132	132
q3	10599	924	941	924
q4	4641	746	752	746
q5	7669	2845	2852	2845
q6	185	124	122	122
q7	1131	723	709	709
q8	9275	1977	2005	1977
q9	7191	6334	6332	6332
q10	8104	2415	2415	2415
q11	420	206	206	206
q12	814	276	273	273
q13	18024	3276	3279	3276
q14	281	251	250	250
q15	560	493	485	485
q16	465	414	401	401
q17	932	497	505	497
q18	6858	6046	5977	5977
q19	1556	1473	1367	1367
q20	581	316	325	316
q21	6622	3021	3068	3021
q22	793	296	282	282
Total cold run time: 106413 ms
Total hot run time: 37011 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4497	4379	4379	4379
q2	324	237	229	229
q3	3009	2857	2782	2782
q4	1846	1688	1616	1616
q5	5225	5228	5174	5174
q6	190	111	113	111
q7	2154	1761	1749	1749
q8	3156	3254	3238	3238
q9	8404	8364	8329	8329
q10	5843	3583	3531	3531
q11	549	451	468	451
q12	740	572	572	572
q13	11767	3062	3090	3062
q14	278	255	257	255
q15	529	489	492	489
q16	525	480	466	466
q17	1846	1729	1691	1691
q18	8107	7845	7521	7521
q19	9448	1541	1532	1532
q20	2120	1916	1898	1898
q21	4947	4551	4555	4551
q22	541	458	488	458
Total cold run time: 76045 ms
Total hot run time: 54084 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 172214 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 0556c5080b63febd6ecc8c363a36b0edea6e8181, data reload: false

query1	930	333	322	322
query2	6574	1939	2029	1939
query3	6707	200	199	199
query4	27500	21947	21881	21881
query5	4452	344	412	344
query6	240	174	150	150
query7	4600	269	257	257
query8	239	207	174	174
query9	9120	2294	2301	2294
query10	410	194	192	192
query11	16774	15262	15398	15262
query12	124	68	61	61
query13	1677	366	355	355
query14	9242	6443	6599	6443
query15	209	180	175	175
query16	6395	267	250	250
query17	1891	462	463	462
query18	1921	249	254	249
query19	169	130	133	130
query20	67	71	64	64
query21	192	132	130	130
query22	5037	4760	4835	4760
query23	31425	30371	30315	30315
query24	10968	2751	2741	2741
query25	544	304	303	303
query26	831	140	138	138
query27	2849	284	289	284
query28	6187	1861	1846	1846
query29	931	625	615	615
query30	291	136	138	136
query31	893	701	704	701
query32	87	55	51	51
query33	609	213	209	209
query34	827	434	452	434
query35	852	773	761	761
query36	1329	1178	1233	1178
query37	91	57	56	56
query38	3267	3186	3189	3186
query39	1296	1255	1235	1235
query40	197	86	92	86
query41	38	35	34	34
query42	89	81	86	81
query43	523	469	489	469
query44	1059	687	682	682
query45	194	180	173	173
query46	1031	638	636	636
query47	1587	1465	1523	1465
query48	401	303	296	296
query49	1108	281	278	278
query50	674	306	313	306
query51	5271	5130	5113	5113
query52	84	83	83	83
query53	323	265	268	265
query54	253	184	185	184
query55	76	76	74	74
query56	173	154	164	154
query57	974	914	941	914
query58	177	150	161	150
query59	2404	2550	2241	2241
query60	194	174	166	166
query61	81	80	79	79
query62	621	356	355	355
query63	285	257	261	257
query64	3992	1725	1726	1725
query65	3288	3217	3197	3197
query66	1131	318	309	309
query67	14288	13937	14517	13937
query68	4027	497	507	497
query69	443	302	302	302
query70	1518	1495	1541	1495
query71	276	210	212	210
query72	3768	2820	2805	2805
query73	695	312	317	312
query74	6574	6200	6215	6200
query75	2832	2292	2265	2265
query76	2995	939	898	898
query77	368	228	223	223
query78	9037	8677	8641	8641
query79	2338	503	492	492
query80	1338	323	323	323
query81	540	197	197	197
query82	664	83	80	80
query83	213	120	122	120
query84	229	70	76	70
query85	2069	333	332	332
query86	511	369	380	369
query87	3522	3285	3242	3242
query88	3777	2168	2172	2168
query89	402	352	350	350
query90	1914	183	183	183
query91	145	120	118	118
query92	55	46	42	42
query93	2113	426	406	406
query94	1412	158	155	155
query95	512	463	437	437
query96	606	318	309	309
query97	4248	4149	4137	4137
query98	199	202	190	190
query99	1043	679	655	655
Total cold run time: 268646 ms
Total hot run time: 172214 ms

@doris-robot
Copy link

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

query1	0.04	0.03	0.03
query2	0.06	0.02	0.02
query3	0.23	0.06	0.06
query4	1.67	0.10	0.10
query5	0.53	0.51	0.51
query6	1.24	0.65	0.64
query7	0.02	0.01	0.02
query8	0.03	0.02	0.02
query9	0.54	0.52	0.49
query10	0.56	0.56	0.56
query11	0.12	0.09	0.09
query12	0.11	0.09	0.10
query13	0.61	0.62	0.59
query14	0.79	0.82	0.80
query15	0.80	0.78	0.77
query16	0.38	0.38	0.40
query17	1.02	1.01	1.03
query18	0.20	0.27	0.24
query19	1.89	1.75	1.71
query20	0.01	0.01	0.01
query21	15.40	0.56	0.55
query22	3.10	2.40	1.63
query23	17.44	0.71	0.70
query24	2.57	0.33	1.49
query25	0.28	0.32	0.11
query26	0.45	0.15	0.15
query27	0.05	0.06	0.05
query28	11.94	0.83	0.85
query29	12.55	3.10	3.14
query30	0.67	0.54	0.55
query31	3.09	0.37	0.36
query32	3.56	0.47	0.48
query33	3.24	3.24	3.25
query34	15.71	4.38	4.30
query35	4.31	4.28	4.28
query36	1.10	1.06	1.06
query37	0.06	0.05	0.05
query38	0.03	0.02	0.03
query39	0.02	0.02	0.02
query40	0.17	0.13	0.12
query41	0.07	0.02	0.01
query42	0.02	0.01	0.01
query43	0.02	0.02	0.02
Total cold run time: 106.7 s
Total hot run time: 30.08 s

@doris-robot
Copy link

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

Load test result on commit 0556c5080b63febd6ecc8c363a36b0edea6e8181 with default session variables
Stream load json:         18 seconds loaded 2358488459 Bytes, about 124 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.4 seconds inserted 10000000 Rows, about 746K ops/s

@mrhhsg
Copy link
Member Author

mrhhsg commented Jan 30, 2024

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

@@ -246,7 +286,7 @@ Status ProcessHashTableProbe<JoinOpType, Parent>::do_process(HashTableType& hash
template <int JoinOpType, typename Parent>
template <bool with_other_conjuncts>
Status ProcessHashTableProbe<JoinOpType, Parent>::do_mark_join_conjuncts(
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 'do_mark_join_conjuncts' has cognitive complexity of 56 (threshold 50) [readability-function-cognitive-complexity]

Status ProcessHashTableProbe<JoinOpType, Parent>::do_mark_join_conjuncts(
                                                  ^
Additional context

be/src/vec/exec/join/process_hash_table_probe_impl.h:300: +1, including nesting penalty of 0, nesting level increased to 1

    if (!row_count) {
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:309: +1, including nesting penalty of 0, nesting level increased to 1

    if (_parent->_mark_join_conjuncts.empty()) {
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:321: +2, including nesting penalty of 1, nesting level increased to 2

        for (size_t i = 0; i != row_count; ++i) {
        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:323: +3, including nesting penalty of 2, nesting level increased to 3

            if constexpr (is_null_aware_join) {
            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:324: +4, including nesting penalty of 3, nesting level increased to 4

                if constexpr (with_other_conjuncts) {
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:326: +1, nesting level increased to 4

                } else {
                  ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:327: +5, including nesting penalty of 4, nesting level increased to 5

                    if (filter_data[i]) {
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:330: +1, nesting level increased to 5

                    } else if (_build_indexs[i] == 0) {
                           ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:333: +1, nesting level increased to 5

                    } else if (_build_indexs[i] == hash_table_bucket_size) {
                           ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:339: +2, including nesting penalty of 1, nesting level increased to 2

        if constexpr (!is_null_aware_join) {
        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:342: +1, nesting level increased to 1

    } else {
      ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:343: +2, including nesting penalty of 1, nesting level increased to 2

        RETURN_IF_ERROR(VExprContext::execute_conjuncts(_parent->_mark_join_conjuncts, output_block,
        ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:343: +3, including nesting penalty of 2, nesting level increased to 3

        RETURN_IF_ERROR(VExprContext::execute_conjuncts(_parent->_mark_join_conjuncts, output_block,
        ^

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

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

be/src/vec/exec/join/process_hash_table_probe_impl.h:350: +1, including nesting penalty of 0, nesting level increased to 1

    if constexpr (with_other_conjuncts) {
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:354: +2, including nesting penalty of 1, nesting level increased to 2

            RETURN_IF_ERROR(VExprContext::execute_conjuncts(_parent->_other_join_conjuncts, nullptr,
            ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:354: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(VExprContext::execute_conjuncts(_parent->_other_join_conjuncts, nullptr,
            ^

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

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

be/src/vec/exec/join/process_hash_table_probe_impl.h:360: +2, including nesting penalty of 1, nesting level increased to 2

        for (size_t i = 0; i != filter.size(); ++i) {
        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:379: +1

            *_has_null_in_build_side && is_null_aware_join && !with_other_conjuncts;
                                                           ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:380: +1, including nesting penalty of 0, nesting level increased to 1

    for (size_t i = 0; i != row_count; ++i) {
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:382: +2, including nesting penalty of 1, nesting level increased to 2

        if (_build_indexs[i] == 0) {
        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:384: +3, including nesting penalty of 2, nesting level increased to 3

            if (not_matched_before) {
            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:386: +1

                mark_null_map[i] = has_null_mark_value || should_be_null_if_build_side_has_null;
                                                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:389: +1, nesting level increased to 2

        } else {
          ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:390: +3, including nesting penalty of 2, nesting level increased to 3

            if (mark_null_map[i]) { // is null
            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:392: +1, nesting level increased to 3

            } else {
              ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:393: +4, including nesting penalty of 3, nesting level increased to 4

                if (mark_filter_data[i] && not_matched_before) {
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:393: +1

                if (mark_filter_data[i] && not_matched_before) {
                                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:401: +1, including nesting penalty of 0, nesting level increased to 1

    if constexpr (is_anti_join) {
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:403: +2, including nesting penalty of 1, nesting level increased to 2

        for (size_t i = 0; i != row_count; ++i) {
        ^

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17687	4836	4447	4447
q2	2036	138	134	134
q3	10595	918	911	911
q4	4649	793	745	745
q5	7671	2812	2749	2749
q6	181	118	120	118
q7	1138	705	707	705
q8	9275	2018	1973	1973
q9	7202	6299	6308	6299
q10	8088	2433	2392	2392
q11	408	201	204	201
q12	707	264	286	264
q13	18018	3306	3275	3275
q14	284	244	246	244
q15	531	507	485	485
q16	456	391	412	391
q17	936	501	489	489
q18	6715	5958	5931	5931
q19	1577	1451	1509	1451
q20	581	312	335	312
q21	6953	3032	3105	3032
q22	805	291	279	279
Total cold run time: 106493 ms
Total hot run time: 36827 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4490	4434	4352	4352
q2	329	240	240	240
q3	2982	2860	2797	2797
q4	1841	1629	1682	1629
q5	5240	5228	5234	5228
q6	193	114	114	114
q7	2149	1767	1765	1765
q8	3145	3235	3270	3235
q9	8375	8301	8268	8268
q10	5742	3572	3465	3465
q11	547	458	461	458
q12	745	586	564	564
q13	14640	3079	3071	3071
q14	295	244	252	244
q15	532	487	485	485
q16	520	473	474	473
q17	1870	1715	1722	1715
q18	7893	7789	7438	7438
q19	10929	1553	1539	1539
q20	2104	1887	1919	1887
q21	4779	4567	4675	4567
q22	542	454	436	436
Total cold run time: 79882 ms
Total hot run time: 53970 ms

@doris-robot
Copy link

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

query1	939	326	326	326
query2	6582	2033	1929	1929
query3	6695	199	196	196
query4	26902	21927	22013	21927
query5	4459	386	353	353
query6	246	151	152	151
query7	4607	262	261	261
query8	245	169	169	169
query9	9173	2303	2283	2283
query10	413	212	203	203
query11	16992	15151	15296	15151
query12	114	68	62	62
query13	1666	394	379	379
query14	9241	6459	6384	6384
query15	242	177	173	173
query16	6541	252	248	248
query17	1909	472	462	462
query18	1916	253	253	253
query19	184	132	133	132
query20	69	73	59	59
query21	192	130	135	130
query22	4888	4731	4717	4717
query23	30958	30140	30156	30140
query24	7050	2729	2774	2729
query25	477	300	303	300
query26	805	137	135	135
query27	2566	274	281	274
query28	4100	1864	1842	1842
query29	932	604	612	604
query30	207	133	136	133
query31	928	703	723	703
query32	84	50	47	47
query33	426	202	201	201
query34	824	444	460	444
query35	864	736	752	736
query36	1344	1184	1218	1184
query37	91	61	56	56
query38	3277	3163	3186	3163
query39	1310	1234	1240	1234
query40	191	86	82	82
query41	35	37	34	34
query42	83	79	82	79
query43	515	464	488	464
query44	1032	679	693	679
query45	190	179	176	176
query46	1027	622	630	622
query47	1505	1550	1564	1550
query48	395	301	294	294
query49	613	277	279	277
query50	666	308	304	304
query51	5257	5181	5145	5145
query52	88	86	77	77
query53	312	270	250	250
query54	220	193	178	178
query55	80	72	73	72
query56	178	150	162	150
query57	924	928	926	926
query58	174	143	155	143
query59	2500	2348	2403	2348
query60	204	177	174	174
query61	82	82	80	80
query62	512	354	347	347
query63	271	259	262	259
query64	3650	1730	1744	1730
query65	3273	3227	3184	3184
query66	1115	323	333	323
query67	14325	13923	14036	13923
query68	3950	475	484	475
query69	426	314	299	299
query70	1557	1540	1488	1488
query71	289	213	207	207
query72	3645	2795	2823	2795
query73	683	308	315	308
query74	6569	6215	6262	6215
query75	2774	2264	2252	2252
query76	2899	960	864	864
query77	396	232	217	217
query78	9062	8771	8508	8508
query79	2487	480	487	480
query80	2191	319	314	314
query81	517	197	199	197
query82	711	81	76	76
query83	251	117	115	115
query84	287	79	70	70
query85	1911	354	333	333
query86	512	389	408	389
query87	3439	3266	3253	3253
query88	3700	2176	2147	2147
query89	411	348	346	346
query90	2017	186	181	181
query91	148	118	116	116
query92	57	42	42	42
query93	2436	421	422	421
query94	1343	155	161	155
query95	494	444	439	439
query96	615	313	314	313
query97	4265	4086	4106	4086
query98	214	189	179	179
query99	1121	725	693	693
Total cold run time: 261252 ms
Total hot run time: 171716 ms

@doris-robot
Copy link

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

query1	0.04	0.03	0.03
query2	0.05	0.02	0.02
query3	0.23	0.06	0.06
query4	1.66	0.09	0.10
query5	0.52	0.52	0.52
query6	1.18	0.64	0.64
query7	0.02	0.01	0.01
query8	0.03	0.03	0.02
query9	0.55	0.50	0.50
query10	0.57	0.56	0.55
query11	0.12	0.08	0.09
query12	0.11	0.09	0.10
query13	0.60	0.61	0.60
query14	0.77	0.80	0.79
query15	0.80	0.79	0.77
query16	0.36	0.38	0.38
query17	1.04	0.99	1.04
query18	0.22	0.27	0.23
query19	1.89	1.77	1.77
query20	0.02	0.01	0.01
query21	15.40	0.57	0.56
query22	2.76	2.77	1.60
query23	17.49	0.80	0.79
query24	2.62	1.16	1.65
query25	0.41	0.07	0.06
query26	0.62	0.14	0.14
query27	0.05	0.06	0.05
query28	10.63	0.83	0.86
query29	12.58	3.27	3.19
query30	0.68	0.54	0.54
query31	2.78	0.36	0.36
query32	3.35	0.48	0.48
query33	3.22	3.18	3.23
query34	15.98	4.32	4.28
query35	4.34	4.28	4.25
query36	1.09	1.05	1.05
query37	0.06	0.05	0.05
query38	0.03	0.02	0.02
query39	0.02	0.01	0.01
query40	0.16	0.12	0.13
query41	0.07	0.02	0.01
query42	0.02	0.02	0.01
query43	0.03	0.02	0.02
Total cold run time: 105.17 s
Total hot run time: 30.91 s

@doris-robot
Copy link

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

Load test result on commit baf67e32f2efce6e6d3787e3ff60ab41bb0408b5 with default session variables
Stream load json:         18 seconds loaded 2358488459 Bytes, about 124 MB/s
Stream load orc:          58 seconds loaded 1101869774 Bytes, about 18 MB/s
Stream load parquet:      32 seconds loaded 861443392 Bytes, about 25 MB/s
Insert into select:       13.6 seconds inserted 10000000 Rows, about 735K ops/s

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.23% (8634/23828)
Line Coverage: 28.28% (70598/249651)
Region Coverage: 27.28% (36440/133564)
Branch Coverage: 24.08% (18676/77568)
Coverage Report: http://coverage.selectdb-in.cc/coverage/baf67e32f2efce6e6d3787e3ff60ab41bb0408b5_baf67e32f2efce6e6d3787e3ff60ab41bb0408b5/report/index.html

@mrhhsg
Copy link
Member Author

mrhhsg commented Jan 30, 2024

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

@@ -246,7 +313,7 @@ Status ProcessHashTableProbe<JoinOpType, Parent>::do_process(HashTableType& hash
template <int JoinOpType, typename Parent>
template <bool with_other_conjuncts>
Status ProcessHashTableProbe<JoinOpType, Parent>::do_mark_join_conjuncts(
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 'do_mark_join_conjuncts' has cognitive complexity of 56 (threshold 50) [readability-function-cognitive-complexity]

_conjuncts>
                                                              ^
Additional context

be/src/vec/exec/join/process_hash_table_probe_impl.h:327: +1, including nesting penalty of 0, nesting level increased to 1

ck->rows();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:336: +1, including nesting penalty of 0, nesting level increased to 1

et_data();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:348: +2, including nesting penalty of 1, nesting level increased to 2

tched = -1;
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:350: +3, including nesting penalty of 2, nesting level increased to 3

ucket_size;
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:351: +4, including nesting penalty of 3, nesting level increased to 4

are_join) {
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:354: +1, nesting level increased to 4

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:354: +5, including nesting penalty of 4, nesting level increased to 5

   } else {
                                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:357: +1, nesting level increased to 5

i] = false;
                                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:360: +1, nesting level increased to 5

_indexs[i];
                                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:366: +2, including nesting penalty of 1, nesting level increased to 2

}
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:370: +1, nesting level increased to 1

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:370: +2, including nesting penalty of 1, nesting level increased to 2

   } else {
                    ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:370: +3, including nesting penalty of 2, nesting level increased to 3

   } else {
                    ^

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

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

be/src/vec/exec/join/process_hash_table_probe_impl.h:377: +1, including nesting penalty of 0, nesting level increased to 1

er.data();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:381: +2, including nesting penalty of 1, nesting level increased to 2

ll = false;
                        ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:381: +3, including nesting penalty of 2, nesting level increased to 3

ll = false;
                        ^

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

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

be/src/vec/exec/join/process_hash_table_probe_impl.h:387: +2, including nesting penalty of 1, nesting level increased to 2

ter.data();
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:406: +1

_has_null =
                                                                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:407: +1, including nesting penalty of 0, nesting level increased to 1

_conjuncts;
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:409: +2, including nesting penalty of 1, nesting level increased to 2

_indexs[i];
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:411: +3, including nesting penalty of 2, nesting level increased to 3

_indexs[i];
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:413: +1

[i] = true;
                                                                   ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:417: +1, nesting level increased to 2

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:417: +3, including nesting penalty of 2, nesting level increased to 3

   } else {
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:420: +1, nesting level increased to 3

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:420: +4, including nesting penalty of 3, nesting level increased to 4

   } else {
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:420: +1

   } else {
                                                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:428: +1, including nesting penalty of 0, nesting level increased to 1

   }
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:430: +2, including nesting penalty of 1, nesting level increased to 2

mark column
                    ^

@@ -370,8 +440,7 @@

template <int JoinOpType, typename Parent>
Status ProcessHashTableProbe<JoinOpType, Parent>::do_other_join_conjuncts(
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 'do_other_join_conjuncts' has cognitive complexity of 60 (threshold 50) [readability-function-cognitive-complexity]

ame Parent>
                                                              ^
Additional context

be/src/vec/exec/join/process_hash_table_probe_impl.h:445: +1, including nesting penalty of 0, nesting level increased to 1

ck->rows();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:454: +1, including nesting penalty of 0, nesting level increased to 1

ll = false;
                    ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:454: +2, including nesting penalty of 1, nesting level increased to 2

ll = false;
                    ^

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

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

be/src/vec/exec/join/process_hash_table_probe_impl.h:469: +1, including nesting penalty of 0, nesting level increased to 1

  .data();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:476: +2, including nesting penalty of 1, nesting level increased to 2

re are any.
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:480: +3, including nesting penalty of 2, nesting level increased to 3

mn_ptr[i];
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:483: +1, nesting level increased to 3

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:485: +3, including nesting penalty of 2, nesting level increased to 3

          }
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:490: +2, including nesting penalty of 1, nesting level increased to 2

                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:491: +3, including nesting penalty of 2, nesting level increased to 3

unt; ++i) {
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:494: +4, including nesting penalty of 3, nesting level increased to 4

mn_ptr[i]);
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:500: +1, nesting level increased to 1

er_column);
                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:506: +2, including nesting penalty of 1, nesting level increased to 2

().data();
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:509: +3, including nesting penalty of 2, nesting level increased to 3

indexs[i];
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:510: +4, including nesting penalty of 3, nesting level increased to 4

EMI_JOIN) {
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:514: +1, nesting level increased to 4

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:517: +1, nesting level increased to 3

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:517: +4, including nesting penalty of 3, nesting level increased to 4

   } else {
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:520: +1, nesting level increased to 4

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:521: +5, including nesting penalty of 4, nesting level increased to 5

i] = false;
                                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:529: +1, nesting level increased to 1

er_column);
                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:531: +2, including nesting penalty of 1, nesting level increased to 2

NTI_JOIN) {
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:534: +1, nesting level increased to 1

;
                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:536: +2, including nesting penalty of 1, nesting level increased to 2

r_size = 0;
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:543: +1, including nesting penalty of 0, nesting level increased to 1

 0);
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:547: +1, nesting level increased to 1

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:547: +2, including nesting penalty of 1, nesting level increased to 2

   } else {
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:552: +2, including nesting penalty of 1, nesting level increased to 2

;
                    ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:552: +3, including nesting penalty of 2, nesting level increased to 3

;
                    ^

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

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

@doris-robot
Copy link

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

query1	0.03	0.03	0.03
query2	0.06	0.02	0.02
query3	0.23	0.06	0.06
query4	1.68	0.09	0.09
query5	0.53	0.51	0.53
query6	1.22	0.64	0.64
query7	0.02	0.01	0.01
query8	0.04	0.02	0.02
query9	0.55	0.50	0.49
query10	0.56	0.56	0.57
query11	0.13	0.08	0.08
query12	0.12	0.09	0.10
query13	0.61	0.61	0.60
query14	0.80	0.80	0.78
query15	0.81	0.80	0.77
query16	0.37	0.39	0.39
query17	1.03	0.96	1.04
query18	0.24	0.25	0.24
query19	1.91	1.73	1.81
query20	0.01	0.02	0.02
query21	15.42	0.57	0.56
query22	2.48	2.22	1.91
query23	17.15	0.86	0.88
query24	2.32	1.20	0.96
query25	0.38	0.20	0.06
query26	0.52	0.15	0.14
query27	0.05	0.05	0.05
query28	11.29	0.84	0.85
query29	12.50	3.23	3.22
query30	0.62	0.54	0.48
query31	2.79	0.34	0.35
query32	3.37	0.48	0.47
query33	3.21	3.21	3.21
query34	15.87	4.31	4.28
query35	4.24	4.28	4.31
query36	1.12	1.05	1.05
query37	0.07	0.05	0.05
query38	0.04	0.03	0.03
query39	0.02	0.02	0.01
query40	0.17	0.13	0.13
query41	0.08	0.01	0.01
query42	0.03	0.02	0.01
query43	0.03	0.02	0.02
Total cold run time: 104.72 s
Total hot run time: 31.06 s

@doris-robot
Copy link

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

Load test result on commit 9b45b271a0a0911056cfe0744e15352add1129c8 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.5 seconds inserted 10000000 Rows, about 740K ops/s

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.24% (8637/23836)
Line Coverage: 28.29% (70623/249678)
Region Coverage: 27.29% (36459/133574)
Branch Coverage: 24.08% (18677/77568)
Coverage Report: http://coverage.selectdb-in.cc/coverage/9b45b271a0a0911056cfe0744e15352add1129c8_9b45b271a0a0911056cfe0744e15352add1129c8/report/index.html

@mrhhsg
Copy link
Member Author

mrhhsg commented Jan 30, 2024

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

@@ -370,8 +440,7 @@ Status ProcessHashTableProbe<JoinOpType, Parent>::do_mark_join_conjuncts(

template <int JoinOpType, typename Parent>
Status ProcessHashTableProbe<JoinOpType, Parent>::do_other_join_conjuncts(
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 'do_other_join_conjuncts' has cognitive complexity of 61 (threshold 50) [readability-function-cognitive-complexity]

ame Parent>
                                                              ^
Additional context

be/src/vec/exec/join/process_hash_table_probe_impl.h:445: +1, including nesting penalty of 0, nesting level increased to 1

ck->rows();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:454: +1, including nesting penalty of 0, nesting level increased to 1

ll = false;
                    ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:454: +2, including nesting penalty of 1, nesting level increased to 2

ll = false;
                    ^

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

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

be/src/vec/exec/join/process_hash_table_probe_impl.h:469: +1, including nesting penalty of 0, nesting level increased to 1

  .data();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:476: +2, including nesting penalty of 1, nesting level increased to 2

re are any.
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:480: +3, including nesting penalty of 2, nesting level increased to 3

mn_ptr[i];
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:483: +1, nesting level increased to 3

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:485: +3, including nesting penalty of 2, nesting level increased to 3

          }
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:490: +2, including nesting penalty of 1, nesting level increased to 2

                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:491: +3, including nesting penalty of 2, nesting level increased to 3

unt; ++i) {
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:494: +4, including nesting penalty of 3, nesting level increased to 4

mn_ptr[i]);
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:500: +1, nesting level increased to 1

er_column);
                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:506: +2, including nesting penalty of 1, nesting level increased to 2

().data();
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:509: +3, including nesting penalty of 2, nesting level increased to 3

indexs[i];
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:510: +4, including nesting penalty of 3, nesting level increased to 4

EMI_JOIN) {
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:512: +1, nesting level increased to 4

i] = false;
                                   ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:516: +1, nesting level increased to 4

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:519: +1, nesting level increased to 3

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:519: +4, including nesting penalty of 3, nesting level increased to 4

   } else {
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:522: +1, nesting level increased to 4

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:523: +5, including nesting penalty of 4, nesting level increased to 5

i] = false;
                                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:531: +1, nesting level increased to 1

er_column);
                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:533: +2, including nesting penalty of 1, nesting level increased to 2

NTI_JOIN) {
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:536: +1, nesting level increased to 1

;
                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:538: +2, including nesting penalty of 1, nesting level increased to 2

r_size = 0;
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:545: +1, including nesting penalty of 0, nesting level increased to 1

 0);
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:549: +1, nesting level increased to 1

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:549: +2, including nesting penalty of 1, nesting level increased to 2

   } else {
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:554: +2, including nesting penalty of 1, nesting level increased to 2

;
                    ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:554: +3, including nesting penalty of 2, nesting level increased to 3

;
                    ^

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

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

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17649	4430	4484	4430
q2	2052	141	134	134
q3	10597	912	931	912
q4	4652	830	725	725
q5	7684	2772	2784	2772
q6	185	118	118	118
q7	1157	727	711	711
q8	9325	1995	2020	1995
q9	7223	6332	6277	6277
q10	8099	2451	2420	2420
q11	417	214	211	211
q12	744	286	283	283
q13	18023	3321	3280	3280
q14	268	261	242	242
q15	528	483	487	483
q16	460	424	405	405
q17	941	498	503	498
q18	6719	6023	5868	5868
q19	1547	1358	1356	1356
q20	609	330	362	330
q21	7220	3108	3103	3103
q22	808	308	298	298
Total cold run time: 106907 ms
Total hot run time: 36851 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4389	4332	4356	4332
q2	326	244	221	221
q3	2985	2827	2812	2812
q4	1836	1677	1642	1642
q5	5236	5214	5233	5214
q6	196	114	115	114
q7	2140	1813	1744	1744
q8	3114	3262	3323	3262
q9	8350	8418	8272	8272
q10	5744	3538	3489	3489
q11	552	472	460	460
q12	767	554	588	554
q13	13816	3064	3065	3064
q14	275	246	253	246
q15	534	492	495	492
q16	514	472	461	461
q17	1823	1657	1682	1657
q18	8118	7687	7559	7559
q19	7650	1533	1550	1533
q20	2117	1931	1895	1895
q21	4658	4706	4745	4706
q22	553	448	463	448
Total cold run time: 75693 ms
Total hot run time: 54177 ms

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.20% (8626/23832)
Line Coverage: 28.26% (70548/249605)
Region Coverage: 27.26% (36399/133540)
Branch Coverage: 24.05% (18646/77544)
Coverage Report: http://coverage.selectdb-in.cc/coverage/6037e11643ac2e65e68cc32788c93970e89bfd14_6037e11643ac2e65e68cc32788c93970e89bfd14/report/index.html

@doris-robot
Copy link

TPC-DS: Total hot run time: 172152 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 6037e11643ac2e65e68cc32788c93970e89bfd14, data reload: false

query1	964	339	324	324
query2	6556	2035	1859	1859
query3	6697	211	207	207
query4	27702	22021	22021	22021
query5	4462	414	422	414
query6	266	169	163	163
query7	4601	264	261	261
query8	242	176	176	176
query9	8988	2254	2216	2216
query10	413	202	211	202
query11	17443	15498	15272	15272
query12	122	72	64	64
query13	1683	369	364	364
query14	9146	6471	6549	6471
query15	214	175	176	175
query16	6170	267	249	249
query17	1574	475	473	473
query18	1783	260	246	246
query19	178	134	133	133
query20	74	69	70	69
query21	200	127	127	127
query22	4932	4638	4494	4494
query23	31094	30285	30225	30225
query24	7272	2762	2702	2702
query25	415	308	299	299
query26	793	139	144	139
query27	2464	283	290	283
query28	4113	1862	1838	1838
query29	926	607	610	607
query30	209	136	136	136
query31	916	699	712	699
query32	64	49	48	48
query33	414	212	211	211
query34	787	448	455	448
query35	815	731	719	719
query36	1350	1221	1207	1207
query37	92	58	57	57
query38	3262	3195	3210	3195
query39	1317	1251	1247	1247
query40	187	84	81	81
query41	38	38	33	33
query42	90	86	84	84
query43	532	481	512	481
query44	1036	677	673	673
query45	189	174	177	174
query46	1030	643	627	627
query47	1591	1443	1495	1443
query48	377	308	302	302
query49	627	283	274	274
query50	689	311	313	311
query51	5294	5127	5133	5127
query52	102	83	79	79
query53	313	260	264	260
query54	249	182	184	182
query55	75	77	72	72
query56	176	168	162	162
query57	965	903	903	903
query58	187	151	154	151
query59	2413	2347	2358	2347
query60	199	178	185	178
query61	80	83	80	80
query62	446	355	340	340
query63	261	255	255	255
query64	2512	1719	1692	1692
query65	3272	3224	3205	3205
query66	1077	315	316	315
query67	14417	13915	14212	13915
query68	4037	507	504	504
query69	450	305	308	305
query70	1544	1537	1569	1537
query71	299	208	208	208
query72	3652	2799	2836	2799
query73	691	325	321	321
query74	6609	6234	6273	6234
query75	2853	2296	2240	2240
query76	2960	992	915	915
query77	365	237	232	232
query78	9032	8834	8559	8559
query79	2323	509	500	500
query80	1484	321	321	321
query81	510	191	199	191
query82	734	85	78	78
query83	228	120	118	118
query84	232	70	71	70
query85	1218	337	329	329
query86	511	380	385	380
query87	3388	3255	3258	3255
query88	3805	2268	2265	2265
query89	407	356	362	356
query90	2085	197	192	192
query91	147	117	118	117
query92	55	46	44	44
query93	2066	439	433	433
query94	1296	158	158	158
query95	500	473	441	441
query96	630	330	326	326
query97	4236	4150	4092	4092
query98	211	196	190	190
query99	1089	712	656	656
Total cold run time: 258784 ms
Total hot run time: 172152 ms

@doris-robot
Copy link

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

query1	0.04	0.04	0.03
query2	0.06	0.02	0.02
query3	0.23	0.06	0.06
query4	1.65	0.09	0.10
query5	0.52	0.51	0.52
query6	1.21	0.64	0.63
query7	0.02	0.01	0.02
query8	0.03	0.02	0.02
query9	0.54	0.50	0.49
query10	0.56	0.54	0.55
query11	0.13	0.09	0.08
query12	0.12	0.09	0.10
query13	0.60	0.61	0.61
query14	0.78	0.80	0.80
query15	0.80	0.81	0.79
query16	0.40	0.39	0.39
query17	1.02	1.00	0.99
query18	0.22	0.25	0.23
query19	1.92	1.84	1.80
query20	0.02	0.01	0.01
query21	15.40	0.60	0.58
query22	2.64	2.24	2.19
query23	17.50	0.98	0.67
query24	2.89	1.01	0.72
query25	0.38	0.13	0.08
query26	0.52	0.15	0.14
query27	0.07	0.04	0.04
query28	12.35	0.85	0.83
query29	12.59	3.08	3.17
query30	0.66	0.53	0.55
query31	2.78	0.33	0.36
query32	3.34	0.49	0.48
query33	3.22	3.24	3.20
query34	15.76	4.31	4.32
query35	4.33	4.32	4.32
query36	1.10	1.05	1.07
query37	0.06	0.05	0.05
query38	0.04	0.03	0.03
query39	0.02	0.01	0.02
query40	0.16	0.13	0.14
query41	0.08	0.02	0.01
query42	0.02	0.01	0.02
query43	0.02	0.02	0.02
Total cold run time: 106.8 s
Total hot run time: 31 s

@doris-robot
Copy link

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

Load test result on commit 6037e11643ac2e65e68cc32788c93970e89bfd14 with default session variables
Stream load json:         18 seconds loaded 2358488459 Bytes, about 124 MB/s
Stream load orc:          58 seconds loaded 1101869774 Bytes, about 18 MB/s
Stream load parquet:      32 seconds loaded 861443392 Bytes, about 25 MB/s
Insert into select:       13.5 seconds inserted 10000000 Rows, about 740K ops/s

@mrhhsg
Copy link
Member Author

mrhhsg commented Jan 31, 2024

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

*
* To avoid using nested loop join, we use the mark join conjunct(`t1.k1 = t2.k1`) as the equal join conjunct.
* So this query will be a "null aware left anti join", which means the equal conjunct's result should be nullable.
*/
template <int JoinOpType, typename Parent>
template <bool with_other_conjuncts>
Status ProcessHashTableProbe<JoinOpType, Parent>::do_mark_join_conjuncts(
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 'do_mark_join_conjuncts' has cognitive complexity of 56 (threshold 50) [readability-function-cognitive-complexity]

_conjuncts>
                                                              ^
Additional context

be/src/vec/exec/join/process_hash_table_probe_impl.h:338: +1, including nesting penalty of 0, nesting level increased to 1

ck->rows();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:347: +1, including nesting penalty of 0, nesting level increased to 1

et_data();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:359: +2, including nesting penalty of 1, nesting level increased to 2

tched = -1;
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:361: +3, including nesting penalty of 2, nesting level increased to 3

ucket_size;
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:362: +4, including nesting penalty of 3, nesting level increased to 4

are_join) {
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:365: +1, nesting level increased to 4

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:365: +5, including nesting penalty of 4, nesting level increased to 5

   } else {
                                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:368: +1, nesting level increased to 5

i] = false;
                                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:371: +1, nesting level increased to 5

_indexs[i];
                                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:377: +2, including nesting penalty of 1, nesting level increased to 2

}
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:381: +1, nesting level increased to 1

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:381: +2, including nesting penalty of 1, nesting level increased to 2

   } else {
                    ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:381: +3, including nesting penalty of 2, nesting level increased to 3

   } else {
                    ^

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

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

be/src/vec/exec/join/process_hash_table_probe_impl.h:388: +1, including nesting penalty of 0, nesting level increased to 1

er.data();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:392: +2, including nesting penalty of 1, nesting level increased to 2

ll = false;
                        ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:392: +3, including nesting penalty of 2, nesting level increased to 3

ll = false;
                        ^

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

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

be/src/vec/exec/join/process_hash_table_probe_impl.h:398: +2, including nesting penalty of 1, nesting level increased to 2

ter.data();
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:417: +1

_has_null =
                                                                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:418: +1, including nesting penalty of 0, nesting level increased to 1

_conjuncts;
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:420: +2, including nesting penalty of 1, nesting level increased to 2

_indexs[i];
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:422: +3, including nesting penalty of 2, nesting level increased to 3

_indexs[i];
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:424: +1

[i] = true;
                                                                   ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:428: +1, nesting level increased to 2

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:428: +3, including nesting penalty of 2, nesting level increased to 3

   } else {
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:431: +1, nesting level increased to 3

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:431: +4, including nesting penalty of 3, nesting level increased to 4

   } else {
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:431: +1

   } else {
                                                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:439: +1, including nesting penalty of 0, nesting level increased to 1

   }
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:441: +2, including nesting penalty of 1, nesting level increased to 2

mark column
                    ^

@@ -372,8 +451,7 @@

template <int JoinOpType, typename Parent>
Status ProcessHashTableProbe<JoinOpType, Parent>::do_other_join_conjuncts(
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 'do_other_join_conjuncts' has cognitive complexity of 61 (threshold 50) [readability-function-cognitive-complexity]

ame Parent>
                                                              ^
Additional context

be/src/vec/exec/join/process_hash_table_probe_impl.h:456: +1, including nesting penalty of 0, nesting level increased to 1

ck->rows();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:465: +1, including nesting penalty of 0, nesting level increased to 1

ll = false;
                    ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:465: +2, including nesting penalty of 1, nesting level increased to 2

ll = false;
                    ^

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

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

be/src/vec/exec/join/process_hash_table_probe_impl.h:480: +1, including nesting penalty of 0, nesting level increased to 1

  .data();
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:487: +2, including nesting penalty of 1, nesting level increased to 2

re are any.
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:491: +3, including nesting penalty of 2, nesting level increased to 3

mn_ptr[i];
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:494: +1, nesting level increased to 3

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:496: +3, including nesting penalty of 2, nesting level increased to 3

          }
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:501: +2, including nesting penalty of 1, nesting level increased to 2

                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:502: +3, including nesting penalty of 2, nesting level increased to 3

unt; ++i) {
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:505: +4, including nesting penalty of 3, nesting level increased to 4

mn_ptr[i]);
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:511: +1, nesting level increased to 1

er_column);
                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:517: +2, including nesting penalty of 1, nesting level increased to 2

().data();
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:520: +3, including nesting penalty of 2, nesting level increased to 3

indexs[i];
                        ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:521: +4, including nesting penalty of 3, nesting level increased to 4

EMI_JOIN) {
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:523: +1, nesting level increased to 4

i] = false;
                                   ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:527: +1, nesting level increased to 4

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:530: +1, nesting level increased to 3

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:530: +4, including nesting penalty of 3, nesting level increased to 4

   } else {
                            ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:533: +1, nesting level increased to 4

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:534: +5, including nesting penalty of 4, nesting level increased to 5

i] = false;
                                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:542: +1, nesting level increased to 1

er_column);
                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:544: +2, including nesting penalty of 1, nesting level increased to 2

NTI_JOIN) {
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:547: +1, nesting level increased to 1

;
                       ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:549: +2, including nesting penalty of 1, nesting level increased to 2

r_size = 0;
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:556: +1, including nesting penalty of 0, nesting level increased to 1

 0);
                ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:560: +1, nesting level increased to 1

   } else {
     ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:560: +2, including nesting penalty of 1, nesting level increased to 2

   } else {
                    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:565: +2, including nesting penalty of 1, nesting level increased to 2

;
                    ^

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

    do {                                \
    ^

be/src/vec/exec/join/process_hash_table_probe_impl.h:565: +3, including nesting penalty of 2, nesting level increased to 3

;
                    ^

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

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

Copy link
Contributor

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

@github-actions github-actions bot added approved Indicates a PR has been approved by one committer. reviewed labels Jan 31, 2024
Copy link
Contributor

PR approved by anyone and no changes requested.

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.18% (8626/23839)
Line Coverage: 28.25% (70546/249727)
Region Coverage: 27.25% (36406/133597)
Branch Coverage: 24.03% (18646/77580)
Coverage Report: http://coverage.selectdb-in.cc/coverage/8ff51c7361a6854497cc8b5e972d3a0ae6368cc3_8ff51c7361a6854497cc8b5e972d3a0ae6368cc3/report/index.html

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17705	4723	4397	4397
q2	2049	141	132	132
q3	10675	904	935	904
q4	4646	771	794	771
q5	7674	2895	2903	2895
q6	184	119	119	119
q7	1094	711	706	706
q8	9281	2006	1994	1994
q9	7109	6357	6279	6279
q10	8070	2444	2397	2397
q11	416	212	192	192
q12	757	282	276	276
q13	18026	3298	3284	3284
q14	279	252	236	236
q15	522	512	485	485
q16	492	407	396	396
q17	946	496	540	496
q18	6765	6099	6014	6014
q19	1564	1403	1368	1368
q20	574	344	326	326
q21	6612	3077	3116	3077
q22	800	300	297	297
Total cold run time: 106240 ms
Total hot run time: 37041 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4613	4413	4411	4411
q2	332	235	226	226
q3	2953	2848	2817	2817
q4	1858	1618	1616	1616
q5	5386	5218	5177	5177
q6	189	113	114	113
q7	2092	1737	1751	1737
q8	3144	3216	3253	3216
q9	8308	8319	8340	8319
q10	5930	3579	3552	3552
q11	542	460	453	453
q12	743	575	578	575
q13	13422	3117	3071	3071
q14	290	248	265	248
q15	531	489	480	480
q16	507	440	472	440
q17	1842	1670	1723	1670
q18	8004	7865	7495	7495
q19	10657	1521	1533	1521
q20	2117	1898	1927	1898
q21	4800	4538	4629	4538
q22	534	481	455	455
Total cold run time: 78794 ms
Total hot run time: 54028 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 175255 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 8ff51c7361a6854497cc8b5e972d3a0ae6368cc3, data reload: false

query1	925	336	324	324
query2	6570	1861	1980	1861
query3	6703	210	208	208
query4	31997	22150	22102	22102
query5	4487	407	404	404
query6	244	161	154	154
query7	4599	264	268	264
query8	236	169	181	169
query9	8950	2262	2248	2248
query10	398	209	204	204
query11	18300	15397	15370	15370
query12	117	67	63	63
query13	1608	373	357	357
query14	10118	7438	7490	7438
query15	261	171	180	171
query16	7337	270	258	258
query17	1877	469	477	469
query18	1933	251	251	251
query19	202	133	134	133
query20	70	72	70	70
query21	197	135	129	129
query22	4858	4665	4739	4665
query23	31206	30288	30370	30288
query24	7415	2808	2775	2775
query25	512	325	305	305
query26	736	142	137	137
query27	2248	279	280	279
query28	5186	1855	1835	1835
query29	948	620	605	605
query30	284	130	136	130
query31	917	699	701	699
query32	93	52	50	50
query33	456	211	208	208
query34	823	456	459	456
query35	847	777	767	767
query36	1296	1205	1233	1205
query37	98	58	57	57
query38	3255	3153	3115	3115
query39	1299	1259	1246	1246
query40	193	86	83	83
query41	36	34	33	33
query42	99	82	88	82
query43	489	476	468	468
query44	1034	678	690	678
query45	194	182	175	175
query46	1040	637	640	637
query47	1526	1547	1437	1437
query48	392	298	339	298
query49	1127	277	277	277
query50	674	307	314	307
query51	5247	5134	5102	5102
query52	91	84	77	77
query53	327	262	275	262
query54	217	183	190	183
query55	82	78	74	74
query56	185	162	162	162
query57	954	906	895	895
query58	183	163	156	156
query59	2518	2303	2268	2268
query60	201	180	176	176
query61	86	86	83	83
query62	609	357	352	352
query63	263	267	269	267
query64	4689	3767	3311	3311
query65	3255	3239	3236	3236
query66	942	328	310	310
query67	14210	14115	14094	14094
query68	4521	496	490	490
query69	445	317	297	297
query70	1578	1577	1546	1546
query71	296	221	210	210
query72	5708	3114	2827	2827
query73	693	318	315	315
query74	6674	6202	6139	6139
query75	2955	2265	2311	2265
query76	2565	1013	908	908
query77	357	233	231	231
query78	9419	8732	8661	8661
query79	2055	494	511	494
query80	1255	312	310	310
query81	504	196	195	195
query82	642	79	79	79
query83	211	123	117	117
query84	233	73	74	73
query85	1802	327	310	310
query86	491	379	374	374
query87	3416	3268	3229	3229
query88	3793	2265	2246	2246
query89	440	354	351	351
query90	1910	189	189	189
query91	143	117	115	115
query92	59	51	44	44
query93	2646	416	406	406
query94	1280	161	155	155
query95	513	456	454	454
query96	622	321	327	321
query97	4282	4088	4094	4088
query98	208	201	180	180
query99	963	684	692	684
Total cold run time: 273148 ms
Total hot run time: 175255 ms

@doris-robot
Copy link

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

query1	0.04	0.03	0.02
query2	0.06	0.02	0.03
query3	0.23	0.06	0.06
query4	1.68	0.10	0.10
query5	0.53	0.51	0.52
query6	1.18	0.64	0.64
query7	0.02	0.01	0.02
query8	0.04	0.03	0.03
query9	0.55	0.49	0.49
query10	0.56	0.57	0.54
query11	0.12	0.09	0.08
query12	0.11	0.10	0.09
query13	0.60	0.62	0.60
query14	0.77	0.79	0.80
query15	0.78	0.77	0.78
query16	0.40	0.36	0.39
query17	0.99	1.02	1.01
query18	0.24	0.26	0.25
query19	1.78	1.76	1.71
query20	0.01	0.02	0.02
query21	15.42	0.60	0.57
query22	2.29	2.70	1.56
query23	17.34	0.84	0.86
query24	2.45	1.05	1.44
query25	0.34	0.25	0.08
query26	0.58	0.14	0.13
query27	0.04	0.05	0.06
query28	11.72	0.86	0.84
query29	12.60	3.22	3.11
query30	0.61	0.53	0.53
query31	2.78	0.35	0.36
query32	3.36	0.49	0.47
query33	3.23	3.24	3.22
query34	15.75	4.30	4.27
query35	4.34	4.25	4.29
query36	1.08	1.06	1.06
query37	0.06	0.05	0.05
query38	0.04	0.03	0.03
query39	0.03	0.01	0.01
query40	0.16	0.13	0.13
query41	0.08	0.01	0.02
query42	0.02	0.01	0.02
query43	0.02	0.02	0.02
Total cold run time: 105.03 s
Total hot run time: 30.74 s

@doris-robot
Copy link

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

Load test result on commit 8ff51c7361a6854497cc8b5e972d3a0ae6368cc3 with default session variables
Stream load json:         18 seconds loaded 2358488459 Bytes, about 124 MB/s
Stream load orc:          58 seconds loaded 1101869774 Bytes, about 18 MB/s
Stream load parquet:      32 seconds loaded 861443392 Bytes, about 25 MB/s
Insert into select:       14.2 seconds inserted 10000000 Rows, about 704K ops/s

@BiteTheDDDDt BiteTheDDDDt merged commit 1e03aac into apache:master Jan 31, 2024
25 of 28 checks passed
@mrhhsg mrhhsg deleted the fix_mark_join branch January 31, 2024 10:07
yiguolei pushed a commit that referenced this pull request Jan 31, 2024
yiguolei pushed a commit that referenced this pull request Jan 31, 2024
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. reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants