Skip to content

[fix](fe) Avoid blocking external meta cache refresh on slow miss load#64705

Merged
yiguolei merged 10 commits into
apache:masterfrom
HYDCP:wzh/metacacheentry-manual-miss-load
Jun 24, 2026
Merged

[fix](fe) Avoid blocking external meta cache refresh on slow miss load#64705
yiguolei merged 10 commits into
apache:masterfrom
HYDCP:wzh/metacacheentry-manual-miss-load

Conversation

@wenzhenghu

@wenzhenghu wenzhenghu commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: N/A

Related PR: N/A

Problem Summary:
This PR avoids blocking external meta cache invalidation on slow miss loads in FE. Previously, MetaCacheEntry relied on Caffeine's synchronous loading path for cache misses. When an external metadata loader became slow, operations that invalidate the same cache, such as REFRESH CATALOG and the corresponding replay path, could wait on the slow load and block the replay-related invalidation flow.

Implementation summary:

  • Keep the existing LoadingCache to preserve current hit-path behavior and refreshAfterWrite support.
  • Add a manual miss-load path behind a new FE config switch, using getIfPresent() instead of synchronous LoadingCache.get() for misses.
  • Deduplicate concurrent miss loads with striped locks inside MetaCacheEntry.
  • Add an entry-level invalidateGeneration counter. Each invalidate increments the generation before clearing cache state.
  • Record the generation before a manual miss load, check it once before put(), and check it again after put(). If invalidation happens during the race window, the just-loaded value is removed so stale data is not kept in cache.
  • Keep null miss-load results uncached so the manual path does not attempt to put null into Caffeine.

Configuration:

  • Add FE config enable_external_meta_cache_manual_miss_load, default false.
  • When it is false, MetaCacheEntry keeps the original synchronous Caffeine miss-load behavior.
  • When it is true, MetaCacheEntry uses the manual miss-load path plus invalidateGeneration protection.

Scope and limitations:

  • This change applies to MetaCacheEntry used by external metadata cache paths in FE. It does not cover the legacy MetaCache.
  • LegacyMetaCacheFactory is intentionally not refactored in this PR. A follow-up PR will rework that path with MetaCache, and the legacy factory changes are left to that dedicated refactor.
  • The protection is designed for manual miss loads. It does not make Caffeine's asynchronous refreshAfterWrite reload generation-aware.
  • As a result, refreshAfterWrite is still preserved, but an async refresh result may still write back after an invalidate. That is an intentional trade-off in this version.
  • The new regression case is valuable as a reference and for suitable environments, but it may be skipped in standard CI because it depends on JDBC regression setup, FE debug points, and an external MySQL/JDBC environment.

Release note

None

Check List (For Author)

  • Test
    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason

Manual test:

  1. Reproduced the blocking path with REFRESH CATALOG against a JDBC external catalog and a debug point that sleeps in PluginDrivenExternalTable.initSchema.
  2. Repeated the baseline scenario 5 times with enable_external_meta_cache_manual_miss_load=false and observed REFRESH CATALOG blocked for about 14s while DESC stayed slow.
  3. Repeated the optimized scenario 5 times with enable_external_meta_cache_manual_miss_load=true and observed REFRESH CATALOG return within about 1s while DESC remained slow.
  4. Added a regression case as a manual-test reference because its execution depends on JDBC regression environment and FE debug-point availability.

Unit test:

  • FE_UT_PARALLEL=1 ./run-fe-ut.sh --run org.apache.doris.datasource.metacache.MetaCacheEntryTest

  • Behavior changed:

    • Yes.

Behavior change:

  • REFRESH CATALOG and the corresponding FE invalidation path are no longer blocked by slow external metadata miss loads in this MetaCacheEntry implementation.

  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

@hello-stephen

Copy link
Copy Markdown
Contributor

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

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@wenzhenghu

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17612	4151	4045	4045
q2	2042	313	188	188
q3	10308	1435	815	815
q4	4682	470	331	331
q5	7499	855	562	562
q6	182	172	137	137
q7	753	847	604	604
q8	9656	1580	1626	1580
q9	6314	4473	4440	4440
q10	6854	1800	1507	1507
q11	446	270	236	236
q12	673	427	294	294
q13	18122	3423	2750	2750
q14	276	256	237	237
q15	q16	780	773	719	719
q17	945	962	1008	962
q18	6749	5683	5519	5519
q19	1623	1411	1109	1109
q20	463	398	259	259
q21	5932	2599	2413	2413
q22	438	362	308	308
Total cold run time: 102349 ms
Total hot run time: 29015 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4365	4304	4329	4304
q2	332	370	239	239
q3	4552	4914	4398	4398
q4	2029	2183	1357	1357
q5	4416	4297	4341	4297
q6	230	184	132	132
q7	1712	1872	1737	1737
q8	2472	2271	2121	2121
q9	7873	7932	8013	7932
q10	4815	4749	4290	4290
q11	609	424	387	387
q12	739	745	528	528
q13	3477	3645	2914	2914
q14	294	325	291	291
q15	q16	732	788	645	645
q17	1348	1317	1321	1317
q18	7987	7394	7007	7007
q19	1085	1079	1097	1079
q20	2237	2216	1948	1948
q21	5289	4634	4386	4386
q22	537	461	416	416
Total cold run time: 57130 ms
Total hot run time: 51725 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 172348 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 4a6a124691e2841d60602082a5abc0c7c078c5d1, data reload: false

query5	4340	624	477	477
query6	432	184	170	170
query7	4810	572	310	310
query8	369	214	204	204
query9	8765	4014	3994	3994
query10	435	314	263	263
query11	5958	2337	2149	2149
query12	150	105	99	99
query13	1251	624	433	433
query14	6411	5347	5028	5028
query14_1	4351	4356	4330	4330
query15	243	196	174	174
query16	976	443	417	417
query17	1089	669	552	552
query18	2469	454	339	339
query19	192	178	133	133
query20	112	106	101	101
query21	213	132	114	114
query22	13999	13641	13521	13521
query23	17335	16469	16089	16089
query23_1	16207	16218	16192	16192
query24	7698	1756	1342	1342
query24_1	1310	1303	1295	1295
query25	564	461	396	396
query26	1297	323	169	169
query27	2680	563	345	345
query28	4491	2026	2024	2024
query29	1105	640	501	501
query30	313	233	199	199
query31	1122	1084	952	952
query32	119	65	61	61
query33	517	310	256	256
query34	1188	1196	666	666
query35	763	803	672	672
query36	1390	1401	1189	1189
query37	156	109	95	95
query38	1891	1739	1652	1652
query39	914	907	919	907
query39_1	884	873	867	867
query40	224	126	102	102
query41	70	68	66	66
query42	89	88	88	88
query43	319	320	279	279
query44	1455	770	785	770
query45	197	190	178	178
query46	1066	1204	777	777
query47	2334	2326	2255	2255
query48	388	416	308	308
query49	645	474	367	367
query50	963	357	264	264
query51	4395	4303	4222	4222
query52	82	84	74	74
query53	252	264	190	190
query54	277	225	210	210
query55	74	78	70	70
query56	259	231	221	221
query57	1452	1387	1337	1337
query58	257	220	221	220
query59	1524	1622	1411	1411
query60	337	252	217	217
query61	149	144	150	144
query62	727	650	580	580
query63	223	187	186	186
query64	2516	787	606	606
query65	4912	4824	4835	4824
query66	1812	464	339	339
query67	29712	29712	29660	29660
query68	3164	1583	972	972
query69	420	294	259	259
query70	1042	972	975	972
query71	291	232	210	210
query72	2951	2622	2322	2322
query73	865	766	451	451
query74	5111	4958	4758	4758
query75	2634	2578	2218	2218
query76	2310	1182	774	774
query77	349	372	274	274
query78	12403	12530	11941	11941
query79	1278	1169	793	793
query80	600	463	377	377
query81	458	289	242	242
query82	590	155	126	126
query83	351	273	246	246
query84	269	142	112	112
query85	858	521	439	439
query86	368	301	302	301
query87	1839	1844	1768	1768
query88	3783	2827	2785	2785
query89	408	378	325	325
query90	1967	177	182	177
query91	173	158	131	131
query92	62	58	57	57
query93	1520	1496	928	928
query94	540	351	304	304
query95	702	394	348	348
query96	1065	891	349	349
query97	2728	2669	2549	2549
query98	221	202	200	200
query99	1177	1145	1028	1028
Total cold run time: 258067 ms
Total hot run time: 172348 ms

@hello-stephen

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

query1	0.01	0.01	0.01
query2	0.09	0.04	0.05
query3	0.26	0.14	0.13
query4	1.60	0.14	0.13
query5	0.25	0.22	0.23
query6	1.23	1.07	1.10
query7	0.03	0.01	0.01
query8	0.10	0.04	0.04
query9	0.37	0.31	0.31
query10	0.57	0.57	0.56
query11	0.20	0.13	0.13
query12	0.19	0.14	0.14
query13	0.47	0.48	0.47
query14	1.02	1.01	1.01
query15	0.61	0.59	0.59
query16	0.32	0.31	0.33
query17	1.11	1.11	1.09
query18	0.23	0.21	0.22
query19	2.09	1.92	1.95
query20	0.02	0.01	0.01
query21	15.43	0.25	0.13
query22	4.75	0.06	0.05
query23	16.12	0.30	0.12
query24	2.92	0.43	0.34
query25	0.11	0.05	0.03
query26	0.74	0.21	0.15
query27	0.04	0.04	0.03
query28	3.52	0.96	0.53
query29	12.52	4.37	3.41
query30	0.27	0.15	0.16
query31	2.77	0.64	0.31
query32	3.23	0.61	0.50
query33	3.34	3.25	3.26
query34	15.70	4.34	3.50
query35	3.42	3.54	3.48
query36	0.55	0.45	0.42
query37	0.09	0.06	0.06
query38	0.05	0.04	0.03
query39	0.04	0.03	0.03
query40	0.17	0.17	0.15
query41	0.08	0.03	0.02
query42	0.03	0.02	0.03
query43	0.04	0.04	0.03
Total cold run time: 96.7 s
Total hot run time: 25.14 s

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 92.73% (51/55) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 41.82% (23/55) 🎉
Increment coverage report
Complete coverage report

Comment thread fe/fe-common/src/main/java/org/apache/doris/common/Config.java
@yiguolei yiguolei added usercase Important user case type label dev/4.1.x labels Jun 23, 2026
@wenzhenghu

Copy link
Copy Markdown
Contributor Author

run buildall

@wenzhenghu

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17711	4027	3999	3999
q2	2030	315	184	184
q3	10299	1370	819	819
q4	4679	467	337	337
q5	7483	848	566	566
q6	178	166	137	137
q7	758	846	634	634
q8	9335	1579	1544	1544
q9	5825	4473	4447	4447
q10	6769	1787	1525	1525
q11	448	267	237	237
q12	633	428	289	289
q13	18126	3421	2779	2779
q14	266	258	245	245
q15	q16	780	781	708	708
q17	1204	998	897	897
q18	6620	5713	5410	5410
q19	1345	1262	1027	1027
q20	473	397	259	259
q21	5825	2635	2473	2473
q22	428	355	296	296
Total cold run time: 101215 ms
Total hot run time: 28812 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4317	4223	4241	4223
q2	316	340	213	213
q3	4565	4950	4405	4405
q4	2035	2151	1372	1372
q5	4368	4286	4304	4286
q6	239	175	129	129
q7	1720	1619	1454	1454
q8	2903	2177	2121	2121
q9	8023	8050	8006	8006
q10	4806	4755	4328	4328
q11	575	415	381	381
q12	726	768	547	547
q13	3373	3633	2908	2908
q14	328	315	269	269
q15	q16	730	759	646	646
q17	1361	1318	1311	1311
q18	7878	7103	7234	7103
q19	1127	1085	1082	1082
q20	2243	2212	1946	1946
q21	5219	4545	4447	4447
q22	506	450	416	416
Total cold run time: 57358 ms
Total hot run time: 51593 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 172896 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 f1647af8b81698296812fda434a3737537b0b63b, data reload: false

query5	4319	624	486	486
query6	436	193	178	178
query7	4932	564	308	308
query8	359	213	197	197
query9	8752	4064	4048	4048
query10	435	322	252	252
query11	5938	2355	2119	2119
query12	161	102	106	102
query13	1275	613	442	442
query14	6400	5390	5064	5064
query14_1	4390	4384	4419	4384
query15	205	200	174	174
query16	996	451	435	435
query17	1093	690	564	564
query18	2652	483	339	339
query19	199	180	135	135
query20	112	110	107	107
query21	226	141	117	117
query22	13589	13672	13518	13518
query23	17335	16445	16037	16037
query23_1	16265	16417	16508	16417
query24	7541	1779	1327	1327
query24_1	1326	1320	1336	1320
query25	538	440	376	376
query26	1287	318	170	170
query27	2667	583	320	320
query28	4437	2038	2037	2037
query29	1078	608	481	481
query30	323	236	199	199
query31	1114	1067	945	945
query32	109	60	63	60
query33	515	312	278	278
query34	1177	1178	666	666
query35	750	773	676	676
query36	1406	1366	1210	1210
query37	153	97	89	89
query38	1884	1738	1655	1655
query39	923	923	902	902
query39_1	884	884	882	882
query40	217	126	100	100
query41	68	66	61	61
query42	88	85	85	85
query43	334	337	289	289
query44	1458	776	776	776
query45	196	187	174	174
query46	1043	1199	734	734
query47	2361	2322	2299	2299
query48	427	427	288	288
query49	625	455	341	341
query50	1061	346	269	269
query51	4380	4348	4308	4308
query52	80	80	69	69
query53	258	267	187	187
query54	265	215	202	202
query55	73	69	67	67
query56	234	222	219	219
query57	1434	1471	1350	1350
query58	235	212	214	212
query59	1586	1620	1417	1417
query60	284	245	224	224
query61	152	147	169	147
query62	701	656	593	593
query63	229	195	197	195
query64	2537	778	657	657
query65	4864	4778	4797	4778
query66	1767	491	365	365
query67	29909	29675	29528	29528
query68	3265	1681	933	933
query69	422	309	287	287
query70	1072	988	951	951
query71	300	273	212	212
query72	2846	2605	2381	2381
query73	837	763	453	453
query74	5141	4949	4756	4756
query75	2643	2606	2228	2228
query76	2344	1183	784	784
query77	351	379	293	293
query78	12442	12486	11852	11852
query79	1417	1166	755	755
query80	755	479	380	380
query81	483	278	239	239
query82	593	157	120	120
query83	347	289	246	246
query84	263	140	115	115
query85	901	511	472	472
query86	431	297	273	273
query87	1827	1824	1765	1765
query88	3766	2799	2793	2793
query89	428	383	329	329
query90	1807	198	186	186
query91	173	161	132	132
query92	63	59	57	57
query93	1556	1521	931	931
query94	594	368	310	310
query95	691	469	350	350
query96	1012	786	346	346
query97	2688	2689	2560	2560
query98	214	208	198	198
query99	1182	1157	1024	1024
Total cold run time: 258325 ms
Total hot run time: 172896 ms

@hello-stephen

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

query1	0.01	0.00	0.01
query2	0.11	0.05	0.05
query3	0.25	0.14	0.14
query4	1.60	0.14	0.17
query5	0.24	0.24	0.22
query6	1.21	1.03	1.09
query7	0.03	0.01	0.00
query8	0.06	0.04	0.03
query9	0.39	0.33	0.32
query10	0.57	0.59	0.56
query11	0.20	0.15	0.14
query12	0.18	0.15	0.14
query13	0.47	0.48	0.47
query14	1.01	1.02	1.03
query15	0.64	0.60	0.60
query16	0.31	0.32	0.33
query17	1.13	1.15	1.18
query18	0.23	0.21	0.22
query19	2.05	2.00	1.93
query20	0.01	0.01	0.02
query21	15.42	0.23	0.13
query22	4.85	0.06	0.05
query23	16.05	0.32	0.13
query24	2.98	0.46	0.32
query25	0.11	0.06	0.03
query26	0.76	0.21	0.15
query27	0.04	0.04	0.03
query28	3.51	0.95	0.54
query29	12.49	4.40	3.47
query30	0.26	0.15	0.18
query31	2.78	0.59	0.31
query32	3.23	0.61	0.49
query33	3.12	3.20	3.28
query34	15.67	4.25	3.50
query35	3.58	3.52	3.56
query36	0.56	0.45	0.45
query37	0.09	0.07	0.06
query38	0.05	0.04	0.04
query39	0.04	0.03	0.03
query40	0.18	0.17	0.16
query41	0.08	0.03	0.03
query42	0.04	0.03	0.03
query43	0.04	0.04	0.04
Total cold run time: 96.63 s
Total hot run time: 25.34 s

yiguolei
yiguolei previously approved these changes Jun 23, 2026
suxiaogang223
suxiaogang223 previously approved these changes Jun 23, 2026

@suxiaogang223 suxiaogang223 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 85.45% (47/55) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17612	4088	4002	4002
q2	2017	315	203	203
q3	10309	1436	811	811
q4	4680	472	343	343
q5	7506	863	580	580
q6	184	173	136	136
q7	799	852	611	611
q8	9328	1622	1623	1622
q9	5611	4591	4499	4499
q10	6809	1822	1538	1538
q11	450	275	245	245
q12	630	431	287	287
q13	18097	3329	2804	2804
q14	268	267	243	243
q15	q16	789	779	706	706
q17	967	958	1030	958
q18	6963	5851	5686	5686
q19	1303	1282	1088	1088
q20	500	399	269	269
q21	5819	2561	2560	2560
q22	441	358	303	303
Total cold run time: 101082 ms
Total hot run time: 29494 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4341	4249	4280	4249
q2	318	348	226	226
q3	4554	4956	4422	4422
q4	2111	2170	1384	1384
q5	4442	4281	4317	4281
q6	237	175	130	130
q7	1726	1644	1932	1644
q8	2662	2237	2141	2141
q9	8301	8612	8059	8059
q10	4785	4752	4332	4332
q11	581	423	385	385
q12	747	759	549	549
q13	3245	3547	2977	2977
q14	282	310	268	268
q15	q16	711	748	661	661
q17	1352	1324	1327	1324
q18	8137	7477	7245	7245
q19	1173	1170	1103	1103
q20	2238	2255	1975	1975
q21	5279	4555	4438	4438
q22	544	474	408	408
Total cold run time: 57766 ms
Total hot run time: 52201 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 172718 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 f1647af8b81698296812fda434a3737537b0b63b, data reload: false

query5	4304	639	479	479
query6	433	187	170	170
query7	4838	578	300	300
query8	360	210	192	192
query9	8753	4053	4055	4053
query10	433	316	266	266
query11	5985	2333	2135	2135
query12	158	106	101	101
query13	1303	619	455	455
query14	6375	5364	5059	5059
query14_1	4409	4390	4382	4382
query15	207	198	177	177
query16	997	456	383	383
query17	922	717	586	586
query18	2453	486	356	356
query19	211	187	143	143
query20	113	109	108	108
query21	226	142	125	125
query22	13709	13652	13358	13358
query23	17555	16641	16265	16265
query23_1	16361	16344	16286	16286
query24	7522	1793	1321	1321
query24_1	1343	1307	1315	1307
query25	589	459	405	405
query26	1319	309	171	171
query27	2674	546	343	343
query28	4470	2046	2075	2046
query29	1088	634	499	499
query30	309	243	202	202
query31	1120	1063	975	975
query32	106	63	58	58
query33	520	358	236	236
query34	1147	1127	650	650
query35	743	789	685	685
query36	1374	1392	1252	1252
query37	152	103	86	86
query38	1892	1713	1661	1661
query39	920	915	907	907
query39_1	883	904	867	867
query40	218	117	97	97
query41	75	60	60	60
query42	84	86	87	86
query43	318	321	278	278
query44	1417	768	770	768
query45	195	180	175	175
query46	1093	1270	757	757
query47	2345	2375	2228	2228
query48	375	418	306	306
query49	611	456	341	341
query50	974	363	264	264
query51	4432	4314	4287	4287
query52	81	80	67	67
query53	248	269	182	182
query54	265	211	189	189
query55	71	70	64	64
query56	235	232	218	218
query57	1478	1406	1305	1305
query58	233	225	199	199
query59	1538	1601	1411	1411
query60	277	244	220	220
query61	151	146	149	146
query62	703	642	589	589
query63	232	189	187	187
query64	2540	753	641	641
query65	4844	4785	4762	4762
query66	1808	480	338	338
query67	29109	29667	29570	29570
query68	3114	1508	863	863
query69	407	306	267	267
query70	1074	988	931	931
query71	291	224	206	206
query72	2894	2422	2326	2326
query73	823	789	452	452
query74	5088	4990	4778	4778
query75	2612	2626	2247	2247
query76	2342	1190	804	804
query77	355	380	287	287
query78	12396	12588	11901	11901
query79	1421	1203	807	807
query80	1269	460	391	391
query81	503	275	239	239
query82	585	157	119	119
query83	342	283	247	247
query84	312	147	113	113
query85	903	507	410	410
query86	412	288	289	288
query87	1837	1833	1771	1771
query88	3710	2822	2795	2795
query89	431	375	335	335
query90	1905	187	186	186
query91	172	161	135	135
query92	59	60	57	57
query93	1516	1460	875	875
query94	653	364	295	295
query95	687	461	355	355
query96	1106	813	319	319
query97	2712	2710	2584	2584
query98	224	211	196	196
query99	1215	1145	1024	1024
Total cold run time: 257883 ms
Total hot run time: 172718 ms

@hello-stephen

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

query1	0.00	0.00	0.00
query2	0.10	0.06	0.05
query3	0.26	0.13	0.13
query4	1.60	0.14	0.18
query5	0.23	0.22	0.22
query6	1.22	1.07	1.07
query7	0.03	0.01	0.00
query8	0.05	0.04	0.04
query9	0.39	0.31	0.31
query10	0.55	0.55	0.55
query11	0.18	0.14	0.14
query12	0.18	0.14	0.15
query13	0.48	0.48	0.48
query14	1.01	1.03	1.00
query15	0.61	0.58	0.60
query16	0.30	0.33	0.32
query17	1.14	1.10	1.07
query18	0.22	0.21	0.21
query19	2.07	1.99	1.85
query20	0.02	0.02	0.01
query21	15.47	0.23	0.15
query22	4.81	0.05	0.06
query23	16.15	0.33	0.12
query24	2.97	0.42	0.32
query25	0.12	0.05	0.04
query26	0.74	0.20	0.17
query27	0.04	0.04	0.04
query28	3.46	0.88	0.52
query29	12.48	4.32	3.48
query30	0.26	0.14	0.15
query31	2.76	0.61	0.32
query32	3.23	0.60	0.50
query33	3.27	3.22	3.19
query34	15.46	4.25	3.58
query35	3.54	3.50	3.58
query36	0.55	0.42	0.41
query37	0.09	0.07	0.07
query38	0.05	0.04	0.04
query39	0.04	0.02	0.02
query40	0.18	0.16	0.15
query41	0.09	0.04	0.03
query42	0.04	0.03	0.03
query43	0.04	0.04	0.03
Total cold run time: 96.48 s
Total hot run time: 25.21 s

@github-actions github-actions Bot added the approved Indicates a PR has been approved by one committer. label Jun 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

@wenzhenghu
wenzhenghu dismissed stale reviews from suxiaogang223 and yiguolei via ee28208 June 24, 2026 01:43
@github-actions github-actions Bot removed the approved Indicates a PR has been approved by one committer. label Jun 24, 2026
@wenzhenghu

Copy link
Copy Markdown
Contributor Author

run buildall

@github-actions github-actions Bot added the approved Indicates a PR has been approved by one committer. label Jun 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17812	4084	4039	4039
q2	2022	305	191	191
q3	10345	1485	842	842
q4	4677	470	338	338
q5	7529	860	586	586
q6	185	170	140	140
q7	776	851	636	636
q8	9323	1454	1593	1454
q9	5585	4511	4526	4511
q10	6814	1789	1548	1548
q11	445	278	248	248
q12	638	422	285	285
q13	18155	3330	2753	2753
q14	271	263	238	238
q15	q16	784	778	712	712
q17	982	973	981	973
q18	6777	5817	5545	5545
q19	1291	1332	1002	1002
q20	476	404	264	264
q21	5903	2584	2470	2470
q22	431	359	301	301
Total cold run time: 101221 ms
Total hot run time: 29076 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4365	4494	4309	4309
q2	309	337	216	216
q3	4614	4976	4393	4393
q4	2047	2147	1376	1376
q5	4423	4299	4330	4299
q6	229	176	128	128
q7	1727	1626	1836	1626
q8	2698	2241	2154	2154
q9	8321	8380	8015	8015
q10	4840	4794	4332	4332
q11	567	437	419	419
q12	748	789	557	557
q13	3285	3618	2915	2915
q14	302	312	282	282
q15	q16	699	747	653	653
q17	1349	1357	1390	1357
q18	7880	7495	7287	7287
q19	1165	1137	1129	1129
q20	2236	2238	1960	1960
q21	5225	4597	4441	4441
q22	520	462	396	396
Total cold run time: 57549 ms
Total hot run time: 52244 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 172802 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 a679dcc316d57b0f213b5c564145621511798cd1, data reload: false

query5	4325	653	506	506
query6	437	183	174	174
query7	4851	584	323	323
query8	370	214	194	194
query9	8752	4062	4028	4028
query10	455	309	255	255
query11	5862	2356	2131	2131
query12	162	106	102	102
query13	1254	615	441	441
query14	6343	5441	5072	5072
query14_1	4392	4388	4362	4362
query15	204	199	176	176
query16	1006	449	466	449
query17	948	715	614	614
query18	2448	488	354	354
query19	229	189	140	140
query20	109	107	109	107
query21	221	141	114	114
query22	13621	13673	13531	13531
query23	17414	16527	16182	16182
query23_1	16179	16254	16221	16221
query24	7516	1851	1319	1319
query24_1	1320	1304	1265	1265
query25	551	448	374	374
query26	1288	304	174	174
query27	2692	548	352	352
query28	4480	2032	2000	2000
query29	1053	621	472	472
query30	305	237	203	203
query31	1103	1066	943	943
query32	107	62	58	58
query33	528	328	249	249
query34	1166	1175	672	672
query35	757	778	679	679
query36	1367	1425	1252	1252
query37	151	106	85	85
query38	1898	1719	1664	1664
query39	931	923	907	907
query39_1	862	891	893	891
query40	230	122	100	100
query41	64	61	62	61
query42	87	87	90	87
query43	322	319	278	278
query44	1430	772	778	772
query45	191	184	178	178
query46	1073	1208	761	761
query47	2399	2352	2237	2237
query48	414	443	290	290
query49	646	454	352	352
query50	1055	363	267	267
query51	4506	4371	4324	4324
query52	79	83	69	69
query53	241	251	186	186
query54	260	209	195	195
query55	73	69	65	65
query56	235	221	226	221
query57	1436	1416	1328	1328
query58	239	219	213	213
query59	1578	1610	1409	1409
query60	288	255	222	222
query61	158	152	157	152
query62	686	652	569	569
query63	238	193	184	184
query64	2513	752	599	599
query65	4904	4769	4789	4769
query66	1832	465	329	329
query67	29837	29597	29615	29597
query68	3155	1600	1002	1002
query69	411	315	260	260
query70	1059	949	950	949
query71	295	237	215	215
query72	2854	2685	2326	2326
query73	863	780	452	452
query74	5120	4985	4755	4755
query75	2632	2605	2220	2220
query76	2321	1212	765	765
query77	350	378	287	287
query78	12318	12394	11832	11832
query79	1262	1132	780	780
query80	508	490	381	381
query81	455	276	241	241
query82	244	158	123	123
query83	268	269	248	248
query84	285	140	110	110
query85	818	505	414	414
query86	325	317	284	284
query87	1822	1819	1773	1773
query88	3676	2793	2775	2775
query89	449	382	331	331
query90	2211	191	174	174
query91	173	164	140	140
query92	63	57	54	54
query93	1476	1463	848	848
query94	549	342	306	306
query95	689	463	351	351
query96	1010	864	329	329
query97	2729	2717	2561	2561
query98	213	207	202	202
query99	1169	1174	1041	1041
Total cold run time: 256651 ms
Total hot run time: 172802 ms

@hello-stephen

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

query1	0.01	0.00	0.01
query2	0.09	0.05	0.04
query3	0.25	0.14	0.14
query4	1.60	0.14	0.13
query5	0.24	0.22	0.22
query6	1.26	1.06	1.06
query7	0.03	0.01	0.00
query8	0.06	0.04	0.04
query9	0.38	0.34	0.31
query10	0.56	0.59	0.56
query11	0.19	0.14	0.14
query12	0.19	0.16	0.15
query13	0.47	0.48	0.48
query14	1.03	1.02	1.00
query15	0.63	0.60	0.60
query16	0.32	0.33	0.33
query17	1.13	1.10	1.09
query18	0.23	0.21	0.22
query19	2.02	1.90	1.99
query20	0.02	0.02	0.02
query21	15.44	0.22	0.13
query22	4.80	0.05	0.05
query23	16.16	0.30	0.12
query24	3.02	0.45	0.32
query25	0.10	0.06	0.05
query26	0.74	0.21	0.14
query27	0.05	0.05	0.03
query28	3.58	0.90	0.52
query29	12.48	4.41	3.49
query30	0.27	0.16	0.15
query31	2.76	0.62	0.31
query32	3.22	0.60	0.49
query33	3.33	3.36	3.22
query34	15.60	4.20	3.53
query35	3.59	3.53	3.56
query36	0.56	0.43	0.41
query37	0.09	0.07	0.06
query38	0.06	0.04	0.04
query39	0.04	0.03	0.03
query40	0.18	0.17	0.15
query41	0.09	0.03	0.02
query42	0.04	0.03	0.02
query43	0.05	0.04	0.03
Total cold run time: 96.96 s
Total hot run time: 25.26 s

@wenzhenghu

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17592	4191	4223	4191
q2	2104	319	187	187
q3	10329	1424	852	852
q4	4684	472	339	339
q5	7501	878	568	568
q6	185	176	144	144
q7	799	827	629	629
q8	9482	1578	1627	1578
q9	5562	4502	4467	4467
q10	6773	1814	1525	1525
q11	437	275	246	246
q12	626	426	297	297
q13	18180	3404	2726	2726
q14	269	261	253	253
q15	q16	798	789	707	707
q17	1033	996	977	977
q18	6787	5679	5563	5563
q19	1363	1221	993	993
q20	491	398	263	263
q21	5970	2608	2430	2430
q22	448	358	304	304
Total cold run time: 101413 ms
Total hot run time: 29239 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4565	4425	4503	4425
q2	322	353	230	230
q3	4542	5046	4368	4368
q4	2069	2169	1394	1394
q5	4499	4319	4326	4319
q6	237	178	131	131
q7	1723	1785	1799	1785
q8	2614	2219	2226	2219
q9	8331	8573	8117	8117
q10	4913	4765	4324	4324
q11	595	413	428	413
q12	797	755	562	562
q13	3328	3578	2926	2926
q14	300	323	265	265
q15	q16	737	730	654	654
q17	1382	1358	1462	1358
q18	7944	7433	7322	7322
q19	1200	1177	1107	1107
q20	2239	2248	1951	1951
q21	5299	4691	4518	4518
q22	526	477	422	422
Total cold run time: 58162 ms
Total hot run time: 52810 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 172951 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 5815980d3f10bf7930d55a914729c0fe5cd94747, data reload: false

query5	4314	652	489	489
query6	455	193	175	175
query7	4832	541	316	316
query8	373	211	193	193
query9	8761	4096	4111	4096
query10	449	315	260	260
query11	5923	2342	2125	2125
query12	165	105	101	101
query13	1260	591	425	425
query14	6362	5416	5042	5042
query14_1	4411	4384	4370	4370
query15	212	201	185	185
query16	1032	492	445	445
query17	947	715	570	570
query18	2475	496	350	350
query19	209	190	142	142
query20	112	112	107	107
query21	232	154	117	117
query22	13652	13674	13497	13497
query23	17219	16597	16092	16092
query23_1	16338	16235	16243	16235
query24	7517	1776	1327	1327
query24_1	1338	1294	1327	1294
query25	586	447	404	404
query26	1315	322	176	176
query27	2664	576	335	335
query28	4484	2004	1996	1996
query29	1077	637	524	524
query30	318	235	201	201
query31	1107	1093	971	971
query32	103	64	60	60
query33	540	351	246	246
query34	1178	1135	654	654
query35	757	785	672	672
query36	1375	1406	1236	1236
query37	153	100	93	93
query38	1882	1710	1676	1676
query39	923	911	893	893
query39_1	872	873	886	873
query40	236	124	105	105
query41	65	62	61	61
query42	87	88	84	84
query43	316	325	280	280
query44	1421	778	772	772
query45	193	186	171	171
query46	1065	1173	783	783
query47	2358	2380	2229	2229
query48	426	443	289	289
query49	615	454	347	347
query50	951	360	267	267
query51	4352	4374	4339	4339
query52	83	83	68	68
query53	266	257	188	188
query54	264	210	199	199
query55	71	70	65	65
query56	256	224	208	208
query57	1442	1400	1318	1318
query58	240	212	205	205
query59	1571	1680	1432	1432
query60	281	248	224	224
query61	151	146	147	146
query62	704	642	587	587
query63	231	188	190	188
query64	2562	795	602	602
query65	4876	4726	4754	4726
query66	1830	466	344	344
query67	29833	29652	29644	29644
query68	3286	1500	1000	1000
query69	424	309	269	269
query70	1073	916	999	916
query71	294	235	205	205
query72	3015	2621	2242	2242
query73	892	830	430	430
query74	5072	4927	4768	4768
query75	2625	2584	2239	2239
query76	2316	1184	774	774
query77	348	390	269	269
query78	12372	12398	11912	11912
query79	1410	1177	750	750
query80	1280	461	384	384
query81	527	285	243	243
query82	626	157	123	123
query83	350	270	247	247
query84	301	149	114	114
query85	909	522	403	403
query86	472	306	290	290
query87	1833	1829	1765	1765
query88	3677	2832	2784	2784
query89	426	385	335	335
query90	1941	190	181	181
query91	172	162	135	135
query92	60	61	56	56
query93	1615	1447	905	905
query94	817	343	311	311
query95	672	475	342	342
query96	1061	799	322	322
query97	2708	2698	2591	2591
query98	222	202	204	202
query99	1174	1168	1012	1012
Total cold run time: 259020 ms
Total hot run time: 172951 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 25.41 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 5815980d3f10bf7930d55a914729c0fe5cd94747, data reload: false

query1	0.01	0.00	0.01
query2	0.10	0.05	0.05
query3	0.26	0.14	0.13
query4	1.61	0.14	0.14
query5	0.25	0.22	0.24
query6	1.23	1.06	1.12
query7	0.04	0.01	0.00
query8	0.10	0.04	0.03
query9	0.38	0.32	0.32
query10	0.58	0.59	0.60
query11	0.19	0.14	0.14
query12	0.19	0.15	0.15
query13	0.49	0.48	0.47
query14	1.03	1.02	1.01
query15	0.62	0.61	0.60
query16	0.34	0.33	0.31
query17	1.11	1.16	1.11
query18	0.24	0.21	0.21
query19	2.06	1.95	2.01
query20	0.02	0.01	0.02
query21	15.44	0.22	0.14
query22	4.95	0.06	0.05
query23	16.12	0.31	0.11
query24	3.03	0.44	0.35
query25	0.11	0.05	0.04
query26	0.77	0.22	0.16
query27	0.03	0.05	0.03
query28	3.53	0.94	0.56
query29	12.52	4.25	3.46
query30	0.27	0.17	0.15
query31	2.78	0.61	0.33
query32	3.22	0.60	0.48
query33	3.14	3.23	3.23
query34	15.64	4.20	3.49
query35	3.48	3.53	3.52
query36	0.56	0.45	0.43
query37	0.08	0.07	0.07
query38	0.06	0.04	0.04
query39	0.04	0.03	0.03
query40	0.17	0.16	0.15
query41	0.07	0.03	0.04
query42	0.04	0.03	0.03
query43	0.04	0.03	0.04
Total cold run time: 96.94 s
Total hot run time: 25.41 s

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 86.89% (53/61) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 57.38% (35/61) 🎉
Increment coverage report
Complete coverage report

@yiguolei

Copy link
Copy Markdown
Contributor

/review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Requesting changes for one concurrency issue in the manual miss-load invalidation path. The PR mostly keeps the external meta-cache change focused and adds useful FE/unit and external regression coverage, but the accepted finding means a value loaded before REFRESH CATALOG/entry invalidation can still become visible to a concurrent reader after the invalidation returns.

Critical checkpoint conclusions:

  • Goal/test coverage: The PR aims to avoid blocking external meta-cache refresh on slow miss loads and adds focused FE unit tests plus an external JDBC regression case; the tests do not cover the remaining visible put-before-remove race.
  • Scope/focus: The implementation is localized to MetaCacheEntry, one FE config, and tests.
  • Concurrency/lifecycle: The main remaining issue is concurrency between in-flight manual loads, invalidation, and the fast getIfPresent hit path.
  • Configuration: The new config is mutable and read dynamically by existing entries; no additional config propagation issue found.
  • Compatibility/persistence: No wire/storage/EditLog compatibility issue found.
  • Parallel paths: Because MetaCacheEntry is shared by external schema/partition/file/table caches, the accepted race applies to enabled entries across engines, not only JDBC.
  • Observability/performance: No additional blocking observability or performance issue found beyond the accepted correctness race.

@yiguolei
yiguolei merged commit 893e5a3 into apache:master Jun 24, 2026
32 checks passed
github-actions Bot pushed a commit that referenced this pull request Jun 24, 2026
#64705)

### What problem does this PR solve?

Issue Number: N/A

Related PR: N/A

Problem Summary:
This PR avoids blocking external meta cache invalidation on slow miss
loads in FE. Previously, `MetaCacheEntry` relied on Caffeine's
synchronous loading path for cache misses. When an external metadata
loader became slow, operations that invalidate the same cache, such as
`REFRESH CATALOG` and the corresponding replay path, could wait on the
slow load and block the replay-related invalidation flow.

Implementation summary:
- Keep the existing `LoadingCache` to preserve current hit-path behavior
and `refreshAfterWrite` support.
- Add a manual miss-load path behind a new FE config switch, using
`getIfPresent()` instead of synchronous `LoadingCache.get()` for misses.
- Deduplicate concurrent miss loads with striped locks inside
`MetaCacheEntry`.
- Add an entry-level `invalidateGeneration` counter. Each invalidate
increments the generation before clearing cache state.
- Record the generation before a manual miss load, check it once before
`put()`, and check it again after `put()`. If invalidation happens
during the race window, the just-loaded value is removed so stale data
is not kept in cache.
- Keep null miss-load results uncached so the manual path does not
attempt to put null into Caffeine.

Configuration:
- Add FE config `enable_external_meta_cache_manual_miss_load`, default
`false`.
- When it is `false`, `MetaCacheEntry` keeps the original synchronous
Caffeine miss-load behavior.
- When it is `true`, `MetaCacheEntry` uses the manual miss-load path
plus `invalidateGeneration` protection.

Scope and limitations:
- This change applies to `MetaCacheEntry` used by external metadata
cache paths in FE. It does not cover the legacy `MetaCache`.
- `LegacyMetaCacheFactory` is intentionally not refactored in this PR. A
follow-up PR will rework that path with `MetaCache`, and the legacy
factory changes are left to that dedicated refactor.
- The protection is designed for manual miss loads. It does not make
Caffeine's asynchronous `refreshAfterWrite` reload generation-aware.
- As a result, `refreshAfterWrite` is still preserved, but an async
refresh result may still write back after an invalidate. That is an
intentional trade-off in this version.
- The new regression case is valuable as a reference and for suitable
environments, but it may be skipped in standard CI because it depends on
JDBC regression setup, FE debug points, and an external MySQL/JDBC
environment.

### Release note

None

### Check List (For Author)

- Test
    - [ ] Regression test
    - [x] Unit Test
    - [x] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason

Manual test:
1. Reproduced the blocking path with `REFRESH CATALOG` against a JDBC
external catalog and a debug point that sleeps in
`PluginDrivenExternalTable.initSchema`.
2. Repeated the baseline scenario 5 times with
`enable_external_meta_cache_manual_miss_load=false` and observed
`REFRESH CATALOG` blocked for about 14s while `DESC` stayed slow.
3. Repeated the optimized scenario 5 times with
`enable_external_meta_cache_manual_miss_load=true` and observed `REFRESH
CATALOG` return within about 1s while `DESC` remained slow.
4. Added a regression case as a manual-test reference because its
execution depends on JDBC regression environment and FE debug-point
availability.

Unit test:
- `FE_UT_PARALLEL=1 ./run-fe-ut.sh --run
org.apache.doris.datasource.metacache.MetaCacheEntryTest`

- Behavior changed:
    - [x] Yes.

Behavior change:
- `REFRESH CATALOG` and the corresponding FE invalidation path are no
longer blocked by slow external metadata miss loads in this
`MetaCacheEntry` implementation.

- Does this need documentation?
    - [x] No.
    - [ ] Yes.

### Check List (For Reviewer who merge this PR)

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
yiguolei pushed a commit that referenced this pull request Jun 25, 2026
…low miss load #64705 (#64791)

Cherry-picked from #64705

Co-authored-by: Wen Zhenghu <wenzhenghu.zju@gmail.com>
@yiguolei yiguolei mentioned this pull request Jul 7, 2026
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/4.1.3-merged reviewed usercase Important user case type label

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants