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

[Performance](Variant) Improve load performance for variant type #33890

Merged
merged 5 commits into from
May 11, 2024

Conversation

eldenmoon
Copy link
Member

@eldenmoon eldenmoon commented Apr 19, 2024

  1. remove phmap for padding rows
  2. add SimpleFieldVisitorToScarlarType for short circuit type deducing
  3. correct type coercion for conflict types bettween integers
  4. improve nullable column performance
  5. remove shared_ptr dependancy for DataType use TypeIndex instead
  6. Optimization by caching the order of fields (which is almost always the same)
    and a quick check to match the next expected field, instead of searching the hash table.

In clickbench data, load performance:
12m36.799s ->7m10.934s about 43% latency reduce

In variant_p2/performance.groovy:
3min44s20 -> 1min15s80 about 66% latency reducy

Proposed changes

Issue Number: close #xxx

Further comments

If this is a relatively large or complex change, kick off the discussion at [email protected] by explaining why you chose the solution you did and what alternatives you considered, etc...

1. remove phmap for padding rows
2. add `SimpleFieldVisitorToScarlarType` for short circuit type deducint
3. correct type coercion for conflict types bettween integers

In clickbench data, load performance:
12m36.799s -> 8m30.870s about 32.5%

In variant_p2/performance.groovy:
3min44s20 -> 2min21s07 about 36.7%
@doris-robot
Copy link

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR

Since 2024-03-18, the Document has been moved to doris-website.
See Doris Document.

@eldenmoon
Copy link
Member 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

be/src/vec/columns/column_object.cpp Show resolved Hide resolved
@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.40% (8922/25200)
Line Coverage: 27.12% (73307/270318)
Region Coverage: 26.24% (37858/144287)
Branch Coverage: 23.05% (19286/83654)
Coverage Report: http://coverage.selectdb-in.cc/coverage/4d9f699ea352964bd70feb230896f7b174c376d2_4d9f699ea352964bd70feb230896f7b174c376d2/report/index.html

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17614	4745	4543	4543
q2	1985	179	182	179
q3	10470	1122	1193	1122
q4	10191	844	869	844
q5	7513	2687	2595	2595
q6	215	129	132	129
q7	998	618	587	587
q8	9220	2082	2053	2053
q9	7351	6663	6549	6549
q10	8569	3580	3498	3498
q11	444	231	234	231
q12	416	228	216	216
q13	17893	2945	2944	2944
q14	277	232	225	225
q15	523	475	477	475
q16	523	402	379	379
q17	986	699	676	676
q18	7406	6782	6861	6782
q19	7090	1556	1536	1536
q20	644	313	310	310
q21	3467	2672	2767	2672
q22	357	301	304	301
Total cold run time: 114152 ms
Total hot run time: 38846 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4366	4252	4228	4228
q2	369	252	274	252
q3	3031	2757	2723	2723
q4	1823	1552	1575	1552
q5	5376	5364	5303	5303
q6	209	123	122	122
q7	2224	1886	1882	1882
q8	3221	3334	3396	3334
q9	8619	8597	8667	8597
q10	3941	3661	3724	3661
q11	577	484	499	484
q12	776	588	587	587
q13	16386	2976	2920	2920
q14	295	268	274	268
q15	507	481	473	473
q16	464	428	420	420
q17	1789	1469	1469	1469
q18	8154	8028	8110	8028
q19	1703	1596	1590	1590
q20	2024	1839	1886	1839
q21	5019	4985	4972	4972
q22	531	463	464	463
Total cold run time: 71404 ms
Total hot run time: 55167 ms

Copy link
Member

@airborne12 airborne12 left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

PR approved by anyone and no changes requested.

@eldenmoon
Copy link
Member Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17606	4415	4303	4303
q2	2010	205	188	188
q3	10423	1199	1125	1125
q4	10203	837	781	781
q5	7480	2700	2693	2693
q6	222	132	133	132
q7	1019	618	615	615
q8	9250	2087	2055	2055
q9	7375	6587	6523	6523
q10	8512	3551	3536	3536
q11	438	232	228	228
q12	440	223	215	215
q13	17770	2936	2976	2936
q14	264	216	242	216
q15	535	478	476	476
q16	522	384	381	381
q17	984	662	683	662
q18	7379	6810	6748	6748
q19	4801	1552	1440	1440
q20	635	321	307	307
q21	3469	2723	2868	2723
q22	363	304	311	304
Total cold run time: 111700 ms
Total hot run time: 38587 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4304	4200	4245	4200
q2	366	269	270	269
q3	2967	2721	2750	2721
q4	1862	1593	1597	1593
q5	5331	5325	5319	5319
q6	209	124	124	124
q7	2290	1883	1876	1876
q8	3209	3384	3383	3383
q9	8540	8558	8557	8557
q10	4079	3900	3915	3900
q11	633	515	506	506
q12	795	641	639	639
q13	17338	3238	3140	3140
q14	315	284	275	275
q15	557	481	486	481
q16	492	445	448	445
q17	1817	1538	1482	1482
q18	8089	8062	7847	7847
q19	1671	1548	1571	1548
q20	2042	1856	1870	1856
q21	5125	5014	4935	4935
q22	524	477	466	466
Total cold run time: 72555 ms
Total hot run time: 55562 ms

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.34% (8913/25220)
Line Coverage: 27.08% (73296/270648)
Region Coverage: 26.21% (37855/144434)
Branch Coverage: 23.03% (19278/83714)
Coverage Report: http://coverage.selectdb-in.cc/coverage/fb359af84fa704d410398045b851e90f827e1498_fb359af84fa704d410398045b851e90f827e1498/report/index.html

@doris-robot
Copy link

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

query1	894	383	366	366
query2	6193	2795	2644	2644
query3	6658	205	208	205
query4	25405	21258	21214	21214
query5	4185	403	410	403
query6	278	183	177	177
query7	4588	296	287	287
query8	247	189	187	187
query9	8513	2318	2310	2310
query10	426	251	253	251
query11	14662	14221	14104	14104
query12	127	84	83	83
query13	1621	363	361	361
query14	9827	7523	7564	7523
query15	279	181	184	181
query16	8137	250	250	250
query17	1939	560	556	556
query18	2089	270	287	270
query19	194	146	147	146
query20	91	82	82	82
query21	202	124	125	124
query22	5108	4853	4750	4750
query23	33680	33072	33440	33072
query24	8586	3127	3123	3123
query25	577	399	394	394
query26	725	162	160	160
query27	2283	370	372	370
query28	5900	2081	2130	2081
query29	883	615	616	615
query30	274	185	179	179
query31	986	765	763	763
query32	95	52	53	52
query33	590	253	247	247
query34	906	494	494	494
query35	805	712	713	712
query36	1081	947	912	912
query37	111	73	68	68
query38	3474	3413	3275	3275
query39	1611	1704	1587	1587
query40	172	132	124	124
query41	65	41	43	41
query42	98	101	96	96
query43	577	552	565	552
query44	1102	739	742	739
query45	281	257	262	257
query46	1125	750	787	750
query47	2063	1921	1928	1921
query48	376	301	304	301
query49	849	402	397	397
query50	784	387	399	387
query51	6949	6792	6668	6668
query52	98	91	86	86
query53	345	276	277	276
query54	259	231	230	230
query55	76	76	75	75
query56	243	229	245	229
query57	1196	1166	1130	1130
query58	225	222	187	187
query59	3477	3332	3448	3332
query60	243	227	231	227
query61	87	86	87	86
query62	572	444	442	442
query63	299	292	276	276
query64	4715	3975	3979	3975
query65	3064	3035	3016	3016
query66	748	330	321	321
query67	15550	14793	14833	14793
query68	5121	532	535	532
query69	526	303	300	300
query70	1275	1127	1097	1097
query71	1363	1260	1271	1260
query72	6671	2597	2416	2416
query73	694	316	315	315
query74	6716	6452	6429	6429
query75	3350	2642	2672	2642
query76	3173	950	899	899
query77	587	264	264	264
query78	10972	10107	10132	10107
query79	5649	526	516	516
query80	1780	447	442	442
query81	533	239	243	239
query82	1098	104	95	95
query83	317	163	164	163
query84	269	85	84	84
query85	1691	258	259	258
query86	481	311	291	291
query87	3481	3306	3226	3226
query88	4627	2347	2344	2344
query89	486	372	368	368
query90	1861	184	186	184
query91	125	96	97	96
query92	62	46	45	45
query93	5765	514	520	514
query94	1145	177	175	175
query95	387	292	307	292
query96	586	266	260	260
query97	3167	2928	2919	2919
query98	288	211	216	211
query99	1208	820	831	820
Total cold run time: 285322 ms
Total hot run time: 185295 ms

@doris-robot
Copy link

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

query1	0.04	0.03	0.04
query2	0.08	0.04	0.04
query3	0.23	0.06	0.05
query4	1.64	0.09	0.09
query5	0.50	0.49	0.52
query6	1.50	0.72	0.72
query7	0.02	0.02	0.01
query8	0.06	0.04	0.04
query9	0.55	0.50	0.50
query10	0.56	0.55	0.54
query11	0.17	0.12	0.11
query12	0.14	0.12	0.13
query13	0.61	0.58	0.59
query14	0.78	0.77	0.79
query15	0.84	0.81	0.81
query16	0.37	0.37	0.37
query17	0.95	0.94	0.98
query18	0.21	0.24	0.22
query19	1.73	1.67	1.73
query20	0.02	0.01	0.01
query21	15.41	0.64	0.63
query22	4.44	7.33	2.00
query23	18.30	1.36	1.26
query24	1.52	0.31	0.24
query25	0.14	0.10	0.08
query26	0.25	0.16	0.16
query27	0.08	0.08	0.07
query28	13.29	1.00	0.98
query29	12.54	3.26	3.25
query30	0.26	0.06	0.05
query31	2.86	0.39	0.40
query32	3.24	0.46	0.46
query33	2.81	2.81	2.77
query34	17.30	4.41	4.43
query35	4.47	4.49	4.51
query36	0.65	0.49	0.46
query37	0.20	0.15	0.15
query38	0.16	0.14	0.14
query39	0.05	0.04	0.04
query40	0.17	0.13	0.14
query41	0.09	0.05	0.04
query42	0.05	0.05	0.05
query43	0.04	0.04	0.04
Total cold run time: 109.32 s
Total hot run time: 30.4 s

@eldenmoon
Copy link
Member Author

run buildall

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.35% (8916/25220)
Line Coverage: 27.09% (73311/270660)
Region Coverage: 26.21% (37864/144447)
Branch Coverage: 23.03% (19282/83724)
Coverage Report: http://coverage.selectdb-in.cc/coverage/ad1185529a3527f756779c6d93800772c93c32a0_ad1185529a3527f756779c6d93800772c93c32a0/report/index.html

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17611	4361	4260	4260
q2	2013	187	183	183
q3	10650	1201	1173	1173
q4	10194	778	819	778
q5	7500	2678	2631	2631
q6	220	133	134	133
q7	1012	617	582	582
q8	9268	2069	2042	2042
q9	7593	6655	6635	6635
q10	8504	3577	3549	3549
q11	455	239	232	232
q12	459	218	210	210
q13	17879	2937	3035	2937
q14	269	231	224	224
q15	530	497	487	487
q16	513	389	381	381
q17	972	637	731	637
q18	7397	6812	6700	6700
q19	10046	1606	1499	1499
q20	890	339	321	321
q21	3546	2830	2832	2830
q22	379	311	334	311
Total cold run time: 117900 ms
Total hot run time: 38735 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4550	4411	4406	4406
q2	421	279	276	276
q3	3139	2913	2921	2913
q4	1952	1683	1640	1640
q5	5575	5412	5352	5352
q6	213	124	122	122
q7	2216	1880	1900	1880
q8	3233	3413	3334	3334
q9	8570	8530	8834	8530
q10	4070	4024	3922	3922
q11	598	496	487	487
q12	816	664	654	654
q13	16349	3269	3184	3184
q14	321	296	298	296
q15	522	503	479	479
q16	501	450	432	432
q17	1828	1511	1508	1508
q18	8171	7952	7668	7668
q19	2759	1587	1563	1563
q20	2136	1826	1829	1826
q21	9043	4968	4982	4968
q22	543	477	490	477
Total cold run time: 77526 ms
Total hot run time: 55917 ms

@doris-robot
Copy link

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

query1	897	367	361	361
query2	6169	2647	2400	2400
query3	6644	205	204	204
query4	23038	21402	21517	21402
query5	4117	408	413	408
query6	262	175	173	173
query7	4577	286	292	286
query8	234	199	178	178
query9	8558	2351	2311	2311
query10	401	230	245	230
query11	14827	14185	14221	14185
query12	134	91	86	86
query13	1632	353	358	353
query14	9807	7925	7557	7557
query15	278	180	187	180
query16	8187	270	271	270
query17	1908	586	550	550
query18	2108	286	279	279
query19	272	157	154	154
query20	94	86	85	85
query21	204	130	121	121
query22	4994	4827	4784	4784
query23	33721	33336	33364	33336
query24	11080	3045	2955	2955
query25	631	404	401	401
query26	1229	163	156	156
query27	3086	371	380	371
query28	7363	2083	2063	2063
query29	892	654	607	607
query30	266	180	179	179
query31	978	772	772	772
query32	98	56	57	56
query33	768	264	274	264
query34	1146	488	515	488
query35	856	717	691	691
query36	1083	943	911	911
query37	137	71	80	71
query38	3498	3386	3333	3333
query39	1621	1570	1614	1570
query40	188	132	126	126
query41	46	44	46	44
query42	101	98	94	94
query43	580	547	550	547
query44	1257	740	743	740
query45	280	283	284	283
query46	1120	736	752	736
query47	2036	1963	1958	1958
query48	376	310	302	302
query49	879	408	409	408
query50	788	396	407	396
query51	6856	6809	6814	6809
query52	98	92	83	83
query53	346	277	279	277
query54	289	229	227	227
query55	78	72	69	69
query56	241	228	229	228
query57	1212	1188	1084	1084
query58	214	194	193	193
query59	3345	3076	2980	2980
query60	248	229	221	221
query61	87	81	84	81
query62	596	444	433	433
query63	306	279	273	273
query64	5244	3986	3812	3812
query65	3040	3017	2997	2997
query66	747	331	341	331
query67	15703	15016	14818	14818
query68	10596	547	537	537
query69	612	297	307	297
query70	1403	1195	1158	1158
query71	1516	1265	1260	1260
query72	7058	2573	2449	2449
query73	1600	316	320	316
query74	6937	6511	6383	6383
query75	4992	2650	2675	2650
query76	5936	974	982	974
query77	653	257	256	256
query78	11120	10209	10310	10209
query79	10980	527	513	513
query80	2360	433	427	427
query81	522	249	239	239
query82	242	98	98	98
query83	219	164	158	158
query84	263	84	81	81
query85	1138	263	257	257
query86	335	283	311	283
query87	3460	3283	3282	3282
query88	5201	2325	2322	2322
query89	504	376	367	367
query90	2416	176	179	176
query91	120	92	118	92
query92	58	44	45	44
query93	6951	499	495	495
query94	1522	178	176	176
query95	386	301	308	301
query96	661	268	262	262
query97	3128	2935	2936	2935
query98	240	210	210	210
query99	1055	849	849	849
Total cold run time: 308280 ms
Total hot run time: 185387 ms

@doris-robot
Copy link

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

query1	0.03	0.03	0.03
query2	0.08	0.04	0.04
query3	0.23	0.04	0.05
query4	1.70	0.08	0.07
query5	0.49	0.48	0.48
query6	1.48	0.72	0.72
query7	0.02	0.01	0.02
query8	0.04	0.04	0.04
query9	0.55	0.51	0.49
query10	0.55	0.56	0.55
query11	0.15	0.11	0.12
query12	0.15	0.12	0.12
query13	0.61	0.60	0.59
query14	0.75	0.79	0.76
query15	0.84	0.81	0.81
query16	0.38	0.37	0.36
query17	0.96	0.94	0.99
query18	0.22	0.24	0.24
query19	1.79	1.66	1.68
query20	0.01	0.01	0.01
query21	15.40	0.65	0.65
query22	4.08	7.51	2.40
query23	18.34	1.45	1.31
query24	1.62	0.28	0.22
query25	0.13	0.09	0.09
query26	0.25	0.16	0.17
query27	0.08	0.07	0.08
query28	13.41	1.00	0.98
query29	12.60	3.25	3.26
query30	0.25	0.06	0.05
query31	2.85	0.38	0.37
query32	3.29	0.46	0.46
query33	2.84	2.85	2.80
query34	16.88	4.39	4.42
query35	4.48	4.47	4.51
query36	0.65	0.46	0.46
query37	0.18	0.15	0.15
query38	0.14	0.14	0.14
query39	0.05	0.04	0.03
query40	0.17	0.13	0.17
query41	0.10	0.05	0.05
query42	0.05	0.04	0.04
query43	0.04	0.04	0.05
Total cold run time: 108.91 s
Total hot run time: 30.78 s

@eldenmoon
Copy link
Member Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17599	4681	4280	4280
q2	2023	184	182	182
q3	10455	1169	1164	1164
q4	10189	797	830	797
q5	7491	2721	2657	2657
q6	216	133	133	133
q7	1015	607	574	574
q8	9227	2058	2043	2043
q9	7224	6602	6550	6550
q10	8540	3562	3539	3539
q11	450	226	227	226
q12	401	220	217	217
q13	17772	2966	2945	2945
q14	261	223	224	223
q15	515	484	488	484
q16	530	376	367	367
q17	974	648	657	648
q18	7285	6791	6793	6791
q19	7920	1546	1493	1493
q20	635	312	288	288
q21	3392	2716	2684	2684
q22	355	299	319	299
Total cold run time: 114469 ms
Total hot run time: 38584 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4294	4184	4193	4184
q2	375	270	269	269
q3	2964	2730	2747	2730
q4	1871	1599	1587	1587
q5	5287	5298	5306	5298
q6	209	121	126	121
q7	2270	1877	1876	1876
q8	3175	3418	3335	3335
q9	8486	8570	8690	8570
q10	4102	3891	4021	3891
q11	600	512	497	497
q12	810	640	650	640
q13	16842	3207	3123	3123
q14	306	299	308	299
q15	531	480	472	472
q16	495	449	466	449
q17	1851	1533	1504	1504
q18	8308	8150	7750	7750
q19	1667	1530	1664	1530
q20	2069	1867	1824	1824
q21	9304	4957	4947	4947
q22	555	477	478	477
Total cold run time: 76371 ms
Total hot run time: 55373 ms

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.35% (8916/25219)
Line Coverage: 27.09% (73318/270651)
Region Coverage: 26.23% (37881/144436)
Branch Coverage: 23.04% (19287/83720)
Coverage Report: http://coverage.selectdb-in.cc/coverage/b2e90a7fc1d05b98098f69d9da7854f5d1f429d7_b2e90a7fc1d05b98098f69d9da7854f5d1f429d7/report/index.html

@doris-robot
Copy link

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

query1	893	390	358	358
query2	6182	2541	2427	2427
query3	6660	218	210	210
query4	23322	21325	21382	21325
query5	4150	406	427	406
query6	273	187	179	179
query7	4582	285	286	285
query8	259	188	177	177
query9	8404	2283	2268	2268
query10	409	239	262	239
query11	14788	14266	14159	14159
query12	136	89	87	87
query13	1630	362	364	362
query14	9313	7198	7592	7198
query15	241	177	183	177
query16	8066	255	256	255
query17	1932	545	545	545
query18	2066	276	263	263
query19	193	146	147	146
query20	91	86	84	84
query21	195	124	123	123
query22	4987	4828	4812	4812
query23	33818	33239	33159	33159
query24	10984	2997	3089	2997
query25	596	377	372	372
query26	724	158	161	158
query27	2427	365	397	365
query28	6055	2046	2068	2046
query29	869	623	612	612
query30	295	182	182	182
query31	1008	765	765	765
query32	88	50	53	50
query33	695	267	253	253
query34	1000	507	498	498
query35	842	716	705	705
query36	1110	902	932	902
query37	118	73	73	73
query38	3432	3394	3307	3307
query39	1645	1566	1585	1566
query40	181	132	130	130
query41	48	47	48	47
query42	108	100	103	100
query43	564	559	545	545
query44	1154	747	756	747
query45	299	276	269	269
query46	1091	778	743	743
query47	2065	1909	1948	1909
query48	389	300	310	300
query49	854	414	418	414
query50	819	410	397	397
query51	6827	6806	6805	6805
query52	107	88	89	88
query53	347	276	274	274
query54	308	238	244	238
query55	75	70	72	70
query56	247	240	234	234
query57	1188	1116	1127	1116
query58	233	198	200	198
query59	3271	3121	3323	3121
query60	247	227	224	224
query61	87	86	85	85
query62	604	441	455	441
query63	300	271	278	271
query64	4798	3957	3928	3928
query65	3078	3029	3036	3029
query66	749	322	323	322
query67	15214	14859	14978	14859
query68	5977	533	543	533
query69	526	308	309	308
query70	1247	1139	1240	1139
query71	1462	1264	1263	1263
query72	6475	2585	2478	2478
query73	719	323	320	320
query74	6835	6387	6466	6387
query75	3804	2706	2629	2629
query76	4263	1000	1015	1000
query77	585	266	265	265
query78	10853	10143	10126	10126
query79	8550	517	513	513
query80	1950	432	433	432
query81	525	241	238	238
query82	1629	97	97	97
query83	334	168	163	163
query84	249	85	81	81
query85	1374	302	260	260
query86	451	293	312	293
query87	3444	3243	3217	3217
query88	4916	2397	2417	2397
query89	557	374	374	374
query90	1906	176	177	176
query91	122	92	95	92
query92	59	46	47	46
query93	7207	490	499	490
query94	1050	174	177	174
query95	382	293	300	293
query96	604	270	264	264
query97	3140	2973	2942	2942
query98	235	216	213	213
query99	1253	860	882	860
Total cold run time: 292413 ms
Total hot run time: 185062 ms

@doris-robot
Copy link

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

query1	0.04	0.04	0.02
query2	0.08	0.04	0.04
query3	0.23	0.04	0.06
query4	1.68	0.07	0.09
query5	0.48	0.48	0.50
query6	1.49	0.72	0.72
query7	0.02	0.02	0.01
query8	0.05	0.04	0.04
query9	0.55	0.50	0.49
query10	0.54	0.55	0.53
query11	0.16	0.11	0.11
query12	0.14	0.12	0.12
query13	0.59	0.58	0.57
query14	0.75	0.77	0.77
query15	0.82	0.81	0.81
query16	0.37	0.36	0.37
query17	1.01	1.00	1.01
query18	0.20	0.28	0.25
query19	1.84	1.69	1.82
query20	0.02	0.01	0.01
query21	15.39	0.68	0.66
query22	4.20	7.29	1.72
query23	18.28	1.41	1.21
query24	1.85	0.28	0.21
query25	0.13	0.09	0.08
query26	0.25	0.16	0.16
query27	0.08	0.09	0.08
query28	13.24	1.00	0.98
query29	12.60	3.26	3.23
query30	0.27	0.07	0.06
query31	2.84	0.38	0.37
query32	3.30	0.46	0.46
query33	2.85	2.84	2.89
query34	17.41	4.39	4.38
query35	4.45	4.45	4.50
query36	0.66	0.46	0.46
query37	0.19	0.15	0.15
query38	0.16	0.15	0.14
query39	0.05	0.04	0.04
query40	0.18	0.14	0.14
query41	0.09	0.06	0.05
query42	0.06	0.05	0.05
query43	0.04	0.04	0.04
Total cold run time: 109.63 s
Total hot run time: 30.09 s

@eldenmoon
Copy link
Member Author

run p0

@eldenmoon
Copy link
Member 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

@@ -207,8 +266,10 @@ class FieldVisitorToScalarType : public StaticVisitor<size_t> {
type_indexes.insert(TypeId<NearestFieldType<T>>::value);
return 0;
}
void get_scalar_type(DataTypePtr* type) const {
get_least_supertype<LeastSupertypeOnError::Jsonb>(type_indexes, type);
void get_scalar_type(TypeIndex* type) const {
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: method 'get_scalar_type' can be made static [readability-convert-member-functions-to-static]

Suggested change
void get_scalar_type(TypeIndex* type) const {
static void get_scalar_type(TypeIndex* type) {

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.59% (8964/25185)
Line Coverage: 27.24% (73976/271546)
Region Coverage: 26.46% (38214/144409)
Branch Coverage: 23.22% (19464/83812)
Coverage Report: http://coverage.selectdb-in.cc/coverage/9a58c64b3e54c1b29a5425d079b35e1817fe4e1b_9a58c64b3e54c1b29a5425d079b35e1817fe4e1b/report/index.html

@doris-robot
Copy link

TPC-DS: Total hot run time: 186136 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 9a58c64b3e54c1b29a5425d079b35e1817fe4e1b, data reload: false

query1	915	354	348	348
query2	6326	2380	2260	2260
query3	6644	211	209	209
query4	23492	21730	21933	21730
query5	3890	436	429	429
query6	268	180	171	171
query7	4535	299	295	295
query8	244	182	178	178
query9	8420	2432	2479	2432
query10	417	242	246	242
query11	15257	14799	14768	14768
query12	123	88	84	84
query13	1611	369	371	369
query14	9449	8516	6697	6697
query15	243	175	163	163
query16	8213	261	263	261
query17	1899	566	556	556
query18	2106	289	271	271
query19	331	155	154	154
query20	91	86	84	84
query21	190	132	129	129
query22	5036	4888	4813	4813
query23	34020	33296	33257	33257
query24	10741	3018	3002	3002
query25	621	371	382	371
query26	1189	153	147	147
query27	2715	325	314	314
query28	7459	2039	2036	2036
query29	875	611	671	611
query30	239	152	148	148
query31	980	713	701	701
query32	91	51	56	51
query33	734	246	238	238
query34	1032	466	471	466
query35	801	654	659	654
query36	1054	887	896	887
query37	127	65	63	63
query38	3144	3017	2952	2952
query39	1585	1537	1524	1524
query40	200	123	124	123
query41	39	36	35	35
query42	105	94	95	94
query43	559	546	534	534
query44	1204	729	741	729
query45	268	250	243	243
query46	1072	723	735	723
query47	1952	1834	1853	1834
query48	371	290	287	287
query49	856	388	386	386
query50	790	378	373	373
query51	6776	6658	6628	6628
query52	98	94	94	94
query53	349	280	284	280
query54	301	237	235	235
query55	82	74	75	74
query56	240	216	213	213
query57	1206	1130	1141	1130
query58	216	195	212	195
query59	3244	3111	2998	2998
query60	244	225	233	225
query61	91	88	87	87
query62	648	458	454	454
query63	306	281	274	274
query64	8673	7249	7226	7226
query65	3107	3046	3028	3028
query66	856	333	335	333
query67	15773	14851	14849	14849
query68	9396	544	540	540
query69	574	297	292	292
query70	1363	1114	1067	1067
query71	550	263	271	263
query72	8224	2593	2364	2364
query73	1628	321	321	321
query74	6526	6116	6039	6039
query75	5231	2675	2680	2675
query76	5675	1034	966	966
query77	827	265	284	265
query78	10980	10300	10211	10211
query79	12035	516	525	516
query80	1633	425	432	425
query81	506	219	218	218
query82	244	92	91	91
query83	203	161	159	159
query84	264	82	85	82
query85	1069	280	271	271
query86	348	313	296	296
query87	3356	3074	3088	3074
query88	5352	2289	2293	2289
query89	511	381	367	367
query90	2258	185	187	185
query91	122	98	95	95
query92	57	55	49	49
query93	7388	510	495	495
query94	1634	180	185	180
query95	391	299	298	298
query96	621	263	266	263
query97	3172	2947	2960	2947
query98	233	213	216	213
query99	1200	875	871	871
Total cold run time: 310304 ms
Total hot run time: 186136 ms

…he same)

and a quick check to match the next expected field, instead of searching the hash table.
@eldenmoon
Copy link
Member Author

run buildall

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.62% (8969/25183)
Line Coverage: 27.28% (74032/271331)
Region Coverage: 26.52% (38249/144233)
Branch Coverage: 23.32% (19495/83604)
Coverage Report: http://coverage.selectdb-in.cc/coverage/e1cf319bd7c18e8d0a606d108129470560a385a1_e1cf319bd7c18e8d0a606d108129470560a385a1/report/index.html

@doris-robot
Copy link

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

query1	926	366	343	343
query2	6280	2155	2394	2155
query3	6661	206	208	206
query4	23289	21790	21818	21790
query5	3826	444	428	428
query6	263	186	196	186
query7	4549	294	292	292
query8	244	187	193	187
query9	8657	2452	2433	2433
query10	443	254	253	253
query11	15197	14861	14890	14861
query12	124	88	90	88
query13	1665	368	362	362
query14	9603	6710	6717	6710
query15	240	156	159	156
query16	8123	257	248	248
query17	1732	563	542	542
query18	2084	268	272	268
query19	193	145	155	145
query20	91	80	81	80
query21	196	132	128	128
query22	5044	4854	4794	4794
query23	33780	33488	33084	33084
query24	10922	2971	2896	2896
query25	599	364	362	362
query26	1186	150	147	147
query27	2546	312	310	310
query28	6997	2015	2022	2015
query29	861	609	602	602
query30	265	151	152	151
query31	972	731	734	731
query32	92	50	51	50
query33	722	252	245	245
query34	1046	473	474	473
query35	802	659	657	657
query36	1062	918	928	918
query37	140	65	66	65
query38	3118	3049	3012	3012
query39	1576	1555	1529	1529
query40	199	127	126	126
query41	42	38	41	38
query42	127	99	96	96
query43	567	527	511	511
query44	1196	732	734	732
query45	278	248	248	248
query46	1089	722	736	722
query47	1928	1887	1849	1849
query48	367	299	288	288
query49	891	393	398	393
query50	759	381	384	381
query51	6865	6730	6801	6730
query52	98	96	90	90
query53	364	278	285	278
query54	307	228	234	228
query55	79	73	72	72
query56	258	222	216	216
query57	1214	1115	1119	1115
query58	220	194	200	194
query59	3373	2989	3079	2989
query60	278	233	232	232
query61	90	86	86	86
query62	641	471	455	455
query63	302	283	280	280
query64	8600	7284	7230	7230
query65	3138	3055	3109	3055
query66	899	340	331	331
query67	15502	15150	15396	15150
query68	5169	521	513	513
query69	474	296	296	296
query70	1174	1143	1148	1143
query71	417	265	265	265
query72	7723	2535	2362	2362
query73	702	325	314	314
query74	6442	5991	6073	5991
query75	3367	2650	2628	2628
query76	3193	1043	961	961
query77	388	261	266	261
query78	10876	10220	10263	10220
query79	5164	533	544	533
query80	2117	431	500	431
query81	545	222	229	222
query82	905	98	98	98
query83	272	179	173	173
query84	267	88	82	82
query85	2052	266	271	266
query86	496	291	294	291
query87	3294	3063	3114	3063
query88	4854	2346	2337	2337
query89	491	365	375	365
query90	2016	182	184	182
query91	122	95	97	95
query92	63	46	49	46
query93	5243	503	495	495
query94	1193	183	179	179
query95	411	299	306	299
query96	609	265	263	263
query97	3122	2978	2959	2959
query98	243	230	226	226
query99	1229	889	891	889
Total cold run time: 290420 ms
Total hot run time: 186465 ms

@eldenmoon
Copy link
Member Author

run buildall

Copy link
Contributor

github-actions bot commented May 8, 2024

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

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.66% (8980/25185)
Line Coverage: 27.33% (74191/271483)
Region Coverage: 26.56% (38349/144380)
Branch Coverage: 23.38% (19560/83652)
Coverage Report: http://coverage.selectdb-in.cc/coverage/25640de94b619a5cd79bcd8f948ec3bd0ca05006_25640de94b619a5cd79bcd8f948ec3bd0ca05006/report/index.html

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

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

@eldenmoon eldenmoon merged commit f81fc04 into apache:master May 11, 2024
26 of 29 checks passed
@eldenmoon eldenmoon deleted the var-perf branch May 11, 2024 03:31
ByteYue pushed a commit to ByteYue/doris that referenced this pull request May 15, 2024
…che#33890)

1. remove phmap for padding rows
2. add SimpleFieldVisitorToScarlarType for short circuit type deducing
3. correct type coercion for conflict types bettween integers
4. improve nullable column performance
5. remove shared_ptr dependancy for DataType use TypeIndex instead
6. Optimization by caching the order of fields (which is almost always the same)
and a quick check to match the next expected field, instead of searching the hash table.

benchmark:
In clickbench data, load performance:
12m36.799s ->7m10.934s about 43% latency reduce

In variant_p2/performance.groovy:
3min44s20 -> 1min15s80 about 66% latency reducy
yiguolei pushed a commit that referenced this pull request May 18, 2024
)

1. remove phmap for padding rows
2. add SimpleFieldVisitorToScarlarType for short circuit type deducing
3. correct type coercion for conflict types bettween integers
4. improve nullable column performance
5. remove shared_ptr dependancy for DataType use TypeIndex instead
6. Optimization by caching the order of fields (which is almost always the same)
and a quick check to match the next expected field, instead of searching the hash table.

benchmark:
In clickbench data, load performance:
12m36.799s ->7m10.934s about 43% latency reduce

In variant_p2/performance.groovy:
3min44s20 -> 1min15s80 about 66% latency reducy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by one committer. dev/3.0.0-merged reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants