Skip to content

[feature](vparquet-reader) Implements parquet file page cache.#59307

Merged
morningman merged 1 commit intoapache:masterfrom
kaka11chen:parquet_page_cache
Jan 26, 2026
Merged

[feature](vparquet-reader) Implements parquet file page cache.#59307
morningman merged 1 commit intoapache:masterfrom
kaka11chen:parquet_page_cache

Conversation

@kaka11chen
Copy link
Contributor

@kaka11chen kaka11chen commented Dec 23, 2025

What problem does this PR solve?

Problem Summary:

Release note

[Feature] Implementation of Parquet File Page Cache and Integration with Unified Page Cache Framework

Solution Overview

This PR implements a page-level caching mechanism for Parquet files and integrates it with Apache Doris's existing unified page cache framework, significantly improving query performance by caching decompressed (or compressed) data pages in memory.

Key Features

  1. Unified Page Cache Integration

• Leverages Existing Framework: Directly integrates with Doris's StoragePageCache infrastructure used for internal tables

• Shared Resource Management: Parquet cache shares memory pool and eviction policies with internal table caches

• Consistent Monitoring: Reuses existing cache statistics and RuntimeProfile for unified performance monitoring

• Cache Type Identification: Uses segment_v2::DATA_PAGE as cache page type, consistent with internal table data page caching

  1. Smart Caching Strategy

• Compression Ratio Awareness: Automatically chooses between caching compressed or decompressed data based on parquet_page_cache_decompress_threshold (default: 1.5)

• Flexible Storage: Caches decompressed data when uncompressed_size/compressed_size ≤ threshold, otherwise caches compressed data if enable_parquet_cache_compressed_pages=true

• Cache Key Design: Uses file_path::mtime::offset as key to ensure cache consistency across file modifications

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

@kaka11chen kaka11chen marked this pull request as draft December 23, 2025 17:17
@hello-stephen
Copy link
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?

@kaka11chen
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17659	4414	4144	4144
q2	2035	362	237	237
q3	10167	1359	792	792
q4	10208	839	319	319
q5	7608	2213	1914	1914
q6	203	172	137	137
q7	1019	897	724	724
q8	9367	1479	1143	1143
q9	7249	5332	5313	5313
q10	6891	2412	2000	2000
q11	527	341	305	305
q12	726	747	564	564
q13	17801	3734	3105	3105
q14	297	294	277	277
q15	606	515	504	504
q16	712	699	642	642
q17	686	793	586	586
q18	7632	7129	7120	7120
q19	1113	982	650	650
q20	399	367	249	249
q21	4294	3958	3866	3866
q22	1021	1017	948	948
Total cold run time: 108220 ms
Total hot run time: 35539 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4133	4045	4074	4045
q2	345	421	323	323
q3	2185	2727	2283	2283
q4	1380	1780	1327	1327
q5	4311	4776	4764	4764
q6	222	174	138	138
q7	2219	1998	1903	1903
q8	2813	2570	2540	2540
q9	7594	7466	7458	7458
q10	3128	3292	2848	2848
q11	614	547	535	535
q12	715	736	803	736
q13	3652	3983	3445	3445
q14	305	317	278	278
q15	567	525	510	510
q16	686	707	630	630
q17	1252	1481	1583	1481
q18	7888	7810	7484	7484
q19	918	922	927	922
q20	2045	1964	1812	1812
q21	4696	4306	4257	4257
q22	1053	1007	996	996
Total cold run time: 52721 ms
Total hot run time: 50715 ms

@doris-robot
Copy link

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

query5	4822	588	426	426
query6	323	232	212	212
query7	4222	456	274	274
query8	313	250	236	236
query9	8787	2562	2535	2535
query10	528	372	318	318
query11	15455	15488	15120	15120
query12	178	114	128	114
query13	1255	492	388	388
query14	6315	3042	2791	2791
query14_1	2660	2625	2755	2625
query15	204	195	173	173
query16	880	480	453	453
query17	1116	705	606	606
query18	2557	430	330	330
query19	229	226	196	196
query20	131	119	115	115
query21	222	137	116	116
query22	3949	4014	3896	3896
query23	16570	16482	15870	15870
query23_1	16113	16163	16008	16008
query24	7341	1644	1205	1205
query24_1	1233	1207	1227	1207
query25	588	468	420	420
query26	1254	274	160	160
query27	2766	463	305	305
query28	4509	2118	2105	2105
query29	786	560	440	440
query30	318	240	208	208
query31	845	730	616	616
query32	76	71	65	65
query33	551	334	292	292
query34	891	883	536	536
query35	779	787	707	707
query36	863	908	812	812
query37	134	99	84	84
query38	2996	3065	3020	3020
query39	770	762	720	720
query39_1	694	703	696	696
query40	229	145	132	132
query41	86	72	64	64
query42	109	108	111	108
query43	431	425	397	397
query44	1299	749	743	743
query45	190	194	185	185
query46	885	992	626	626
query47	1691	1713	1620	1620
query48	315	332	257	257
query49	636	450	373	373
query50	658	309	234	234
query51	3831	3875	3841	3841
query52	112	116	109	109
query53	315	372	306	306
query54	308	279	284	279
query55	87	81	76	76
query56	309	322	326	322
query57	1164	1180	1115	1115
query58	290	276	267	267
query59	2396	2500	2422	2422
query60	332	332	321	321
query61	200	196	188	188
query62	751	744	746	744
query63	335	298	306	298
query64	5066	1412	1126	1126
query65	4028	3979	4003	3979
query66	1450	450	344	344
query67	15264	14989	14849	14849
query68	5458	1016	728	728
query69	510	366	320	320
query70	1091	1026	1009	1009
query71	367	312	310	310
query72	6137	4970	4954	4954
query73	682	581	303	303
query74	8861	8898	8660	8660
query75	3219	3164	2811	2811
query76	3784	1141	749	749
query77	524	381	286	286
query78	9573	9530	8874	8874
query79	1550	942	629	629
query80	730	664	568	568
query81	523	264	232	232
query82	216	133	105	105
query83	258	252	234	234
query84	263	129	106	106
query85	918	514	459	459
query86	388	313	294	294
query87	3244	3176	3150	3150
query88	3300	2267	2260	2260
query89	465	427	402	402
query90	2176	162	153	153
query91	178	175	149	149
query92	86	68	63	63
query93	1775	947	580	580
query94	481	295	285	285
query95	583	328	363	328
query96	602	491	211	211
query97	2258	2302	2220	2220
query98	212	201	191	191
query99	1318	1371	1250	1250
Total cold run time: 258992 ms
Total hot run time: 179978 ms

@doris-robot
Copy link

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

query1	0.05	0.05	0.05
query2	0.09	0.05	0.05
query3	0.25	0.08	0.08
query4	1.60	0.12	0.12
query5	0.27	0.25	0.24
query6	1.19	0.64	0.64
query7	0.03	0.03	0.02
query8	0.05	0.04	0.04
query9	0.55	0.50	0.49
query10	0.55	0.56	0.56
query11	0.15	0.11	0.12
query12	0.15	0.11	0.12
query13	0.62	0.60	0.60
query14	0.98	1.00	0.99
query15	0.83	0.81	0.81
query16	0.42	0.42	0.39
query17	0.99	1.06	1.02
query18	0.23	0.21	0.22
query19	1.87	1.85	1.84
query20	0.02	0.01	0.02
query21	15.43	0.28	0.13
query22	4.84	0.05	0.05
query23	16.01	0.29	0.10
query24	1.00	0.29	0.46
query25	0.09	0.05	0.11
query26	0.14	0.13	0.13
query27	0.09	0.08	0.07
query28	4.05	1.22	1.03
query29	12.64	4.03	3.21
query30	0.27	0.14	0.11
query31	2.81	0.62	0.39
query32	3.24	0.55	0.45
query33	2.98	3.02	3.06
query34	16.70	5.17	4.54
query35	4.57	4.54	4.55
query36	0.64	0.50	0.51
query37	0.11	0.07	0.07
query38	0.08	0.04	0.04
query39	0.04	0.02	0.02
query40	0.17	0.15	0.13
query41	0.09	0.04	0.03
query42	0.05	0.03	0.03
query43	0.04	0.04	0.03
Total cold run time: 96.97 s
Total hot run time: 27.34 s

@kaka11chen
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17614	4146	4034	4034
q2	2032	359	239	239
q3	10157	1329	744	744
q4	10209	816	303	303
q5	7519	2127	1877	1877
q6	201	165	136	136
q7	1022	846	712	712
q8	9377	1374	1130	1130
q9	7022	5320	5285	5285
q10	6781	2381	1971	1971
q11	544	341	312	312
q12	678	751	572	572
q13	17792	3651	3032	3032
q14	292	299	273	273
q15	569	521	509	509
q16	711	677	617	617
q17	673	827	563	563
q18	7671	7360	8021	7360
q19	1120	978	622	622
q20	454	402	279	279
q21	4594	4448	4108	4108
q22	1129	1075	1039	1039
Total cold run time: 108161 ms
Total hot run time: 35717 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4250	4201	4169	4169
q2	340	433	342	342
q3	2337	2840	2421	2421
q4	1478	1842	1417	1417
q5	4564	4457	4491	4457
q6	215	170	129	129
q7	2039	2156	1788	1788
q8	2710	2522	2520	2520
q9	7529	7646	7497	7497
q10	3055	3274	2889	2889
q11	610	526	584	526
q12	688	740	608	608
q13	3295	3625	2976	2976
q14	264	283	257	257
q15	532	490	483	483
q16	662	653	606	606
q17	1103	1295	1347	1295
q18	7265	7101	7122	7101
q19	810	789	826	789
q20	1879	1957	1809	1809
q21	4595	4270	4202	4202
q22	1092	1036	961	961
Total cold run time: 51312 ms
Total hot run time: 49242 ms

@doris-robot
Copy link

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

query5	5033	601	451	451
query6	339	226	218	218
query7	4225	456	273	273
query8	320	253	228	228
query9	8813	2529	2523	2523
query10	532	398	328	328
query11	15452	15016	14734	14734
query12	180	119	115	115
query13	1253	497	390	390
query14	5897	2986	2767	2767
query14_1	2689	2611	2653	2611
query15	208	193	177	177
query16	819	472	450	450
query17	1088	681	589	589
query18	2452	431	337	337
query19	235	222	201	201
query20	125	120	112	112
query21	229	141	118	118
query22	3949	4068	3939	3939
query23	16746	16298	16144	16144
query23_1	16097	16162	16103	16103
query24	7344	1660	1244	1244
query24_1	1222	1210	1223	1210
query25	542	479	426	426
query26	1258	267	168	168
query27	2754	479	301	301
query28	4456	2137	2155	2137
query29	843	570	482	482
query30	325	246	215	215
query31	804	698	614	614
query32	84	72	68	68
query33	552	343	301	301
query34	925	899	545	545
query35	788	806	743	743
query36	858	899	848	848
query37	128	94	81	81
query38	3031	2998	2967	2967
query39	789	771	911	771
query39_1	698	720	693	693
query40	227	141	119	119
query41	67	62	61	61
query42	111	102	104	102
query43	432	441	428	428
query44	1308	757	731	731
query45	192	193	182	182
query46	886	982	609	609
query47	1665	1708	1635	1635
query48	317	322	242	242
query49	620	425	348	348
query50	667	302	217	217
query51	3849	3860	3788	3788
query52	101	106	98	98
query53	319	350	299	299
query54	284	265	246	246
query55	82	80	72	72
query56	292	289	310	289
query57	1195	1135	1117	1117
query58	288	260	249	249
query59	2412	2445	2397	2397
query60	352	314	293	293
query61	166	193	165	165
query62	770	748	678	678
query63	329	300	315	300
query64	5010	1319	1008	1008
query65	4058	3967	3971	3967
query66	1444	433	310	310
query67	15563	14999	14913	14913
query68	2814	1018	755	755
query69	440	351	310	310
query70	1064	985	975	975
query71	324	300	274	274
query72	6089	5143	5339	5143
query73	532	623	318	318
query74	8853	9012	8707	8707
query75	3168	3173	2810	2810
query76	2878	1166	727	727
query77	381	402	297	297
query78	9436	9619	8826	8826
query79	1394	897	613	613
query80	1624	663	560	560
query81	555	266	230	230
query82	643	133	99	99
query83	378	257	238	238
query84	266	117	101	101
query85	957	513	471	471
query86	388	307	287	287
query87	3277	3190	3083	3083
query88	3281	2273	2272	2272
query89	477	433	400	400
query90	1994	156	162	156
query91	174	165	146	146
query92	74	68	62	62
query93	1088	909	559	559
query94	576	311	254	254
query95	560	325	358	325
query96	581	458	210	210
query97	2260	2297	2199	2199
query98	213	201	197	197
query99	1356	1342	1286	1286
Total cold run time: 255635 ms
Total hot run time: 179518 ms

@doris-robot
Copy link

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

query1	0.06	0.05	0.05
query2	0.10	0.05	0.05
query3	0.26	0.09	0.09
query4	1.60	0.11	0.11
query5	0.27	0.26	0.27
query6	1.18	0.64	0.63
query7	0.03	0.02	0.02
query8	0.05	0.04	0.05
query9	0.57	0.51	0.50
query10	0.56	0.55	0.55
query11	0.15	0.10	0.11
query12	0.15	0.11	0.12
query13	0.61	0.60	0.60
query14	1.00	1.00	0.98
query15	0.81	0.80	0.80
query16	0.40	0.38	0.38
query17	1.04	1.05	1.04
query18	0.23	0.22	0.21
query19	1.86	1.85	1.86
query20	0.02	0.01	0.01
query21	15.47	0.28	0.13
query22	4.85	0.05	0.05
query23	15.93	0.28	0.10
query24	1.46	1.03	0.94
query25	0.11	0.11	0.09
query26	0.14	0.13	0.14
query27	0.07	0.06	0.05
query28	5.87	1.23	1.03
query29	12.62	4.05	3.22
query30	0.29	0.14	0.11
query31	2.84	0.62	0.38
query32	3.22	0.54	0.44
query33	3.01	2.97	2.99
query34	16.96	5.19	4.57
query35	4.61	4.60	4.57
query36	0.66	0.49	0.50
query37	0.11	0.07	0.06
query38	0.08	0.04	0.04
query39	0.04	0.03	0.02
query40	0.16	0.15	0.13
query41	0.08	0.03	0.03
query42	0.04	0.02	0.02
query43	0.04	0.03	0.04
Total cold run time: 99.61 s
Total hot run time: 27.98 s

@kaka11chen
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17622	4409	4033	4033
q2	2025	352	240	240
q3	10186	1317	740	740
q4	10208	831	311	311
q5	7534	2213	1882	1882
q6	184	163	133	133
q7	1051	882	722	722
q8	9348	1451	1211	1211
q9	7103	5372	5361	5361
q10	6854	2410	1965	1965
q11	534	323	298	298
q12	658	741	559	559
q13	17799	3665	3023	3023
q14	302	286	271	271
q15	585	524	513	513
q16	669	685	636	636
q17	684	773	596	596
q18	7464	7464	7934	7464
q19	1189	1012	662	662
q20	441	378	257	257
q21	4542	4230	4235	4230
q22	1135	1097	1034	1034
Total cold run time: 108117 ms
Total hot run time: 36141 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4351	4261	4306	4261
q2	345	421	329	329
q3	2416	2924	2413	2413
q4	1646	1856	1384	1384
q5	4513	4619	4468	4468
q6	213	175	126	126
q7	2128	1929	1833	1833
q8	2732	2450	2458	2450
q9	7578	7433	7532	7433
q10	2915	3125	2618	2618
q11	604	512	490	490
q12	643	704	591	591
q13	3284	3651	3004	3004
q14	266	280	263	263
q15	538	488	485	485
q16	619	651	610	610
q17	1111	1430	1372	1372
q18	7375	7070	7121	7070
q19	835	809	835	809
q20	1938	1935	1784	1784
q21	4616	4271	4245	4245
q22	1132	1018	995	995
Total cold run time: 51798 ms
Total hot run time: 49033 ms

@doris-robot
Copy link

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

query5	4964	614	462	462
query6	341	232	222	222
query7	4219	468	268	268
query8	300	245	241	241
query9	8765	2544	2549	2544
query10	535	371	319	319
query11	15575	14938	15036	14938
query12	175	119	121	119
query13	1256	484	395	395
query14	6087	2989	2755	2755
query14_1	2621	2612	2617	2612
query15	217	197	179	179
query16	860	483	449	449
query17	1135	726	605	605
query18	2493	447	347	347
query19	254	234	210	210
query20	124	120	119	119
query21	233	143	119	119
query22	3956	4003	4044	4003
query23	16588	16245	16059	16059
query23_1	16415	16044	16150	16044
query24	7445	1656	1210	1210
query24_1	1256	1235	1277	1235
query25	588	513	466	466
query26	1262	277	165	165
query27	2739	474	315	315
query28	4489	2136	2133	2133
query29	834	564	465	465
query30	325	246	217	217
query31	824	726	626	626
query32	81	70	76	70
query33	549	384	313	313
query34	893	902	536	536
query35	782	789	706	706
query36	878	924	804	804
query37	140	104	90	90
query38	3006	3034	2976	2976
query39	750	735	729	729
query39_1	709	740	714	714
query40	232	146	126	126
query41	70	69	70	69
query42	114	111	106	106
query43	412	424	412	412
query44	1363	752	739	739
query45	194	193	194	193
query46	883	999	626	626
query47	1665	1713	1627	1627
query48	326	335	263	263
query49	671	482	368	368
query50	663	305	236	236
query51	3768	3826	3751	3751
query52	107	113	100	100
query53	327	352	294	294
query54	303	275	311	275
query55	79	78	70	70
query56	283	318	308	308
query57	1161	1169	1081	1081
query58	258	256	256	256
query59	2435	2415	2375	2375
query60	308	309	284	284
query61	160	152	156	152
query62	732	715	663	663
query63	321	295	301	295
query64	4948	1304	989	989
query65	4045	3976	3950	3950
query66	1454	440	331	331
query67	15653	15238	15085	15085
query68	8004	1000	716	716
query69	509	350	379	350
query70	1072	995	967	967
query71	373	305	293	293
query72	6063	4956	5104	4956
query73	704	622	314	314
query74	8750	8965	8748	8748
query75	3187	3169	2782	2782
query76	3878	1147	756	756
query77	518	416	297	297
query78	9521	9678	8851	8851
query79	1313	869	606	606
query80	695	633	547	547
query81	514	261	235	235
query82	211	135	103	103
query83	263	257	240	240
query84	253	122	99	99
query85	897	499	468	468
query86	385	296	288	288
query87	3245	3175	3121	3121
query88	3172	2263	2268	2263
query89	459	422	382	382
query90	2211	158	150	150
query91	173	167	143	143
query92	84	71	70	70
query93	1140	910	560	560
query94	490	295	266	266
query95	575	379	307	307
query96	609	459	217	217
query97	2263	2306	2266	2266
query98	221	198	194	194
query99	1307	1328	1342	1328
Total cold run time: 260635 ms
Total hot run time: 179957 ms

@doris-robot
Copy link

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

query1	0.05	0.05	0.05
query2	0.10	0.05	0.05
query3	0.26	0.09	0.08
query4	1.61	0.11	0.12
query5	0.27	0.26	0.26
query6	1.16	0.64	0.63
query7	0.03	0.02	0.03
query8	0.05	0.04	0.05
query9	0.56	0.51	0.51
query10	0.55	0.55	0.54
query11	0.16	0.11	0.10
query12	0.14	0.11	0.12
query13	0.61	0.60	0.60
query14	0.99	0.99	0.98
query15	0.82	0.79	0.81
query16	0.40	0.41	0.41
query17	0.96	1.02	1.06
query18	0.22	0.22	0.21
query19	1.81	1.79	1.79
query20	0.01	0.01	0.01
query21	15.42	0.26	0.13
query22	4.98	0.05	0.04
query23	15.91	0.29	0.10
query24	0.94	0.22	0.54
query25	0.09	0.06	0.04
query26	0.15	0.14	0.13
query27	0.08	0.06	0.05
query28	3.90	1.21	1.02
query29	12.57	3.93	3.23
query30	0.28	0.14	0.12
query31	2.82	0.63	0.39
query32	3.22	0.56	0.46
query33	2.96	3.02	2.96
query34	16.97	5.18	4.56
query35	4.60	4.56	4.56
query36	0.66	0.49	0.49
query37	0.10	0.07	0.06
query38	0.07	0.03	0.04
query39	0.04	0.03	0.03
query40	0.16	0.14	0.14
query41	0.09	0.03	0.03
query42	0.04	0.03	0.03
query43	0.04	0.03	0.03
Total cold run time: 96.85 s
Total hot run time: 27.16 s

@hello-stephen
Copy link
Contributor

BE UT Coverage Report

Increment line coverage 91.97% (229/249) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 53.40% (18958/35501)
Line Coverage 39.26% (175792/447803)
Region Coverage 33.79% (135805/401928)
Branch Coverage 34.71% (58651/168955)

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 95.58% (238/249) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 72.27% (25080/34705)
Line Coverage 58.95% (263296/446628)
Region Coverage 53.74% (218251/406124)
Branch Coverage 55.37% (93864/169532)

@kaka11chen
Copy link
Contributor Author

run buildall

@kaka11chen
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

BE UT Coverage Report

Increment line coverage 91.60% (240/262) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 53.43% (18968/35502)
Line Coverage 39.30% (176038/447932)
Region Coverage 33.86% (136182/402158)
Branch Coverage 34.79% (58799/169032)

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 96.95% (254/262) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 73.86% (25634/34706)
Line Coverage 61.27% (273709/446732)
Region Coverage 56.16% (228172/406316)
Branch Coverage 58.02% (98391/169593)

@kaka11chen
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17599	4239	4090	4090
q2	2007	361	234	234
q3	10183	1356	751	751
q4	10200	839	317	317
q5	7511	2141	1984	1984
q6	194	178	140	140
q7	1006	880	713	713
q8	9369	1431	1194	1194
q9	7417	5340	5278	5278
q10	6876	2404	1998	1998
q11	541	336	311	311
q12	735	753	572	572
q13	17813	3718	3064	3064
q14	289	298	266	266
q15	603	515	505	505
q16	695	673	632	632
q17	700	822	541	541
q18	7413	7053	6872	6872
q19	1102	979	623	623
q20	405	369	258	258
q21	4341	4075	4000	4000
q22	1042	990	968	968
Total cold run time: 108041 ms
Total hot run time: 35311 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4139	4106	4115	4106
q2	329	406	309	309
q3	2179	2691	2286	2286
q4	1365	1766	1295	1295
q5	4235	4672	4722	4672
q6	238	183	141	141
q7	2074	1938	1819	1819
q8	2731	2604	2577	2577
q9	7442	7553	7432	7432
q10	3134	3248	2837	2837
q11	632	538	541	538
q12	1006	792	587	587
q13	3533	3975	3468	3468
q14	294	309	290	290
q15	570	530	567	530
q16	832	695	634	634
q17	1229	1563	1419	1419
q18	7880	7694	7554	7554
q19	881	837	874	837
q20	1989	2055	1919	1919
q21	4827	4269	4201	4201
q22	1153	1026	983	983
Total cold run time: 52692 ms
Total hot run time: 50434 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 179267 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 59ebab3389bf5deaea3a89564cce010b55705628, data reload: false

query5	4924	618	458	458
query6	336	241	208	208
query7	4229	477	267	267
query8	315	256	244	244
query9	8781	2550	2542	2542
query10	540	367	329	329
query11	15542	14988	14736	14736
query12	177	118	118	118
query13	1275	511	394	394
query14	6107	3168	2815	2815
query14_1	2703	2735	2737	2735
query15	209	195	176	176
query16	1011	476	451	451
query17	1136	724	615	615
query18	2494	447	355	355
query19	233	234	213	213
query20	126	118	119	118
query21	224	144	118	118
query22	3864	4006	3808	3808
query23	16740	16255	16143	16143
query23_1	16103	16098	15979	15979
query24	7334	1657	1265	1265
query24_1	1260	1195	1268	1195
query25	569	497	446	446
query26	830	274	175	175
query27	2713	485	309	309
query28	4410	2130	2148	2130
query29	847	576	472	472
query30	305	244	220	220
query31	825	738	617	617
query32	86	71	76	71
query33	554	344	296	296
query34	885	896	558	558
query35	749	845	726	726
query36	901	909	819	819
query37	149	94	80	80
query38	3052	3096	2992	2992
query39	746	778	743	743
query39_1	705	704	704	704
query40	231	139	119	119
query41	67	61	62	61
query42	109	107	106	106
query43	438	445	402	402
query44	1363	754	746	746
query45	195	192	189	189
query46	870	981	624	624
query47	1642	1696	1624	1624
query48	320	335	254	254
query49	609	432	351	351
query50	693	327	227	227
query51	3833	3930	3824	3824
query52	109	113	99	99
query53	322	353	297	297
query54	287	268	248	248
query55	81	82	77	77
query56	289	295	295	295
query57	1141	1146	1096	1096
query58	269	252	252	252
query59	2362	2484	2331	2331
query60	324	315	293	293
query61	163	160	164	160
query62	743	709	661	661
query63	324	304	312	304
query64	4279	1305	996	996
query65	4021	3951	3933	3933
query66	1430	442	319	319
query67	15267	15132	14888	14888
query68	8358	988	714	714
query69	518	343	306	306
query70	1121	1032	998	998
query71	372	300	279	279
query72	6148	5001	5093	5001
query73	688	623	310	310
query74	8887	8964	8603	8603
query75	3213	3203	2823	2823
query76	3858	1128	744	744
query77	528	396	295	295
query78	9421	9723	8848	8848
query79	1270	859	613	613
query80	710	671	573	573
query81	544	271	234	234
query82	225	128	109	109
query83	266	259	242	242
query84	262	126	105	105
query85	913	519	474	474
query86	388	306	273	273
query87	3171	3162	3097	3097
query88	3300	2329	2317	2317
query89	479	418	406	406
query90	2169	162	153	153
query91	176	173	147	147
query92	87	68	65	65
query93	1648	949	554	554
query94	481	303	287	287
query95	593	382	305	305
query96	611	475	219	219
query97	2268	2292	2171	2171
query98	211	198	196	196
query99	1331	1347	1292	1292
Total cold run time: 260645 ms
Total hot run time: 179267 ms

@doris-robot
Copy link

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

query1	0.06	0.05	0.05
query2	0.10	0.05	0.04
query3	0.26	0.08	0.08
query4	1.60	0.11	0.11
query5	0.28	0.26	0.27
query6	1.16	0.64	0.64
query7	0.03	0.03	0.02
query8	0.06	0.05	0.05
query9	0.59	0.50	0.51
query10	0.55	0.55	0.55
query11	0.15	0.11	0.11
query12	0.15	0.11	0.12
query13	0.64	0.59	0.62
query14	1.00	0.97	0.98
query15	0.80	0.79	0.80
query16	0.39	0.39	0.41
query17	0.98	0.96	1.04
query18	0.23	0.22	0.21
query19	1.90	1.79	1.89
query20	0.01	0.01	0.02
query21	15.45	0.28	0.13
query22	4.96	0.05	0.05
query23	16.17	0.29	0.11
query24	1.19	0.34	0.41
query25	0.07	0.06	0.04
query26	0.14	0.13	0.13
query27	0.08	0.06	0.06
query28	4.09	1.22	1.04
query29	12.59	4.08	3.17
query30	0.30	0.13	0.15
query31	2.83	0.63	0.39
query32	3.23	0.55	0.45
query33	2.97	2.96	2.98
query34	16.61	5.12	4.54
query35	4.54	4.54	4.65
query36	0.66	0.49	0.49
query37	0.11	0.07	0.06
query38	0.07	0.04	0.04
query39	0.04	0.02	0.03
query40	0.17	0.14	0.13
query41	0.09	0.04	0.03
query42	0.04	0.03	0.02
query43	0.04	0.03	0.03
Total cold run time: 97.38 s
Total hot run time: 27.13 s

@doris-robot
Copy link

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

query1	0.06	0.05	0.05
query2	0.14	0.06	0.06
query3	0.38	0.08	0.08
query4	1.61	0.10	0.10
query5	0.25	0.24	0.25
query6	1.14	0.66	0.66
query7	0.03	0.02	0.02
query8	0.07	0.06	0.06
query9	0.59	0.51	0.49
query10	0.54	0.55	0.55
query11	0.26	0.13	0.13
query12	0.26	0.14	0.13
query13	0.62	0.61	0.59
query14	0.99	0.99	0.97
query15	0.91	0.82	0.83
query16	0.38	0.40	0.39
query17	1.06	1.04	1.07
query18	0.24	0.23	0.23
query19	1.82	1.81	1.80
query20	0.03	0.01	0.02
query21	15.40	0.30	0.24
query22	4.97	0.10	0.09
query23	15.41	0.39	0.22
query24	2.63	0.51	0.35
query25	0.10	0.10	0.09
query26	0.18	0.18	0.16
query27	0.10	0.09	0.09
query28	3.76	1.13	0.96
query29	12.53	4.00	3.30
query30	0.32	0.12	0.10
query31	2.81	0.66	0.43
query32	3.23	0.63	0.50
query33	3.01	2.98	3.04
query34	16.27	5.07	4.51
query35	4.51	4.46	4.54
query36	0.61	0.49	0.50
query37	0.25	0.09	0.09
query38	0.20	0.06	0.06
query39	0.07	0.05	0.05
query40	0.20	0.17	0.16
query41	0.13	0.06	0.06
query42	0.08	0.05	0.05
query43	0.06	0.06	0.05
Total cold run time: 98.21 s
Total hot run time: 27.91 s

@hello-stephen
Copy link
Contributor

BE UT Coverage Report

Increment line coverage 81.67% (343/420) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 53.00% (19011/35871)
Line Coverage 39.05% (176186/451131)
Region Coverage 33.62% (136362/405639)
Branch Coverage 34.66% (58954/170105)

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 86.40% (362/419) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 73.94% (25990/35152)
Line Coverage 61.40% (276633/450537)
Region Coverage 56.11% (230114/410139)
Branch Coverage 58.11% (99286/170863)

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 100.00% (3/3) 🎉
Increment coverage report
Complete coverage report

return unexpected(std::move(reader_res).error());
}
auto file_reader = std::move(reader_res).value();
LOG_INFO("create file reader for path={}, size={}, mtime={}", file_description.path,
Copy link
Contributor

Choose a reason for hiding this comment

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

Remove this log, or using DEBUG level

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ok

_page_reader->file_end_offset(), _page_reader->header_start_offset());
const std::vector<uint8_t>& header_bytes = _page_reader->header_bytes();
size_t total = header_bytes.size() + level_bytes.size() + payload.size;
auto* page = new DataPage(total, true, segment_v2::DATA_PAGE);
Copy link
Contributor

Choose a reason for hiding this comment

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

Potential memory leak?
Better use a more safety way?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No leak here: StoragePageCache::insert takes ownership of the DataPage* and the LRU cache frees it via LRUHandle::free() (which deletes LRUCacheValueBase) when the entry is evicted or the
last handle is released, so the allocation in be/src/vec/exec/format/parquet/vparquet_column_chunk_reader.cpp is managed by the cache (be/src/olap/page_cache.cpp, be/src/olap/
lru_cache.h). Even in the LRU‑K “first insert not cached” path, the returned handle release will free the value.

void ColumnChunkReader<IN_COLLECTION, OFFSET_INDEX>::_insert_page_into_cache(
const std::vector<uint8_t>& level_bytes, const Slice& payload) {
StoragePageCache::CacheKey key(
fmt::format("{}::{}", _stream_reader->path(), _stream_reader->mtime()),
Copy link
Contributor

Choose a reason for hiding this comment

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

fmt::format("{}::{}", _stream_reader->path(), _stream_reader->mtime()
this part is same for every page, better cache it to reuse:

  class ParquetPageCacheKeyBuilder {
      std::string _file_key_prefix;  // Cached once per column chunk
  public:
      void init(const std::string& path, int64_t mtime) {
          _file_key_prefix = fmt::format("{}::{}", path, mtime);
      }
      StoragePageCache::CacheKey make_key(uint64_t end_offset, uint64_t offset) const {
          return StoragePageCache::CacheKey(_file_key_prefix, end_offset, offset);
      }
  };

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ok

_page_statistics.page_cache_hit_counter += 1;
// Detect whether the cached payload is compressed or decompressed and record
bool is_cache_payload_decompressed = true;
if (_cur_page_header.compressed_page_size > 0) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Better extract this check logic:

  bool should_cache_decompressed(const tparquet::PageHeader* header,
                                const tparquet::ColumnMetaData& metadata) {
      if (header->compressed_page_size <= 0) return true;
      if (metadata.codec == tparquet::CompressionCodec::UNCOMPRESSED) return true;

      double ratio = static_cast<double>(header->uncompressed_page_size) /
                     static_cast<double>(header->compressed_page_size);
      return ratio <= config::parquet_page_cache_decompress_threshold;
  }

And reuse it for both here and in be/src/vec/exec/format/parquet/vparquet_column_chunk_reader.cpp

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ok

@kaka11chen
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 79.52% (1786/2246)
Line Coverage 64.75% (31802/49114)
Region Coverage 65.48% (15846/24201)
Branch Coverage 56.01% (8417/15028)

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 100.00% (3/3) 🎉
Increment coverage report
Complete coverage report

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17682	4239	4052	4052
q2	2022	351	252	252
q3	10164	1267	717	717
q4	10207	800	306	306
q5	7614	1993	1967	1967
q6	236	168	134	134
q7	922	781	648	648
q8	9261	1380	1147	1147
q9	5107	4707	4620	4620
q10	6827	1816	1389	1389
q11	503	306	284	284
q12	762	753	603	603
q13	17805	3848	3108	3108
q14	289	287	275	275
q15	605	516	499	499
q16	689	686	659	659
q17	989	798	500	500
q18	6715	6582	7148	6582
q19	1506	1039	690	690
q20	414	384	263	263
q21	3258	2644	2520	2520
q22	1136	1098	936	936
Total cold run time: 104713 ms
Total hot run time: 32151 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4485	4262	4442	4262
q2	326	403	308	308
q3	2310	2793	2378	2378
q4	1499	1920	1530	1530
q5	4403	4410	4329	4329
q6	213	164	131	131
q7	2025	1870	1759	1759
q8	2632	2383	2366	2366
q9	7306	7241	7090	7090
q10	2557	2706	2240	2240
q11	556	456	448	448
q12	682	736	645	645
q13	3753	3934	3127	3127
q14	261	281	265	265
q15	528	479	482	479
q16	627	653	598	598
q17	1111	1270	1351	1270
q18	7521	7342	7218	7218
q19	851	777	783	777
q20	1924	1964	1799	1799
q21	4455	4329	4161	4161
q22	1068	1001	967	967
Total cold run time: 51093 ms
Total hot run time: 48147 ms

@doris-robot
Copy link

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

query5	4483	634	522	522
query6	332	237	218	218
query7	4220	471	264	264
query8	357	266	253	253
query9	8722	2880	2909	2880
query10	505	386	339	339
query11	15180	15124	14764	14764
query12	179	118	117	117
query13	1248	497	411	411
query14	5954	3061	2782	2782
query14_1	2642	2639	2728	2639
query15	208	194	179	179
query16	1003	501	484	484
query17	1095	667	580	580
query18	2426	429	340	340
query19	219	221	198	198
query20	119	114	115	114
query21	215	150	118	118
query22	3838	3935	3803	3803
query23	16103	15645	15321	15321
query23_1	15436	15580	15469	15469
query24	7195	1537	1184	1184
query24_1	1190	1179	1199	1179
query25	553	458	401	401
query26	1259	269	155	155
query27	2761	450	280	280
query28	4551	2187	2182	2182
query29	753	538	430	430
query30	317	241	209	209
query31	816	631	592	592
query32	82	76	77	76
query33	526	373	317	317
query34	909	868	531	531
query35	724	752	689	689
query36	831	902	852	852
query37	139	114	86	86
query38	2807	2747	2656	2656
query39	772	751	748	748
query39_1	725	718	712	712
query40	226	148	129	129
query41	75	67	68	67
query42	108	101	105	101
query43	488	429	415	415
query44	1312	793	745	745
query45	188	190	172	172
query46	845	933	573	573
query47	1424	1455	1291	1291
query48	322	322	231	231
query49	596	425	343	343
query50	622	266	199	199
query51	3723	3791	3685	3685
query52	99	104	93	93
query53	288	324	265	265
query54	280	268	253	253
query55	82	81	74	74
query56	297	300	316	300
query57	1017	1069	950	950
query58	262	257	254	254
query59	2143	2221	2051	2051
query60	337	331	312	312
query61	147	146	149	146
query62	388	347	322	322
query63	290	264	262	262
query64	4901	1263	942	942
query65	3746	3759	3744	3744
query66	1466	428	304	304
query67	15592	15570	15443	15443
query68	2448	1112	783	783
query69	446	361	325	325
query70	993	949	931	931
query71	316	312	289	289
query72	5271	3143	3202	3143
query73	617	729	317	317
query74	8714	8684	8547	8547
query75	2740	2804	2459	2459
query76	2261	1070	651	651
query77	361	379	310	310
query78	9776	10081	9201	9201
query79	1106	920	581	581
query80	1458	586	477	477
query81	548	259	237	237
query82	996	146	111	111
query83	353	254	237	237
query84	250	116	92	92
query85	1189	473	436	436
query86	415	303	291	291
query87	2888	2950	2736	2736
query88	3513	2628	2579	2579
query89	385	342	341	341
query90	1879	177	174	174
query91	162	158	134	134
query92	85	74	65	65
query93	1035	903	548	548
query94	645	328	293	293
query95	581	389	310	310
query96	643	509	233	233
query97	2340	2404	2295	2295
query98	211	202	208	202
query99	632	552	465	465
Total cold run time: 247273 ms
Total hot run time: 173930 ms

@doris-robot
Copy link

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

query1	0.05	0.04	0.05
query2	0.11	0.04	0.04
query3	0.26	0.08	0.08
query4	1.60	0.12	0.11
query5	0.29	0.26	0.25
query6	1.14	0.66	0.65
query7	0.04	0.02	0.03
query8	0.05	0.04	0.04
query9	0.58	0.50	0.49
query10	0.56	0.54	0.55
query11	0.14	0.10	0.10
query12	0.15	0.11	0.11
query13	0.61	0.59	0.58
query14	0.95	0.97	0.95
query15	0.81	0.78	0.79
query16	0.40	0.40	0.39
query17	1.06	1.06	1.06
query18	0.23	0.21	0.21
query19	1.96	1.81	1.88
query20	0.02	0.02	0.01
query21	15.48	0.28	0.15
query22	5.34	0.05	0.05
query23	16.17	0.28	0.11
query24	1.38	0.24	0.44
query25	0.08	0.11	0.09
query26	0.13	0.14	0.12
query27	0.06	0.05	0.06
query28	4.06	1.07	0.89
query29	12.54	3.86	3.13
query30	0.27	0.14	0.13
query31	2.81	0.65	0.39
query32	3.23	0.55	0.46
query33	2.95	3.16	3.00
query34	16.18	5.13	4.43
query35	4.45	4.52	5.19
query36	0.74	0.55	0.55
query37	0.11	0.07	0.07
query38	0.06	0.04	0.04
query39	0.05	0.03	0.03
query40	0.18	0.17	0.13
query41	0.08	0.03	0.03
query42	0.04	0.03	0.02
query43	0.05	0.03	0.04
Total cold run time: 97.45 s
Total hot run time: 26.92 s

@doris-robot
Copy link

BE UT Coverage Report

Increment line coverage 81.55% (336/412) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 52.42% (19070/36379)
Line Coverage 35.73% (176672/494425)
Region Coverage 32.27% (136767/423885)
Branch Coverage 33.16% (59126/178312)

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 86.13% (354/411) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 71.41% (25463/35656)
Line Coverage 53.96% (266488/493858)
Region Coverage 51.62% (221151/428380)
Branch Coverage 52.96% (94843/179070)

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 100.00% (3/3) 🎉
Increment coverage report
Complete coverage report

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 86.13% (354/411) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 71.41% (25463/35656)
Line Coverage 53.96% (266488/493858)
Region Coverage 51.62% (221151/428380)
Branch Coverage 52.96% (94843/179070)

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 0.00% (0/3) 🎉
Increment coverage report
Complete coverage report

@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Jan 26, 2026
@github-actions
Copy link
Contributor

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

@github-actions
Copy link
Contributor

PR approved by anyone and no changes requested.

@morningman morningman merged commit 8a8bb63 into apache:master Jan 26, 2026
29 of 33 checks passed
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.x kind/need-document-merged reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants