Skip to content

[feat](iceberg) HDFS lazy open + iceberg delete file file_size propagation - #66773

Open
cambyzju wants to merge 14 commits into
apache:masterfrom
cambyzju:opt-master-lazyopen-260814
Open

[feat](iceberg) HDFS lazy open + iceberg delete file file_size propagation#66773
cambyzju wants to merge 14 commits into
apache:masterfrom
cambyzju:opt-master-lazyopen-260814

Conversation

@cambyzju

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Problem Summary:
When block cache hits, HdfsFileReader still calls hdfsOpenFile on every construction, wasting NameNode RPCs for data that's never read from HDFS.

How To Fix:

  1. HdfsFileHandle now lazily opens on first read;
  2. FE propagates delete file file_size through thrift to BE;

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
  • Behavior changed:

    • No.
    • Yes.
  • 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?

@cambyzju

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17649	3143	3130	3130
q2	1887	236	154	154
q3	10465	956	510	510
q4	4673	251	204	204
q5	7668	560	373	373
q6	137	117	98	98
q7	538	504	392	392
q8	9246	901	960	901
q9	3461	2357	2388	2357
q10	6521	876	704	704
q11	440	257	242	242
q12	708	395	338	338
q13	17879	1860	1522	1522
q14	167	151	138	138
q15	q16	432	406	363	363
q17	803	817	856	817
q18	3081	2256	2223	2223
q19	1295	911	772	772
q20	685	530	475	475
q21	5750	1704	2056	1704
q22	328	275	225	225
Total cold run time: 93813 ms
Total hot run time: 17642 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	3510	3460	3439	3439
q2	218	218	159	159
q3	2187	2323	2175	2175
q4	1189	1188	901	901
q5	2197	2131	2108	2108
q6	175	123	88	88
q7	1038	934	820	820
q8	1621	1440	1420	1420
q9	3086	3045	3030	3030
q10	1881	1796	1618	1618
q11	353	273	251	251
q12	461	442	348	348
q13	1807	1867	1558	1558
q14	175	184	169	169
q15	q16	393	394	367	367
q17	1049	1048	1041	1041
q18	4948	4385	4728	4385
q19	891	850	859	850
q20	978	935	828	828
q21	3883	3182	3438	3182
q22	383	359	326	326
Total cold run time: 32423 ms
Total hot run time: 29063 ms

@hello-stephen

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

query5	4223	416	344	344
query6	395	162	152	152
query7	4885	427	267	267
query8	292	121	107	107
query9	8678	2901	2913	2901
query10	380	271	215	215
query11	5377	1021	902	902
query12	118	71	70	70
query13	1202	469	339	339
query14	5952	2005	1885	1885
query14_1	1784	1769	1757	1757
query15	179	111	111	111
query16	918	388	357	357
query17	793	445	368	368
query18	2339	325	235	235
query19	170	146	122	122
query20	70	70	68	68
query21	208	128	103	103
query22	5564	5357	5370	5357
query23	7289	6614	6597	6597
query23_1	6549	6668	6556	6556
query24	7297	1102	778	778
query24_1	804	783	803	783
query25	442	306	276	276
query26	1267	279	177	177
query27	2695	423	277	277
query28	4665	1514	1519	1514
query29	938	457	358	358
query30	276	182	153	153
query31	975	657	620	620
query32	95	52	52	52
query33	460	216	189	189
query34	1005	812	459	459
query35	407	396	349	349
query36	566	553	532	532
query37	124	85	76	76
query38	1005	855	793	793
query39	536	547	527	527
query39_1	524	510	476	476
query40	225	122	114	114
query41	60	59	57	57
query42	79	78	77	77
query43	253	252	221	221
query44	1021	564	573	564
query45	114	104	101	101
query46	809	806	532	532
query47	1007	970	893	893
query48	328	322	230	230
query49	542	270	195	195
query50	778	332	263	263
query51	8053	8060	8017	8017
query52	72	75	60	60
query53	208	217	162	162
query54	220	177	192	177
query55	75	56	55	55
query56	230	217	257	217
query57	650	634	635	634
query58	221	200	200	200
query59	1127	1117	995	995
query60	243	227	203	203
query61	117	112	109	109
query62	374	205	180	180
query63	199	160	152	152
query64	2706	677	527	527
query65	1562	1568	1525	1525
query66	1774	300	246	246
query67	9766	9870	9588	9588
query68	2882	1183	802	802
query69	326	232	189	189
query70	648	602	595	595
query71	299	245	234	234
query72	2494	1781	1543	1543
query73	660	585	360	360
query74	1845	1218	1137	1137
query75	1235	1149	1006	1006
query76	2291	753	548	548
query77	243	273	206	206
query78	5239	4768	4441	4441
query79	1187	813	592	592
query80	1151	388	347	347
query81	469	200	170	170
query82	639	137	110	110
query83	316	254	241	241
query84	296	124	102	102
query85	856	437	374	374
query86	386	182	170	170
query87	1008	963	884	884
query88	2798	2126	2141	2126
query89	303	233	212	212
query90	1841	149	144	144
query91	154	147	124	124
query92	49	46	47	46
query93	1367	1185	789	789
query94	618	265	213	213
query95	613	365	349	349
query96	826	583	277	277
query97	1058	1064	1039	1039
query98	141	139	132	132
query99	411	345	310	310
Total cold run time: 178297 ms
Total hot run time: 85447 ms

@hello-stephen

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

query1	0.01	0.00	0.01
query2	0.08	0.03	0.03
query3	0.25	0.11	0.11
query4	1.60	0.10	0.09
query5	0.17	0.16	0.16
query6	1.26	0.70	0.68
query7	0.03	0.01	0.00
query8	0.05	0.03	0.03
query9	0.30	0.20	0.20
query10	0.35	0.36	0.33
query11	0.16	0.11	0.12
query12	0.15	0.12	0.12
query13	0.30	0.32	0.30
query14	0.49	0.45	0.46
query15	0.35	0.34	0.35
query16	0.21	0.22	0.22
query17	0.69	0.73	0.64
query18	0.20	0.17	0.17
query19	1.15	1.15	1.17
query20	0.02	0.01	0.01
query21	15.43	0.15	0.11
query22	5.08	0.05	0.04
query23	16.19	0.27	0.12
query24	2.96	0.32	0.27
query25	0.12	0.04	0.04
query26	0.80	0.17	0.12
query27	0.04	0.02	0.03
query28	3.64	0.56	0.28
query29	12.41	3.19	2.59
query30	0.26	0.11	0.12
query31	2.76	0.36	0.17
query32	3.53	0.32	0.23
query33	1.37	1.41	1.37
query34	15.39	2.17	1.75
query35	1.74	1.72	1.72
query36	0.46	0.29	0.29
query37	0.07	0.04	0.04
query38	0.05	0.03	0.03
query39	0.03	0.03	0.02
query40	0.11	0.08	0.07
query41	0.08	0.03	0.03
query42	0.03	0.03	0.02
query43	0.03	0.02	0.03
Total cold run time: 90.4 s
Total hot run time: 14.6 s

@hello-stephen

Copy link
Copy Markdown
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 78.23% (2001/2558)
Line Coverage 65.30% (36508/55907)
Region Coverage 65.49% (18564/28347)
Branch Coverage 55.14% (10106/18328)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage `` 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 100% (0/0) 🎉
Increment coverage report
Complete coverage report

@qzsee

qzsee commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

/review

@cambyzju
cambyzju force-pushed the opt-master-lazyopen-260814 branch from 9c0e9b1 to 8f93283 Compare August 19, 2026 01:28
@cambyzju

Copy link
Copy Markdown
Contributor Author

run buildall

@cambyzju

Copy link
Copy Markdown
Contributor Author

/review

@github-actions

Copy link
Copy Markdown
Contributor

Codex automated review failed and did not complete.

Error: All Codex review accounts are usage-limited; earliest retry is 2026-08-20T03:35:00Z.
Workflow run: https://github.com/apache/doris/actions/runs/32205132735

Please trigger /review again after that time.

@cambyzju
cambyzju force-pushed the opt-master-lazyopen-260814 branch from 143126e to 71bb025 Compare August 19, 2026 14:59
@cambyzju

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	16602	3152	3116	3116
q2	1897	235	147	147
q3	10182	891	509	509
q4	4605	246	201	201
q5	7695	589	396	396
q6	155	118	93	93
q7	537	503	390	390
q8	9424	880	970	880
q9	3526	2434	2390	2390
q10	6501	852	707	707
q11	446	264	234	234
q12	680	388	327	327
q13	17655	1573	1161	1161
q14	160	148	141	141
q15	q16	427	403	367	367
q17	785	744	837	744
q18	3133	2311	2243	2243
q19	1488	918	762	762
q20	654	501	458	458
q21	5655	1710	1912	1710
q22	326	266	236	236
Total cold run time: 92533 ms
Total hot run time: 17212 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	3522	3459	3450	3450
q2	208	222	157	157
q3	2255	2283	2207	2207
q4	1200	1223	900	900
q5	2199	2121	2096	2096
q6	171	134	90	90
q7	1039	938	891	891
q8	1634	1450	1443	1443
q9	3193	3142	3148	3142
q10	1848	1793	1606	1606
q11	361	279	259	259
q12	458	429	354	354
q13	1494	1559	1161	1161
q14	190	166	185	166
q15	q16	398	399	353	353
q17	1081	1053	1058	1053
q18	4934	4410	4781	4410
q19	854	824	856	824
q20	945	917	819	819
q21	3766	3163	3351	3163
q22	400	361	320	320
Total cold run time: 32150 ms
Total hot run time: 28864 ms

@hello-stephen

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

query5	4302	419	330	330
query6	430	163	164	163
query7	4843	437	258	258
query8	292	126	115	115
query9	8655	2927	2893	2893
query10	401	246	207	207
query11	5387	1034	921	921
query12	120	71	74	71
query13	1182	431	324	324
query14	6042	2214	2098	2098
query14_1	2008	2003	1987	1987
query15	180	122	111	111
query16	911	377	330	330
query17	906	464	371	371
query18	2337	342	240	240
query19	172	148	118	118
query20	84	72	73	72
query21	216	118	100	100
query22	5296	5462	5290	5290
query23	6667	6247	6003	6003
query23_1	6037	6072	5912	5912
query24	7055	1096	757	757
query24_1	783	776	790	776
query25	447	284	231	231
query26	1264	271	171	171
query27	2700	451	281	281
query28	4478	1490	1510	1490
query29	941	431	352	352
query30	274	183	152	152
query31	838	431	359	359
query32	98	49	49	49
query33	464	220	184	184
query34	986	780	495	495
query35	392	386	329	329
query36	569	530	508	508
query37	119	81	69	69
query38	1011	841	829	829
query39	528	497	472	472
query39_1	452	470	469	469
query40	216	125	109	109
query41	62	60	51	51
query42	84	82	76	76
query43	247	249	216	216
query44	1010	548	543	543
query45	108	103	99	99
query46	749	810	515	515
query47	751	742	711	711
query48	328	294	221	221
query49	521	232	199	199
query50	806	338	280	280
query51	8111	8127	8308	8127
query52	71	73	62	62
query53	206	208	157	157
query54	218	176	179	176
query55	84	60	58	58
query56	251	241	211	211
query57	681	670	661	661
query58	207	184	198	184
query59	1241	1240	1116	1116
query60	257	198	213	198
query61	112	118	116	116
query62	351	210	179	179
query63	183	153	153	153
query64	2623	745	734	734
query65	1593	1620	1581	1581
query66	1952	306	264	264
query67	9953	9708	9697	9697
query68	2978	1143	794	794
query69	336	216	198	198
query70	686	614	626	614
query71	302	243	241	241
query72	2266	1744	1569	1569
query73	651	608	341	341
query74	1984	1231	1147	1147
query75	1243	1153	1016	1016
query76	2130	744	537	537
query77	262	268	210	210
query78	4077	3574	3159	3159
query79	2331	827	590	590
query80	1643	384	340	340
query81	486	197	171	171
query82	644	132	101	101
query83	322	254	231	231
query84	286	125	102	102
query85	853	433	384	384
query86	388	197	169	169
query87	1009	967	896	896
query88	2796	2143	2149	2143
query89	306	220	202	202
query90	1975	143	149	143
query91	156	135	123	123
query92	63	48	46	46
query93	1577	1193	734	734
query94	614	253	231	231
query95	620	365	321	321
query96	811	623	270	270
query97	1069	1045	1038	1038
query98	151	143	135	135
query99	422	348	315	315
Total cold run time: 177662 ms
Total hot run time: 83307 ms

@hello-stephen

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

query1	0.01	0.00	0.00
query2	0.13	0.06	0.06
query3	0.39	0.20	0.20
query4	1.61	0.20	0.19
query5	0.25	0.23	0.23
query6	1.16	0.39	0.39
query7	0.03	0.01	0.01
query8	0.07	0.06	0.05
query9	0.43	0.28	0.28
query10	0.39	0.39	0.39
query11	0.27	0.15	0.15
query12	0.27	0.16	0.15
query13	0.36	0.38	0.36
query14	0.46	0.46	0.44
query15	0.49	0.39	0.40
query16	0.29	0.28	0.28
query17	0.65	0.66	0.65
query18	0.26	0.23	0.24
query19	1.21	1.14	1.10
query20	0.02	0.01	0.01
query21	15.41	0.29	0.25
query22	4.88	0.11	0.11
query23	15.92	0.39	0.24
query24	2.57	0.46	0.33
query25	0.13	0.08	0.08
query26	0.74	0.21	0.17
query27	0.09	0.08	0.08
query28	3.42	0.65	0.36
query29	12.39	3.37	2.64
query30	0.33	0.20	0.21
query31	2.78	0.41	0.22
query32	3.43	0.37	0.28
query33	1.44	1.34	1.45
query34	15.36	2.31	1.85
query35	1.84	1.83	1.83
query36	0.51	0.36	0.36
query37	0.09	0.07	0.08
query38	0.07	0.06	0.06
query39	0.06	0.05	0.04
query40	0.14	0.11	0.11
query41	0.11	0.06	0.06
query42	0.08	0.05	0.04
query43	0.06	0.05	0.05
Total cold run time: 90.6 s
Total hot run time: 16.33 s

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17426	3144	3164	3144
q2	2061	239	157	157
q3	10038	884	540	540
q4	4667	250	205	205
q5	7749	597	401	401
q6	159	113	92	92
q7	548	504	403	403
q8	9296	931	925	925
q9	3427	2419	2429	2419
q10	6497	877	701	701
q11	442	277	237	237
q12	712	392	336	336
q13	17873	1562	1172	1172
q14	161	144	140	140
q15	q16	445	404	366	366
q17	844	817	858	817
q18	3146	2268	2256	2256
q19	2633	956	858	858
q20	669	547	457	457
q21	5640	1667	1949	1667
q22	346	263	230	230
Total cold run time: 94779 ms
Total hot run time: 17523 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	3625	3469	3433	3433
q2	217	214	160	160
q3	2231	2312	2121	2121
q4	1201	1173	901	901
q5	2182	2122	2132	2122
q6	171	134	87	87
q7	1025	905	844	844
q8	1631	1457	1454	1454
q9	3169	3142	3116	3116
q10	1867	1778	1626	1626
q11	363	276	257	257
q12	474	439	343	343
q13	1505	1564	1164	1164
q14	177	183	170	170
q15	q16	397	397	361	361
q17	1081	1055	1044	1044
q18	4934	4382	4717	4382
q19	874	858	832	832
q20	950	950	817	817
q21	3863	3076	3290	3076
q22	401	339	322	322
Total cold run time: 32338 ms
Total hot run time: 28632 ms

@hello-stephen

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

query5	4306	417	340	340
query6	434	166	151	151
query7	4852	425	276	276
query8	298	131	117	117
query9	8674	2903	2937	2903
query10	396	261	225	225
query11	5420	1046	906	906
query12	117	72	70	70
query13	1209	457	312	312
query14	5980	2221	2122	2122
query14_1	2021	2003	2006	2003
query15	178	118	113	113
query16	951	389	364	364
query17	898	483	382	382
query18	2352	331	256	256
query19	183	148	118	118
query20	94	71	70	70
query21	213	119	103	103
query22	5456	5451	5315	5315
query23	6726	6125	5959	5959
query23_1	6221	6028	6046	6028
query24	7194	1081	775	775
query24_1	773	796	804	796
query25	555	320	277	277
query26	1270	260	163	163
query27	2731	449	275	275
query28	4569	1522	1515	1515
query29	963	454	352	352
query30	279	183	153	153
query31	873	433	363	363
query32	102	52	51	51
query33	479	246	191	191
query34	1062	867	496	496
query35	420	395	338	338
query36	568	562	523	523
query37	121	82	71	71
query38	1010	843	808	808
query39	514	485	455	455
query39_1	471	451	464	451
query40	216	120	110	110
query41	55	53	49	49
query42	83	77	75	75
query43	242	244	216	216
query44	1069	544	546	544
query45	116	106	96	96
query46	792	812	525	525
query47	749	748	738	738
query48	318	278	232	232
query49	551	233	195	195
query50	812	327	263	263
query51	8322	8312	8380	8312
query52	74	73	63	63
query53	199	212	156	156
query54	226	179	158	158
query55	83	57	55	55
query56	235	218	203	203
query57	692	685	661	661
query58	240	189	180	180
query59	1231	1215	1109	1109
query60	253	200	188	188
query61	112	107	126	107
query62	455	211	182	182
query63	188	156	152	152
query64	2752	671	553	553
query65	1611	1649	1625	1625
query66	1837	331	260	260
query67	9869	9818	9625	9625
query68	2775	1187	798	798
query69	356	230	209	209
query70	687	648	601	601
query71	316	258	260	258
query72	2518	1717	1547	1547
query73	703	605	359	359
query74	1570	1249	1162	1162
query75	1223	1158	1014	1014
query76	2221	757	550	550
query77	247	267	216	216
query78	3747	3611	3131	3131
query79	2845	844	592	592
query80	1637	392	353	353
query81	529	198	176	176
query82	675	141	101	101
query83	315	247	229	229
query84	307	124	105	105
query85	912	449	401	401
query86	558	174	160	160
query87	1019	988	899	899
query88	2961	2153	2142	2142
query89	323	226	207	207
query90	2164	149	146	146
query91	154	139	125	125
query92	71	46	42	42
query93	1766	1169	827	827
query94	688	247	229	229
query95	613	450	337	337
query96	790	580	287	287
query97	1050	1056	992	992
query98	166	139	133	133
query99	489	369	317	317
Total cold run time: 180139 ms
Total hot run time: 83680 ms

@hello-stephen

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

query1	0.00	0.00	0.00
query2	0.15	0.07	0.06
query3	0.43	0.20	0.19
query4	1.61	0.18	0.18
query5	0.26	0.23	0.24
query6	1.17	0.40	0.39
query7	0.05	0.01	0.01
query8	0.08	0.06	0.06
query9	0.53	0.28	0.27
query10	0.39	0.40	0.39
query11	0.33	0.15	0.15
query12	0.31	0.15	0.16
query13	0.36	0.38	0.37
query14	0.46	0.46	0.45
query15	0.55	0.39	0.40
query16	0.28	0.28	0.28
query17	0.68	0.64	0.67
query18	0.26	0.24	0.24
query19	1.25	1.10	1.08
query20	0.02	0.01	0.01
query21	15.52	0.30	0.26
query22	4.96	0.10	0.11
query23	15.77	0.40	0.25
query24	2.79	0.46	0.35
query25	0.16	0.08	0.08
query26	0.84	0.21	0.17
query27	0.09	0.08	0.08
query28	3.56	0.64	0.37
query29	12.40	3.30	2.68
query30	0.37	0.17	0.20
query31	2.76	0.41	0.22
query32	3.38	0.36	0.26
query33	1.36	1.49	1.38
query34	15.39	2.36	1.91
query35	1.87	1.83	1.84
query36	0.61	0.38	0.36
query37	0.10	0.07	0.07
query38	0.06	0.05	0.05
query39	0.06	0.05	0.05
query40	0.15	0.11	0.11
query41	0.12	0.07	0.06
query42	0.07	0.05	0.05
query43	0.06	0.05	0.06
Total cold run time: 91.62 s
Total hot run time: 16.45 s

@hello-stephen

Copy link
Copy Markdown
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 77.05% (2011/2610)
Line Coverage 64.85% (36600/56434)
Region Coverage 52.17% (33994/65159)
Branch Coverage 55.06% (10823/19656)

@hello-stephen

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

query5	4279	416	350	350
query6	395	164	156	156
query7	4880	454	266	266
query8	292	126	118	118
query9	8675	2896	2902	2896
query10	380	254	241	241
query11	5367	1078	921	921
query12	117	70	71	70
query13	1197	441	343	343
query14	6144	2198	2093	2093
query14_1	1986	1945	1969	1945
query15	168	118	108	108
query16	907	369	369	369
query17	800	465	377	377
query18	2337	333	243	243
query19	168	145	117	117
query20	81	72	73	72
query21	210	117	104	104
query22	5417	5417	5227	5227
query23	6781	6126	6037	6037
query23_1	6008	6070	6072	6070
query24	7210	1108	766	766
query24_1	768	786	792	786
query25	434	304	267	267
query26	1263	287	166	166
query27	2702	447	298	298
query28	4564	1493	1498	1493
query29	938	461	360	360
query30	270	170	154	154
query31	851	422	347	347
query32	103	52	51	51
query33	459	211	190	190
query34	970	846	499	499
query35	425	416	354	354
query36	549	562	524	524
query37	119	81	73	73
query38	996	856	798	798
query39	501	483	492	483
query39_1	466	477	483	477
query40	225	131	110	110
query41	58	54	56	54
query42	84	80	80	80
query43	244	241	210	210
query44	1000	545	527	527
query45	118	106	104	104
query46	785	858	510	510
query47	771	776	717	717
query48	315	325	242	242
query49	536	255	200	200
query50	874	337	262	262
query51	8074	8187	8226	8187
query52	75	70	61	61
query53	211	210	215	210
query54	231	182	191	182
query55	74	56	53	53
query56	229	220	224	220
query57	693	673	663	663
query58	227	194	212	194
query59	1262	1223	1102	1102
query60	246	214	196	196
query61	116	121	114	114
query62	336	206	174	174
query63	183	158	148	148
query64	2735	687	619	619
query65	1699	1580	1583	1580
query66	1894	338	273	273
query67	10159	10092	9712	9712
query68	2771	1215	786	786
query69	345	213	195	195
query70	671	632	621	621
query71	297	255	243	243
query72	2265	1704	1573	1573
query73	651	601	341	341
query74	1570	1226	1139	1139
query75	1215	1160	991	991
query76	2252	744	559	559
query77	247	260	202	202
query78	4141	3694	3325	3325
query79	1331	854	560	560
query80	1228	382	354	354
query81	482	194	179	179
query82	603	125	95	95
query83	327	256	237	237
query84	296	124	101	101
query85	829	426	409	409
query86	379	177	163	163
query87	1002	983	896	896
query88	2800	2120	2125	2120
query89	306	221	210	210
query90	1949	147	141	141
query91	157	144	122	122
query92	51	48	42	42
query93	1408	1168	707	707
query94	632	253	228	228
query95	605	448	329	329
query96	834	574	271	271
query97	1046	1054	1025	1025
query98	146	132	132	132
query99	420	349	309	309
Total cold run time: 176262 ms
Total hot run time: 83748 ms

@hello-stephen

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

query1	0.01	0.01	0.01
query2	0.11	0.06	0.07
query3	0.32	0.18	0.20
query4	1.60	0.16	0.18
query5	0.25	0.23	0.24
query6	1.15	0.38	0.39
query7	0.04	0.01	0.00
query8	0.07	0.05	0.06
query9	0.40	0.27	0.28
query10	0.39	0.40	0.39
query11	0.27	0.16	0.15
query12	0.27	0.15	0.16
query13	0.37	0.38	0.37
query14	0.46	0.46	0.44
query15	0.49	0.40	0.39
query16	0.28	0.28	0.28
query17	0.66	0.63	0.64
query18	0.24	0.21	0.22
query19	1.19	1.11	1.12
query20	0.01	0.02	0.01
query21	15.40	0.30	0.25
query22	4.88	0.11	0.10
query23	15.94	0.38	0.25
query24	2.56	0.46	0.32
query25	0.12	0.08	0.08
query26	0.71	0.22	0.19
query27	0.08	0.07	0.08
query28	3.47	0.65	0.35
query29	12.46	3.27	2.65
query30	0.33	0.19	0.22
query31	2.75	0.43	0.21
query32	3.42	0.37	0.27
query33	1.46	1.37	1.35
query34	15.38	2.32	1.94
query35	1.92	1.89	1.83
query36	0.49	0.36	0.35
query37	0.09	0.06	0.06
query38	0.07	0.05	0.05
query39	0.06	0.05	0.04
query40	0.15	0.10	0.11
query41	0.10	0.06	0.06
query42	0.07	0.04	0.05
query43	0.05	0.05	0.05
Total cold run time: 90.54 s
Total hot run time: 16.27 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 57.14% (8/14) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.02% (34310/45133)
Line Coverage 60.91% (386447/634412)
Region Coverage 57.02% (323903/568059)
Branch Coverage 57.78% (147552/255376)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 100% (0/0) 🎉
Increment coverage report
Complete coverage report

Gabriel39
Gabriel39 previously approved these changes Aug 22, 2026
@cambyzju

Copy link
Copy Markdown
Contributor Author

run check_coverage

…ard null _handle in read_at_impl

Two review comments on HDFS lazy open:

1. HdfsFileHandle::ensure_open() called hdfs_error() outside the call_once
   lambda, so waiting callers would query libhdfs thread-local last-error in
   their own thread context and see empty/unrelated errors. Move hdfs_error()
   and Status construction inside the lambda, store as _open_status, return
   the same Status to every caller.

2. HdfsFileReader::read_at_impl() called _handle->ensure_open() before any
   null guard. After a failed read sets _handle=nullptr, a subsequent read
   would dereference null. Add null guard before ensure_open().

Tests:
- OpenFailurePreservesStatusInsideCallOnce: serial test verifies _open_status
  is preserved across calls (hdfs_error mock changed between calls).
- ConcurrentOpenFailureReturnsSameStatusToAllCallers: 8 threads verify all
  callers see NOT_FOUND (simulates libhdfs thread-local last-error).
- SecondReadAfterFailureDoesNotCrash: second read_at after first failed read
  returns InternalError instead of crashing.

Also refactor MockHandleGuard to use a set_mock_return helper.
@cambyzju
cambyzju force-pushed the opt-master-lazyopen-260814 branch from cdcf29c to 0072668 Compare August 31, 2026 07:54
@cambyzju

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage `` 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 57.14% (8/14) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 62.86% (29425/46811)
Line Coverage 47.85% (308044/643834)
Region Coverage 43.41% (248567/572569)
Branch Coverage 44.98% (115693/257236)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 57.14% (8/14) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.26% (34574/45336)
Line Coverage 61.15% (389201/636469)
Region Coverage 57.31% (326891/570374)
Branch Coverage 58.09% (149001/256495)

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17604	2998	2999	2998
q2	2078	258	215	215
q3	10264	851	516	516
q4	4673	247	199	199
q5	7671	556	393	393
q6	138	118	94	94
q7	558	499	390	390
q8	9235	918	941	918
q9	3454	2399	2401	2399
q10	6514	873	699	699
q11	388	196	177	177
q12	610	256	194	194
q13	18142	1503	1144	1144
q14	157	154	137	137
q15	q16	431	401	363	363
q17	1381	922	806	806
q18	3029	2285	2232	2232
q19	1111	858	762	762
q20	368	288	197	197
q21	5225	1728	1871	1728
q22	341	268	235	235
Total cold run time: 93372 ms
Total hot run time: 16796 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	3365	3295	3275	3275
q2	503	398	367	367
q3	2189	2367	2139	2139
q4	1180	1167	886	886
q5	2165	2108	2112	2108
q6	161	115	88	88
q7	992	929	876	876
q8	1588	1407	1394	1394
q9	3120	3076	3060	3060
q10	1868	1777	1632	1632
q11	348	267	249	249
q12	451	424	351	351
q13	1491	1550	1154	1154
q14	173	175	160	160
q15	q16	397	394	371	371
q17	3623	3312	3220	3220
q18	4814	4453	4717	4453
q19	890	784	838	784
q20	1069	970	810	810
q21	3861	3123	3280	3123
q22	398	343	308	308
Total cold run time: 34646 ms
Total hot run time: 30808 ms

@hello-stephen

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

query5	4253	405	334	334
query6	379	143	121	121
query7	4955	389	234	234
query8	297	124	113	113
query9	8683	2862	2853	2853
query10	389	219	185	185
query11	5379	1047	920	920
query12	112	70	79	70
query13	1208	451	344	344
query14	6123	2155	2075	2075
query14_1	1969	1943	1945	1943
query15	177	123	112	112
query16	903	369	348	348
query17	783	486	355	355
query18	2323	320	231	231
query19	152	137	105	105
query20	69	69	68	68
query21	196	99	84	84
query22	5267	5341	5246	5246
query23	6691	6111	5984	5984
query23_1	6029	6088	6107	6088
query24	7269	1087	756	756
query24_1	766	798	755	755
query25	410	278	237	237
query26	1228	239	125	125
query27	2805	432	244	244
query28	4676	1504	1509	1504
query29	922	437	334	334
query30	255	157	128	128
query31	810	396	325	325
query32	130	71	70	70
query33	455	215	179	179
query34	1007	805	477	477
query35	390	394	336	336
query36	553	584	537	537
query37	117	77	70	70
query38	987	836	810	810
query39	527	474	480	474
query39_1	466	480	484	480
query40	199	89	75	75
query41	54	53	52	52
query42	72	71	70	70
query43	234	240	204	204
query44	1010	536	549	536
query45	107	120	98	98
query46	793	859	515	515
query47	751	758	698	698
query48	304	314	233	233
query49	522	240	186	186
query50	750	266	197	197
query51	8085	7954	7928	7928
query52	73	66	59	59
query53	195	194	144	144
query54	211	195	149	149
query55	76	57	53	53
query56	192	164	162	162
query57	667	656	657	656
query58	183	168	247	168
query59	1200	1229	1075	1075
query60	239	215	186	186
query61	135	130	163	130
query62	374	214	202	202
query63	165	148	148	148
query64	2899	800	670	670
query65	1684	1586	1550	1550
query66	1797	266	210	210
query67	9752	9830	9418	9418
query68	3023	1186	767	767
query69	354	216	198	198
query70	657	604	598	598
query71	257	180	162	162
query72	2357	1752	1606	1606
query73	680	589	346	346
query74	2009	1210	1124	1124
query75	1178	1099	949	949
query76	2365	747	532	532
query77	255	252	210	210
query78	3897	3708	3202	3202
query79	2841	803	585	585
query80	1567	330	292	292
query81	509	153	133	133
query82	608	134	97	97
query83	279	199	187	187
query84	300	113	84	84
query85	834	364	298	298
query86	487	181	168	168
query87	1002	957	881	881
query88	4391	2093	2079	2079
query89	276	194	174	174
query90	2203	128	121	121
query91	132	125	104	104
query92	100	68	71	68
query93	3021	1053	661	661
query94	651	238	221	221
query95	524	322	241	241
query96	863	569	273	273
query97	1048	1035	1006	1006
query98	168	132	130	130
query99	422	357	315	315
Total cold run time: 181514 ms
Total hot run time: 81392 ms

@hello-stephen

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

query1	0.01	0.01	0.01
query2	0.08	0.04	0.04
query3	0.25	0.11	0.11
query4	1.61	0.09	0.09
query5	0.17	0.16	0.17
query6	1.26	0.70	0.68
query7	0.03	0.00	0.00
query8	0.04	0.03	0.03
query9	0.28	0.21	0.21
query10	0.36	0.34	0.35
query11	0.16	0.11	0.11
query12	0.15	0.12	0.12
query13	0.30	0.31	0.32
query14	0.45	0.46	0.46
query15	0.36	0.35	0.34
query16	0.20	0.22	0.22
query17	0.63	0.71	0.70
query18	0.17	0.17	0.17
query19	1.13	1.16	1.17
query20	0.02	0.01	0.01
query21	15.46	0.17	0.11
query22	5.08	0.05	0.04
query23	16.17	0.25	0.10
query24	3.03	0.33	0.27
query25	0.11	0.04	0.03
query26	0.79	0.18	0.12
query27	0.03	0.04	0.03
query28	3.66	0.57	0.26
query29	12.47	3.19	2.57
query30	0.25	0.11	0.11
query31	2.76	0.36	0.17
query32	3.55	0.32	0.23
query33	1.37	1.42	1.53
query34	15.38	2.14	1.73
query35	1.71	1.72	1.74
query36	0.47	0.29	0.28
query37	0.06	0.04	0.04
query38	0.05	0.03	0.02
query39	0.03	0.02	0.02
query40	0.12	0.07	0.07
query41	0.08	0.02	0.03
query42	0.03	0.02	0.02
query43	0.03	0.02	0.03
Total cold run time: 90.35 s
Total hot run time: 14.67 s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants