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](memory) Refactor LRU cache policy memory tracking #36235

Merged
merged 3 commits into from
Jun 24, 2024

Conversation

xinyiZzz
Copy link
Contributor

Proposed changes

Fix #35590, CacheManager get CachePolicy should be used lock.

  • Add LRUCachePolicyTrackingAllocator and LRUCachePolicyTrackingManual.
  • tracking memory in LRUCachePolicy::insert, LRUCacheValueBase not need init mem_tracker, so not need to get CachePolicy under lock.

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

@xinyiZzz
Copy link
Contributor Author

run buildall

Copy link
Contributor

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

Copy link
Contributor

@jacktengg jacktengg left a comment

Choose a reason for hiding this comment

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

Should not change apache-orc submodule and be/src/clucene

@xinyiZzz
Copy link
Contributor Author

run buildall

Copy link
Contributor

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

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17618	4491	4317	4317
q2	2035	195	192	192
q3	10466	1122	1229	1122
q4	10186	860	693	693
q5	7475	2695	2639	2639
q6	221	137	134	134
q7	963	607	591	591
q8	9219	2094	2139	2094
q9	9203	6529	6531	6529
q10	8985	3738	3692	3692
q11	459	236	240	236
q12	519	225	227	225
q13	18930	2972	2939	2939
q14	270	229	218	218
q15	520	495	494	494
q16	516	377	387	377
q17	998	654	667	654
q18	8081	7424	7355	7355
q19	1699	1406	1485	1406
q20	642	309	319	309
q21	5039	3265	3946	3265
q22	383	336	337	336
Total cold run time: 114427 ms
Total hot run time: 39817 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4302	4283	4257	4257
q2	367	262	259	259
q3	2968	2824	2742	2742
q4	1895	1604	1617	1604
q5	5258	5295	5287	5287
q6	210	126	127	126
q7	2122	1759	1777	1759
q8	3219	3369	3348	3348
q9	8446	8436	8419	8419
q10	3907	3623	3696	3623
q11	591	508	500	500
q12	786	608	595	595
q13	17447	2968	2997	2968
q14	294	278	252	252
q15	537	474	484	474
q16	462	400	409	400
q17	1774	1506	1490	1490
q18	7566	7625	7387	7387
q19	1717	1674	1585	1585
q20	1997	1787	1776	1776
q21	4830	4795	4726	4726
q22	613	580	534	534
Total cold run time: 71308 ms
Total hot run time: 54111 ms

@doris-robot
Copy link

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

query1	936	384	379	379
query2	6474	2378	2228	2228
query3	6651	205	210	205
query4	19088	17523	17574	17523
query5	4142	475	460	460
query6	262	162	160	160
query7	4601	291	288	288
query8	315	301	307	301
query9	8580	2395	2375	2375
query10	591	287	275	275
query11	10657	10152	9937	9937
query12	132	89	85	85
query13	1639	355	361	355
query14	9067	6130	6304	6130
query15	231	198	191	191
query16	7328	272	272	272
query17	1401	578	527	527
query18	1950	278	283	278
query19	199	158	158	158
query20	89	86	85	85
query21	208	130	127	127
query22	4419	4394	3996	3996
query23	33667	32905	33095	32905
query24	12446	2813	2894	2813
query25	696	355	356	355
query26	1903	152	155	152
query27	3213	320	311	311
query28	7835	2031	2021	2021
query29	1330	626	615	615
query30	283	151	152	151
query31	950	729	771	729
query32	92	53	55	53
query33	787	295	275	275
query34	1009	476	456	456
query35	731	614	632	614
query36	1106	934	963	934
query37	283	68	70	68
query38	2911	2758	2788	2758
query39	858	802	796	796
query40	283	126	126	126
query41	55	52	56	52
query42	119	101	105	101
query43	575	521	526	521
query44	1214	730	742	730
query45	195	159	166	159
query46	1085	713	715	713
query47	1878	1798	1773	1773
query48	386	327	295	295
query49	1202	419	404	404
query50	769	372	382	372
query51	6942	6775	6700	6700
query52	99	91	95	91
query53	354	282	284	282
query54	949	434	433	433
query55	77	80	76	76
query56	280	254	268	254
query57	1159	1039	1039	1039
query58	252	273	241	241
query59	3489	3179	3008	3008
query60	298	272	280	272
query61	100	94	95	94
query62	658	447	460	447
query63	312	294	284	284
query64	9999	2275	1748	1748
query65	3174	3087	3113	3087
query66	1419	336	328	328
query67	15397	14981	14955	14955
query68	4528	533	539	533
query69	460	316	313	313
query70	1194	1142	1127	1127
query71	400	278	267	267
query72	7254	5410	5512	5410
query73	755	323	319	319
query74	5990	5590	5542	5542
query75	3408	2698	2689	2689
query76	2687	968	972	968
query77	468	309	304	304
query78	10694	9867	9833	9833
query79	2517	508	512	508
query80	1096	466	462	462
query81	579	227	224	224
query82	758	105	97	97
query83	238	169	168	168
query84	238	85	85	85
query85	1632	291	285	285
query86	497	317	306	306
query87	3274	3086	3090	3086
query88	4237	2362	2363	2362
query89	494	376	388	376
query90	1775	198	184	184
query91	126	100	101	100
query92	69	48	49	48
query93	1795	506	496	496
query94	1265	199	186	186
query95	404	300	314	300
query96	586	261	262	261
query97	3208	3063	3068	3063
query98	228	206	198	198
query99	1209	864	844	844
Total cold run time: 275842 ms
Total hot run time: 171870 ms

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.44% (8985/24654)
Line Coverage: 28.03% (73679/262902)
Region Coverage: 27.50% (38276/139182)
Branch Coverage: 24.20% (19521/80650)
Coverage Report: http://coverage.selectdb-in.cc/coverage/1bb4f14c1c87bb8972bf9565ec19c30323d92e2b_1bb4f14c1c87bb8972bf9565ec19c30323d92e2b/report/index.html

@doris-robot
Copy link

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

query1	0.05	0.03	0.03
query2	0.08	0.03	0.04
query3	0.23	0.06	0.05
query4	1.67	0.08	0.10
query5	0.50	0.50	0.49
query6	1.11	0.72	0.73
query7	0.02	0.02	0.01
query8	0.05	0.05	0.04
query9	0.54	0.50	0.48
query10	0.54	0.55	0.55
query11	0.15	0.12	0.11
query12	0.16	0.13	0.12
query13	0.59	0.58	0.59
query14	0.81	0.79	0.77
query15	0.84	0.81	0.82
query16	0.38	0.36	0.36
query17	0.95	0.97	0.96
query18	0.23	0.23	0.26
query19	1.80	1.84	1.66
query20	0.01	0.01	0.01
query21	15.44	0.63	0.64
query22	5.08	5.94	2.37
query23	18.26	1.29	1.17
query24	2.09	0.21	0.21
query25	0.15	0.08	0.08
query26	0.26	0.17	0.18
query27	0.08	0.09	0.07
query28	13.27	1.04	0.99
query29	12.62	3.27	3.23
query30	0.26	0.06	0.06
query31	2.88	0.39	0.38
query32	3.26	0.47	0.47
query33	2.86	2.96	2.89
query34	17.18	4.42	4.50
query35	4.47	4.46	4.44
query36	0.65	0.47	0.46
query37	0.18	0.15	0.15
query38	0.16	0.14	0.14
query39	0.04	0.03	0.03
query40	0.18	0.15	0.15
query41	0.09	0.04	0.05
query42	0.07	0.05	0.04
query43	0.04	0.04	0.04
Total cold run time: 110.28 s
Total hot run time: 30.72 s

Copy link
Contributor

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

@xinyiZzz
Copy link
Contributor Author

run buildall

Copy link
Contributor

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

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17835	4608	4407	4407
q2	2614	191	198	191
q3	11482	1150	1087	1087
q4	11761	987	911	911
q5	7649	2752	2677	2677
q6	228	138	137	137
q7	963	622	596	596
q8	9215	2093	2096	2093
q9	8949	6531	6472	6472
q10	8988	3751	3699	3699
q11	457	234	234	234
q12	399	238	228	228
q13	17779	3026	3002	3002
q14	279	229	230	229
q15	510	478	467	467
q16	520	383	379	379
q17	984	744	662	662
q18	8054	7557	7339	7339
q19	6770	1442	1444	1442
q20	647	304	322	304
q21	4834	3910	3262	3262
q22	393	348	340	340
Total cold run time: 121310 ms
Total hot run time: 40158 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4421	4270	4259	4259
q2	371	265	274	265
q3	2994	2686	2754	2686
q4	1875	1584	1595	1584
q5	5248	5301	5281	5281
q6	210	126	130	126
q7	2140	1758	1756	1756
q8	3214	3363	3381	3363
q9	8364	8321	8331	8321
q10	3867	3712	3687	3687
q11	576	496	496	496
q12	787	599	599	599
q13	16333	3026	2974	2974
q14	299	267	270	267
q15	528	482	484	482
q16	477	410	413	410
q17	1782	1469	1470	1469
q18	7726	7675	7387	7387
q19	1715	1622	1576	1576
q20	1998	1820	1757	1757
q21	4910	4597	4671	4597
q22	608	574	554	554
Total cold run time: 70443 ms
Total hot run time: 53896 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 173181 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 4d78d7bec376021b63f48a8b74eecb1a67cb3337, data reload: false

query1	925	380	372	372
query2	6458	2467	2458	2458
query3	6653	210	224	210
query4	23706	17252	17305	17252
query5	4150	485	465	465
query6	245	173	164	164
query7	4590	306	300	300
query8	320	291	296	291
query9	8463	2409	2367	2367
query10	622	308	285	285
query11	10540	9884	9928	9884
query12	139	93	83	83
query13	1648	389	392	389
query14	10151	7000	7311	7000
query15	245	182	186	182
query16	7741	273	263	263
query17	1925	548	533	533
query18	1768	279	274	274
query19	200	166	151	151
query20	90	83	80	80
query21	208	131	135	131
query22	4364	4348	4088	4088
query23	33457	32965	33046	32965
query24	11855	2852	2807	2807
query25	629	350	356	350
query26	1693	153	149	149
query27	2939	315	323	315
query28	7148	2070	2053	2053
query29	1048	627	590	590
query30	282	152	149	149
query31	957	709	784	709
query32	89	53	54	53
query33	772	282	272	272
query34	986	476	461	461
query35	737	612	615	612
query36	1107	914	951	914
query37	155	70	67	67
query38	2891	2735	2742	2735
query39	836	776	802	776
query40	287	125	122	122
query41	58	57	55	55
query42	128	98	109	98
query43	587	523	515	515
query44	1199	730	728	728
query45	195	167	168	167
query46	1083	740	715	715
query47	1846	1806	1795	1795
query48	369	306	301	301
query49	1281	417	431	417
query50	759	379	390	379
query51	6845	6753	6678	6678
query52	103	97	91	91
query53	360	281	281	281
query54	892	455	439	439
query55	77	73	76	73
query56	271	259	247	247
query57	1154	1062	1081	1062
query58	255	228	238	228
query59	3426	3023	3126	3023
query60	287	268	292	268
query61	91	88	93	88
query62	658	437	475	437
query63	318	283	286	283
query64	9880	2250	1742	1742
query65	3172	3104	3101	3101
query66	1351	345	326	326
query67	15566	14785	14949	14785
query68	4622	556	546	546
query69	609	413	358	358
query70	1125	1162	1152	1152
query71	403	274	277	274
query72	7736	6360	5974	5974
query73	755	330	330	330
query74	5878	5489	5515	5489
query75	3477	2627	2630	2627
query76	3075	892	925	892
query77	663	303	294	294
query78	10532	9816	9827	9816
query79	3751	514	516	514
query80	1489	489	486	486
query81	573	223	222	222
query82	1438	111	102	102
query83	232	182	181	181
query84	280	89	93	89
query85	1660	343	329	329
query86	476	334	286	286
query87	3298	3106	3062	3062
query88	4262	2467	2451	2451
query89	491	382	377	377
query90	1806	192	195	192
query91	139	111	111	111
query92	66	49	51	49
query93	4708	532	512	512
query94	1252	195	202	195
query95	413	314	328	314
query96	605	280	266	266
query97	3230	3012	3015	3012
query98	345	238	197	197
query99	1430	855	839	839
Total cold run time: 286049 ms
Total hot run time: 173181 ms

@doris-robot
Copy link

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

query1	0.04	0.04	0.03
query2	0.08	0.04	0.04
query3	0.23	0.05	0.06
query4	1.67	0.07	0.08
query5	0.52	0.49	0.50
query6	1.14	0.73	0.73
query7	0.02	0.01	0.01
query8	0.06	0.04	0.05
query9	0.54	0.48	0.48
query10	0.55	0.54	0.53
query11	0.14	0.11	0.11
query12	0.15	0.11	0.11
query13	0.60	0.59	0.60
query14	0.78	0.78	0.78
query15	0.85	0.81	0.80
query16	0.37	0.36	0.36
query17	1.05	0.98	1.01
query18	0.22	0.26	0.25
query19	1.77	1.75	1.73
query20	0.01	0.00	0.01
query21	15.42	0.65	0.65
query22	4.38	6.94	2.10
query23	18.30	1.43	1.27
query24	2.13	0.21	0.20
query25	0.16	0.09	0.10
query26	0.25	0.17	0.17
query27	0.08	0.08	0.07
query28	13.23	1.02	1.01
query29	12.63	3.23	3.24
query30	0.26	0.06	0.06
query31	2.89	0.39	0.39
query32	3.27	0.48	0.47
query33	2.88	2.87	2.87
query34	16.98	4.42	4.40
query35	4.47	4.49	4.49
query36	0.64	0.48	0.48
query37	0.17	0.15	0.14
query38	0.14	0.14	0.14
query39	0.04	0.03	0.04
query40	0.17	0.14	0.14
query41	0.10	0.04	0.04
query42	0.05	0.05	0.05
query43	0.04	0.04	0.04
Total cold run time: 109.47 s
Total hot run time: 30.71 s

@xinyiZzz
Copy link
Contributor Author

run buildall

Copy link
Contributor

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

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17928	4570	4316	4316
q2	2039	197	199	197
q3	10523	1183	1163	1163
q4	10225	791	810	791
q5	7466	2736	2583	2583
q6	225	137	136	136
q7	976	623	608	608
q8	9221	2112	2101	2101
q9	8914	6567	6502	6502
q10	9072	3802	3736	3736
q11	469	234	244	234
q12	432	235	232	232
q13	17808	3016	2987	2987
q14	263	213	233	213
q15	529	486	490	486
q16	517	391	373	373
q17	974	665	743	665
q18	8122	7487	7360	7360
q19	4056	1474	1425	1425
q20	645	314	340	314
q21	4980	3956	3863	3863
q22	402	351	340	340
Total cold run time: 115786 ms
Total hot run time: 40625 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4392	4263	4271	4263
q2	376	261	275	261
q3	2988	2784	2725	2725
q4	1905	1614	1593	1593
q5	5319	5272	5291	5272
q6	214	126	130	126
q7	2144	1725	1748	1725
q8	3202	3367	3369	3367
q9	8386	8391	8341	8341
q10	3906	3696	3670	3670
q11	587	503	480	480
q12	781	604	611	604
q13	16373	3001	2991	2991
q14	288	263	261	261
q15	530	481	485	481
q16	485	427	417	417
q17	1800	1514	1513	1513
q18	7731	7638	7471	7471
q19	2265	1653	1656	1653
q20	2022	1789	1799	1789
q21	4924	4684	4736	4684
q22	602	600	569	569
Total cold run time: 71220 ms
Total hot run time: 54256 ms

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.45% (8994/24677)
Line Coverage: 28.00% (73766/263429)
Region Coverage: 27.50% (38318/139348)
Branch Coverage: 24.20% (19533/80724)
Coverage Report: http://coverage.selectdb-in.cc/coverage/f86cfb86a6577a5e0b4b22d0c304198b33731c98_f86cfb86a6577a5e0b4b22d0c304198b33731c98/report/index.html

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17650	4386	4402	4386
q2	2030	197	190	190
q3	10520	1201	1095	1095
q4	10210	763	756	756
q5	7479	2703	2622	2622
q6	235	140	138	138
q7	986	610	600	600
q8	9244	2072	2106	2072
q9	8901	6548	6483	6483
q10	8887	3761	3759	3759
q11	445	248	243	243
q12	500	236	223	223
q13	17787	3005	2999	2999
q14	277	220	215	215
q15	513	469	477	469
q16	500	390	383	383
q17	983	668	721	668
q18	8091	7401	7493	7401
q19	3829	1458	1494	1458
q20	650	331	341	331
q21	5011	3181	3848	3181
q22	401	353	338	338
Total cold run time: 115129 ms
Total hot run time: 40010 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4350	4260	4275	4260
q2	385	262	270	262
q3	2989	2767	2746	2746
q4	1876	1634	1617	1617
q5	5277	5306	5318	5306
q6	214	126	132	126
q7	2155	1703	1714	1703
q8	3170	3352	3323	3323
q9	8354	8413	8418	8413
q10	3836	3667	3625	3625
q11	612	491	483	483
q12	776	607	628	607
q13	17461	3017	2979	2979
q14	295	255	253	253
q15	528	487	468	468
q16	470	425	423	423
q17	1791	1502	1467	1467
q18	7833	7496	7428	7428
q19	1712	1551	1552	1551
q20	2025	1832	1761	1761
q21	4850	4723	4710	4710
q22	618	542	532	532
Total cold run time: 71577 ms
Total hot run time: 54043 ms

@doris-robot
Copy link

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

query1	921	381	377	377
query2	6459	2490	2261	2261
query3	6655	205	204	204
query4	19323	17277	17431	17277
query5	4164	499	474	474
query6	269	160	157	157
query7	4593	312	289	289
query8	315	292	297	292
query9	8434	2473	2438	2438
query10	611	307	303	303
query11	10613	9998	10111	9998
query12	141	88	88	88
query13	1627	364	360	360
query14	10016	6942	7080	6942
query15	235	192	202	192
query16	7808	298	269	269
query17	1596	561	520	520
query18	1952	286	277	277
query19	195	149	154	149
query20	94	87	81	81
query21	206	134	127	127
query22	4412	4170	4091	4091
query23	33631	33045	33172	33045
query24	11040	2862	2928	2862
query25	578	358	359	358
query26	711	149	152	149
query27	2236	326	315	315
query28	5711	2051	2040	2040
query29	853	624	603	603
query30	269	152	148	148
query31	950	728	756	728
query32	96	55	56	55
query33	691	283	316	283
query34	859	473	457	457
query35	766	637	608	608
query36	1104	927	914	914
query37	133	69	71	69
query38	2857	2760	2790	2760
query39	847	816	801	801
query40	212	126	126	126
query41	56	52	55	52
query42	118	100	102	100
query43	580	540	538	538
query44	1158	721	733	721
query45	195	173	170	170
query46	1084	738	728	728
query47	1851	1796	1789	1789
query48	363	289	296	289
query49	1036	406	407	406
query50	768	388	392	388
query51	6671	6716	6614	6614
query52	110	92	95	92
query53	369	298	299	298
query54	877	489	450	450
query55	76	73	72	72
query56	281	263	264	263
query57	1116	1045	1040	1040
query58	250	245	271	245
query59	3548	3290	3151	3151
query60	293	274	270	270
query61	93	88	86	86
query62	654	449	433	433
query63	326	298	297	297
query64	8651	2253	1740	1740
query65	3212	3130	3113	3113
query66	788	340	341	340
query67	15416	14913	14899	14899
query68	4528	538	527	527
query69	476	310	314	310
query70	1220	1150	1129	1129
query71	364	270	265	265
query72	7201	5639	5554	5554
query73	746	326	323	323
query74	5878	5438	5400	5400
query75	3387	2704	2646	2646
query76	2351	957	948	948
query77	467	309	314	309
query78	10377	9924	9971	9924
query79	2871	506	506	506
query80	1278	491	489	489
query81	542	225	230	225
query82	687	111	109	109
query83	247	177	179	177
query84	240	93	92	92
query85	1564	341	327	327
query86	484	321	328	321
query87	3284	3062	3082	3062
query88	3903	2435	2448	2435
query89	487	404	394	394
query90	1775	203	202	202
query91	140	112	111	111
query92	64	57	53	53
query93	1969	514	491	491
query94	1186	202	200	200
query95	422	327	333	327
query96	593	270	272	270
query97	3222	3012	3001	3001
query98	214	208	195	195
query99	1377	820	830	820
Total cold run time: 267667 ms
Total hot run time: 173213 ms

@doris-robot
Copy link

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

query1	0.05	0.03	0.03
query2	0.08	0.04	0.05
query3	0.23	0.06	0.05
query4	1.67	0.07	0.07
query5	0.50	0.49	0.50
query6	1.12	0.73	0.73
query7	0.03	0.02	0.01
query8	0.05	0.04	0.04
query9	0.53	0.49	0.50
query10	0.55	0.55	0.56
query11	0.15	0.11	0.12
query12	0.14	0.12	0.13
query13	0.59	0.59	0.60
query14	0.79	0.78	0.80
query15	0.82	0.81	0.82
query16	0.37	0.38	0.37
query17	1.03	1.01	1.04
query18	0.22	0.25	0.26
query19	1.78	1.70	1.84
query20	0.01	0.01	0.01
query21	15.41	0.65	0.66
query22	4.43	6.45	2.23
query23	18.28	1.43	1.28
query24	2.13	0.22	0.21
query25	0.16	0.08	0.09
query26	0.26	0.18	0.18
query27	0.09	0.07	0.07
query28	13.25	1.02	1.00
query29	12.62	3.22	3.25
query30	0.25	0.06	0.06
query31	2.87	0.39	0.39
query32	3.27	0.46	0.46
query33	2.91	2.93	2.87
query34	17.03	4.39	4.42
query35	4.49	4.45	4.44
query36	0.66	0.47	0.47
query37	0.18	0.15	0.14
query38	0.14	0.14	0.14
query39	0.04	0.04	0.03
query40	0.16	0.14	0.14
query41	0.10	0.05	0.05
query42	0.05	0.05	0.05
query43	0.04	0.04	0.04
Total cold run time: 109.53 s
Total hot run time: 30.84 s

Copy link
Contributor

@HappenLee HappenLee left a comment

Choose a reason for hiding this comment

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

LGTM

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

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

Copy link
Contributor

PR approved by anyone and no changes requested.

Copy link
Contributor

@wangbo wangbo left a comment

Choose a reason for hiding this comment

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

LGTM

@xinyiZzz xinyiZzz merged commit 1a3a5b6 into apache:master Jun 24, 2024
25 of 29 checks passed
dataroaring pushed a commit that referenced this pull request Jun 24, 2024
## Proposed changes

#36235 introduced, index page is not freed in query thread, so saved
tracker ptr when alloc page, so that page only needs to be freed before
query ends.

```
F20240624 18:44:51.880192 162249 mem_tracker_limiter.cpp:125] mem tracker label: Query#Id=f0511107829e465e-a87a985234018b77, consumption: 94, peak consumption: 636540, mem tracker not equal to 0 when mem tracker destruct, this usually means that memory tracking is inaccurate and SCOPED_ATTACH_TASK and SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER are not used correctly. 1. For query and load, memory leaks may have occurred, it is expected that the query mem tracker will be bound to the thread context using SCOPED_ATTACH_TASK and SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER before all memory alloc and free. 2. If a memory alloc is recorded by this tracker, it is expected that be recorded in this tracker when memory is freed. 3. Merge the remaining memory tracking value by this tracker into Orphan, if you observe that Orphan is not equal to 0 in the mem tracker web or log, this indicates that there may be a memory leak. 4. If you need to transfer memory tracking value between two trackers, can use transfer_to..[Address Sanitizer]:
    0x605000160b30, size 46, strack trace:
        0#  Allocator<false, false, false>::alloc_impl(unsigned long, unsigned long)
        1#  doris::PageBase<Allocator<false, false, false> >::PageBase(unsigned long, bool, doris::segment_v2::PageTypePB)
        2#  doris::segment_v2::PageIO::read_and_decompress_page(doris::segment_v2::PageReadOptions const&, doris::segment_v2::PageHandle*, doris::Slice*, doris::segment_v2::PageFooterPB*)
        3#  doris::segment_v2::IndexedColumnReader::read_page(doris::segment_v2::PagePointer const&, doris::segment_v2::PageHandle*, doris::Slice*, doris::segment_v2::PageFooterPB*, doris::segment_v2::PageTypePB, doris::BlockCompressionCodec*, bool) const
        4#  doris::segment_v2::IndexedColumnReader::load_index_page(doris::segment_v2::PagePointerPB const&, doris::segment_v2::PageHandle*, doris::segment_v2::IndexPageReader*)
        5#  doris::segment_v2::IndexedColumnReader::load(bool, bool)
        6#  doris::segment_v2::BitmapIndexReader::_load(bool, bool, std::unique_ptr<doris::segment_v2::BitmapIndexPB, std::default_delete<doris::segment_v2::BitmapIndexPB> >)
        7#  doris::segment_v2::BitmapIndexReader::load(bool, bool)
        8#  doris::segment_v2::ColumnReader::_load_bitmap_index(bool, bool)
        9#  doris::segment_v2::ColumnReader::new_bitmap_index_iterator(doris::segment_v2::BitmapIndexIterator**)
        10# doris::segment_v2::Segment::new_bitmap_index_iterator(doris::TabletColumn const&, std::unique_ptr<doris::segment_v2::BitmapIndexIterator, std::default_delete<doris::segment_v2::BitmapIndexIterator> >*)
        11# doris::segment_v2::SegmentIterator::_init_bitmap_index_iterators()
        12# doris::segment_v2::SegmentIterator::init_iterators()
        13# doris::segment_v2::SegmentIterator::_init_impl(doris::StorageReadOptions const&)
        14# doris::segment_v2::SegmentIterator::init(doris::StorageReadOptions const&)
        15# doris::segment_v2::Segment::new_iterator(std::shared_ptr<doris::Schema const>, doris::StorageReadOptions const&, std::unique_ptr<doris::RowwiseIterator, std::default_delete<doris::RowwiseIterator> >*)
        16# doris::segment_v2::LazyInitSegmentIterator::init(doris::StorageReadOptions const&)
        17# doris::BetaRowsetReader::_init_iterator()
        18# doris::BetaRowsetReader::_init_iterator_once()
        19# doris::BetaRowsetReader::next_block(doris::vectorized::Block*)
        20# doris::vectorized::VCollectIterator::_topn_next(doris::vectorized::Block*)
        21# doris::vectorized::VCollectIterator::next(doris::vectorized::Block*)
        22# doris::vectorized::BlockReader::_direct_next_block(doris::vectorized::Block*, bool*)
        23# doris::vectorized::BlockReader::next_block_with_aggregation(doris::vectorized::Block*, bool*)
        24# doris::vectorized::NewOlapScanner::_get_block_impl(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        25# doris::vectorized::VScanner::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        26# doris::vectorized::VScanner::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        27# doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)
        28# std::_Function_handler<void (), doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_1::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&)
        29# doris::ThreadPool::dispatch_thread()
        30# doris::Thread::supervise_thread(void*)
```
dataroaring pushed a commit that referenced this pull request Jun 26, 2024
Fix #35590, CacheManager get CachePolicy should be used lock.

Add LRUCachePolicyTrackingAllocator and LRUCachePolicyTrackingManual.
tracking memory in LRUCachePolicy::insert, LRUCacheValueBase not need init mem_tracker, so not need to get CachePolicy under lock.
dataroaring pushed a commit that referenced this pull request Jun 26, 2024
## Proposed changes

#36235 introduced, index page is not freed in query thread, so saved
tracker ptr when alloc page, so that page only needs to be freed before
query ends.

```
F20240624 18:44:51.880192 162249 mem_tracker_limiter.cpp:125] mem tracker label: Query#Id=f0511107829e465e-a87a985234018b77, consumption: 94, peak consumption: 636540, mem tracker not equal to 0 when mem tracker destruct, this usually means that memory tracking is inaccurate and SCOPED_ATTACH_TASK and SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER are not used correctly. 1. For query and load, memory leaks may have occurred, it is expected that the query mem tracker will be bound to the thread context using SCOPED_ATTACH_TASK and SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER before all memory alloc and free. 2. If a memory alloc is recorded by this tracker, it is expected that be recorded in this tracker when memory is freed. 3. Merge the remaining memory tracking value by this tracker into Orphan, if you observe that Orphan is not equal to 0 in the mem tracker web or log, this indicates that there may be a memory leak. 4. If you need to transfer memory tracking value between two trackers, can use transfer_to..[Address Sanitizer]:
    0x605000160b30, size 46, strack trace:
        0#  Allocator<false, false, false>::alloc_impl(unsigned long, unsigned long)
        1#  doris::PageBase<Allocator<false, false, false> >::PageBase(unsigned long, bool, doris::segment_v2::PageTypePB)
        2#  doris::segment_v2::PageIO::read_and_decompress_page(doris::segment_v2::PageReadOptions const&, doris::segment_v2::PageHandle*, doris::Slice*, doris::segment_v2::PageFooterPB*)
        3#  doris::segment_v2::IndexedColumnReader::read_page(doris::segment_v2::PagePointer const&, doris::segment_v2::PageHandle*, doris::Slice*, doris::segment_v2::PageFooterPB*, doris::segment_v2::PageTypePB, doris::BlockCompressionCodec*, bool) const
        4#  doris::segment_v2::IndexedColumnReader::load_index_page(doris::segment_v2::PagePointerPB const&, doris::segment_v2::PageHandle*, doris::segment_v2::IndexPageReader*)
        5#  doris::segment_v2::IndexedColumnReader::load(bool, bool)
        6#  doris::segment_v2::BitmapIndexReader::_load(bool, bool, std::unique_ptr<doris::segment_v2::BitmapIndexPB, std::default_delete<doris::segment_v2::BitmapIndexPB> >)
        7#  doris::segment_v2::BitmapIndexReader::load(bool, bool)
        8#  doris::segment_v2::ColumnReader::_load_bitmap_index(bool, bool)
        9#  doris::segment_v2::ColumnReader::new_bitmap_index_iterator(doris::segment_v2::BitmapIndexIterator**)
        10# doris::segment_v2::Segment::new_bitmap_index_iterator(doris::TabletColumn const&, std::unique_ptr<doris::segment_v2::BitmapIndexIterator, std::default_delete<doris::segment_v2::BitmapIndexIterator> >*)
        11# doris::segment_v2::SegmentIterator::_init_bitmap_index_iterators()
        12# doris::segment_v2::SegmentIterator::init_iterators()
        13# doris::segment_v2::SegmentIterator::_init_impl(doris::StorageReadOptions const&)
        14# doris::segment_v2::SegmentIterator::init(doris::StorageReadOptions const&)
        15# doris::segment_v2::Segment::new_iterator(std::shared_ptr<doris::Schema const>, doris::StorageReadOptions const&, std::unique_ptr<doris::RowwiseIterator, std::default_delete<doris::RowwiseIterator> >*)
        16# doris::segment_v2::LazyInitSegmentIterator::init(doris::StorageReadOptions const&)
        17# doris::BetaRowsetReader::_init_iterator()
        18# doris::BetaRowsetReader::_init_iterator_once()
        19# doris::BetaRowsetReader::next_block(doris::vectorized::Block*)
        20# doris::vectorized::VCollectIterator::_topn_next(doris::vectorized::Block*)
        21# doris::vectorized::VCollectIterator::next(doris::vectorized::Block*)
        22# doris::vectorized::BlockReader::_direct_next_block(doris::vectorized::Block*, bool*)
        23# doris::vectorized::BlockReader::next_block_with_aggregation(doris::vectorized::Block*, bool*)
        24# doris::vectorized::NewOlapScanner::_get_block_impl(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        25# doris::vectorized::VScanner::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        26# doris::vectorized::VScanner::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        27# doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)
        28# std::_Function_handler<void (), doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_1::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&)
        29# doris::ThreadPool::dispatch_thread()
        30# doris::Thread::supervise_thread(void*)
```
xinyiZzz added a commit to xinyiZzz/incubator-doris that referenced this pull request Jul 11, 2024
Fix apache#35590, CacheManager get CachePolicy should be used lock.

Add LRUCachePolicyTrackingAllocator and LRUCachePolicyTrackingManual.
tracking memory in LRUCachePolicy::insert, LRUCacheValueBase not need init mem_tracker, so not need to get CachePolicy under lock.
xinyiZzz added a commit to xinyiZzz/incubator-doris that referenced this pull request Jul 11, 2024
## Proposed changes

apache#36235 introduced, index page is not freed in query thread, so saved
tracker ptr when alloc page, so that page only needs to be freed before
query ends.

```
F20240624 18:44:51.880192 162249 mem_tracker_limiter.cpp:125] mem tracker label: Query#Id=f0511107829e465e-a87a985234018b77, consumption: 94, peak consumption: 636540, mem tracker not equal to 0 when mem tracker destruct, this usually means that memory tracking is inaccurate and SCOPED_ATTACH_TASK and SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER are not used correctly. 1. For query and load, memory leaks may have occurred, it is expected that the query mem tracker will be bound to the thread context using SCOPED_ATTACH_TASK and SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER before all memory alloc and free. 2. If a memory alloc is recorded by this tracker, it is expected that be recorded in this tracker when memory is freed. 3. Merge the remaining memory tracking value by this tracker into Orphan, if you observe that Orphan is not equal to 0 in the mem tracker web or log, this indicates that there may be a memory leak. 4. If you need to transfer memory tracking value between two trackers, can use transfer_to..[Address Sanitizer]:
    0x605000160b30, size 46, strack trace:
        0#  Allocator<false, false, false>::alloc_impl(unsigned long, unsigned long)
        1#  doris::PageBase<Allocator<false, false, false> >::PageBase(unsigned long, bool, doris::segment_v2::PageTypePB)
        2#  doris::segment_v2::PageIO::read_and_decompress_page(doris::segment_v2::PageReadOptions const&, doris::segment_v2::PageHandle*, doris::Slice*, doris::segment_v2::PageFooterPB*)
        3#  doris::segment_v2::IndexedColumnReader::read_page(doris::segment_v2::PagePointer const&, doris::segment_v2::PageHandle*, doris::Slice*, doris::segment_v2::PageFooterPB*, doris::segment_v2::PageTypePB, doris::BlockCompressionCodec*, bool) const
        4#  doris::segment_v2::IndexedColumnReader::load_index_page(doris::segment_v2::PagePointerPB const&, doris::segment_v2::PageHandle*, doris::segment_v2::IndexPageReader*)
        5#  doris::segment_v2::IndexedColumnReader::load(bool, bool)
        6#  doris::segment_v2::BitmapIndexReader::_load(bool, bool, std::unique_ptr<doris::segment_v2::BitmapIndexPB, std::default_delete<doris::segment_v2::BitmapIndexPB> >)
        7#  doris::segment_v2::BitmapIndexReader::load(bool, bool)
        8#  doris::segment_v2::ColumnReader::_load_bitmap_index(bool, bool)
        9#  doris::segment_v2::ColumnReader::new_bitmap_index_iterator(doris::segment_v2::BitmapIndexIterator**)
        10# doris::segment_v2::Segment::new_bitmap_index_iterator(doris::TabletColumn const&, std::unique_ptr<doris::segment_v2::BitmapIndexIterator, std::default_delete<doris::segment_v2::BitmapIndexIterator> >*)
        11# doris::segment_v2::SegmentIterator::_init_bitmap_index_iterators()
        12# doris::segment_v2::SegmentIterator::init_iterators()
        13# doris::segment_v2::SegmentIterator::_init_impl(doris::StorageReadOptions const&)
        14# doris::segment_v2::SegmentIterator::init(doris::StorageReadOptions const&)
        15# doris::segment_v2::Segment::new_iterator(std::shared_ptr<doris::Schema const>, doris::StorageReadOptions const&, std::unique_ptr<doris::RowwiseIterator, std::default_delete<doris::RowwiseIterator> >*)
        16# doris::segment_v2::LazyInitSegmentIterator::init(doris::StorageReadOptions const&)
        17# doris::BetaRowsetReader::_init_iterator()
        18# doris::BetaRowsetReader::_init_iterator_once()
        19# doris::BetaRowsetReader::next_block(doris::vectorized::Block*)
        20# doris::vectorized::VCollectIterator::_topn_next(doris::vectorized::Block*)
        21# doris::vectorized::VCollectIterator::next(doris::vectorized::Block*)
        22# doris::vectorized::BlockReader::_direct_next_block(doris::vectorized::Block*, bool*)
        23# doris::vectorized::BlockReader::next_block_with_aggregation(doris::vectorized::Block*, bool*)
        24# doris::vectorized::NewOlapScanner::_get_block_impl(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        25# doris::vectorized::VScanner::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        26# doris::vectorized::VScanner::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        27# doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)
        28# std::_Function_handler<void (), doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_1::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&)
        29# doris::ThreadPool::dispatch_thread()
        30# doris::Thread::supervise_thread(void*)
```
xinyiZzz added a commit to xinyiZzz/incubator-doris that referenced this pull request Jul 11, 2024
Fix apache#35590, CacheManager get CachePolicy should be used lock.

Add LRUCachePolicyTrackingAllocator and LRUCachePolicyTrackingManual.
tracking memory in LRUCachePolicy::insert, LRUCacheValueBase not need init mem_tracker, so not need to get CachePolicy under lock.
xinyiZzz added a commit to xinyiZzz/incubator-doris that referenced this pull request Jul 12, 2024
## Proposed changes

apache#36235 introduced, index page is not freed in query thread, so saved
tracker ptr when alloc page, so that page only needs to be freed before
query ends.

```
F20240624 18:44:51.880192 162249 mem_tracker_limiter.cpp:125] mem tracker label: Query#Id=f0511107829e465e-a87a985234018b77, consumption: 94, peak consumption: 636540, mem tracker not equal to 0 when mem tracker destruct, this usually means that memory tracking is inaccurate and SCOPED_ATTACH_TASK and SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER are not used correctly. 1. For query and load, memory leaks may have occurred, it is expected that the query mem tracker will be bound to the thread context using SCOPED_ATTACH_TASK and SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER before all memory alloc and free. 2. If a memory alloc is recorded by this tracker, it is expected that be recorded in this tracker when memory is freed. 3. Merge the remaining memory tracking value by this tracker into Orphan, if you observe that Orphan is not equal to 0 in the mem tracker web or log, this indicates that there may be a memory leak. 4. If you need to transfer memory tracking value between two trackers, can use transfer_to..[Address Sanitizer]:
    0x605000160b30, size 46, strack trace:
        0#  Allocator<false, false, false>::alloc_impl(unsigned long, unsigned long)
        1#  doris::PageBase<Allocator<false, false, false> >::PageBase(unsigned long, bool, doris::segment_v2::PageTypePB)
        2#  doris::segment_v2::PageIO::read_and_decompress_page(doris::segment_v2::PageReadOptions const&, doris::segment_v2::PageHandle*, doris::Slice*, doris::segment_v2::PageFooterPB*)
        3#  doris::segment_v2::IndexedColumnReader::read_page(doris::segment_v2::PagePointer const&, doris::segment_v2::PageHandle*, doris::Slice*, doris::segment_v2::PageFooterPB*, doris::segment_v2::PageTypePB, doris::BlockCompressionCodec*, bool) const
        4#  doris::segment_v2::IndexedColumnReader::load_index_page(doris::segment_v2::PagePointerPB const&, doris::segment_v2::PageHandle*, doris::segment_v2::IndexPageReader*)
        5#  doris::segment_v2::IndexedColumnReader::load(bool, bool)
        6#  doris::segment_v2::BitmapIndexReader::_load(bool, bool, std::unique_ptr<doris::segment_v2::BitmapIndexPB, std::default_delete<doris::segment_v2::BitmapIndexPB> >)
        7#  doris::segment_v2::BitmapIndexReader::load(bool, bool)
        8#  doris::segment_v2::ColumnReader::_load_bitmap_index(bool, bool)
        9#  doris::segment_v2::ColumnReader::new_bitmap_index_iterator(doris::segment_v2::BitmapIndexIterator**)
        10# doris::segment_v2::Segment::new_bitmap_index_iterator(doris::TabletColumn const&, std::unique_ptr<doris::segment_v2::BitmapIndexIterator, std::default_delete<doris::segment_v2::BitmapIndexIterator> >*)
        11# doris::segment_v2::SegmentIterator::_init_bitmap_index_iterators()
        12# doris::segment_v2::SegmentIterator::init_iterators()
        13# doris::segment_v2::SegmentIterator::_init_impl(doris::StorageReadOptions const&)
        14# doris::segment_v2::SegmentIterator::init(doris::StorageReadOptions const&)
        15# doris::segment_v2::Segment::new_iterator(std::shared_ptr<doris::Schema const>, doris::StorageReadOptions const&, std::unique_ptr<doris::RowwiseIterator, std::default_delete<doris::RowwiseIterator> >*)
        16# doris::segment_v2::LazyInitSegmentIterator::init(doris::StorageReadOptions const&)
        17# doris::BetaRowsetReader::_init_iterator()
        18# doris::BetaRowsetReader::_init_iterator_once()
        19# doris::BetaRowsetReader::next_block(doris::vectorized::Block*)
        20# doris::vectorized::VCollectIterator::_topn_next(doris::vectorized::Block*)
        21# doris::vectorized::VCollectIterator::next(doris::vectorized::Block*)
        22# doris::vectorized::BlockReader::_direct_next_block(doris::vectorized::Block*, bool*)
        23# doris::vectorized::BlockReader::next_block_with_aggregation(doris::vectorized::Block*, bool*)
        24# doris::vectorized::NewOlapScanner::_get_block_impl(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        25# doris::vectorized::VScanner::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        26# doris::vectorized::VScanner::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*)
        27# doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)
        28# std::_Function_handler<void (), doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_1::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&)
        29# doris::ThreadPool::dispatch_thread()
        30# doris::Thread::supervise_thread(void*)
```
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/2.1.5-merged dev/3.0.0-merged reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants