Skip to content

Conversation

@wenzhenghu
Copy link
Contributor

@wenzhenghu wenzhenghu commented Dec 16, 2025

To fully understand the implementation of the PR, please refer to the following link(It is a Chinese document): https://www.notion.so/V3-1-2c31293e1081807ca476dd5c87efb28e

1. PR Function Overview

The core function of this PR is the implementation of File Cache Admission Control.

  • Background: Doris supports using File Cache to accelerate data access for remote storage (e.g., HDFS, S3). However, in certain scenarios (such as large-scale ETL jobs or heavy ad-hoc queries), reading massive amounts of cold data can evict existing hot data from the File Cache. This leads to "cache pollution" and a significant drop in cache hit rates.
  • Goal: Provide a mechanism to decide whether data scanned by a specific query is allowed to enter the File Cache, based on dimensions such as user identity and table information. If admission is denied, the query will read the data directly from remote storage without populating the cache.

2. Implementation Scheme Analysis

The implementation consists of the following key components:

2.1. FE Side: Admission Decision

The primary logic is located in the createScanRangeLocations method of FileQueryScanNode.java.

  • New Configuration: Introduced the Config.enable_file_cache_admission_control switch.
  • New Manager: Introduced FileCacheAdmissionManager (Singleton) to execute the specific admission judgment logic.
  • Decision Flow:
    1. Before generating Scan Ranges, FileQueryScanNode retrieves the current User Identity (userIdentity), Catalog, Database, and Table information.
    2. It calls FileCacheAdmissionManager.getInstance().isAllowed(...) to obtain a boolean result fileCacheAdmission.
    3. It logs the decision result and the time cost in query plan.
|   0:VHIVE_SCAN_NODE(74)                                                                                       |
|      table: test_file_cache_features.tpch1_parquet.lineitem                                                   |
|      inputSplitNum=10, totalFileSize=205792918, scanRanges=10                                                 |
|      partition=1/1                                                                                            |
|      cardinality=1469949, numNodes=1                                                                          |
|      pushdown agg=NONE                                                                                        |
|      file cache request ADMITTED: user_identity:root@%, reason:user table-level whitelist rule, cost:37996 ns |
|      limit: 1 

2.2. FE Side: Decision Propagation

The decision result needs to be propagated from the FileQueryScanNode down to the underlying split assignment logic.

  • SplitAssignment Modification:

    • The constructor of the SplitAssignment class (located in org.apache.doris.datasource) is modified to accept a new boolean fileCacheAdmission parameter.
  • SplitToScanRange Modification:

    • The splitToScanRange method (or its corresponding Lambda expression) is updated to receive the fileCacheAdmission parameter.
    • This method is responsible for setting this value into the Thrift object.

2.3. Communication Protocol: Thrift Definition Update

To pass the FE's decision to the BE, the Thrift definition (likely TFileRangeDesc or TFileScanRangeParams in PlanNodes.thrift) requires a new field.

  • Inferred Change: A new field optional bool file_cache_admission, is added to the TFileRangeDesc struct.

2.4. BE Side: Enforcement

Although the analysis focuses on the FE, the complete loop requires enforcement on the BE side:

  • FileReader: The BE's FileReader (e.g., HdfsFileReader or S3FileReader) checks the file_cache_admission flag in the incoming TFileRangeDesc during initialization or reading.
  • Cache Policy:
    • If file_cache_admission is true (default): It uses the standard FileCachePolicy, where data not found in the cache is written to the Block File Cache after reading.
    • If file_cache_admission is false: It sets the FileCachePolicy to NO_CACHE, skips the cache writing step, reading directly from remote storage. This protects the existing cache from being polluted.

3. Summary

This PR introduces an Admission Control Manager during the FE query planning phase and transparently passes this control signal through the Split Assignment and Scan Range Generation phases. This ultimately guides the BE side's file readers to selectively use the file cache.

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
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?

@xuchenhao
Copy link
Contributor

run buildall

@hello-stephen
Copy link
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 79.85% (1752/2194)
Line Coverage 65.75% (30747/46764)
Region Coverage 66.55% (15370/23096)
Branch Coverage 56.86% (8168/14364)

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 55.99% (229/409) 🎉
Increment coverage report
Complete coverage report

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17643	4211	4071	4071
q2	1999	375	234	234
q3	10267	1343	753	753
q4	10341	915	329	329
q5	9129	2189	1993	1993
q6	209	168	142	142
q7	1020	855	708	708
q8	9364	1448	1232	1232
q9	7461	5369	5312	5312
q10	6890	2371	1940	1940
q11	541	322	305	305
q12	716	767	570	570
q13	17812	3658	3041	3041
q14	289	287	282	282
q15	600	523	508	508
q16	692	687	619	619
q17	727	846	497	497
q18	7902	7213	7079	7079
q19	1095	970	615	615
q20	407	363	247	247
q21	4263	3972	3676	3676
q22	1037	1020	963	963
Total cold run time: 110404 ms
Total hot run time: 35116 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4147	4022	4035	4022
q2	315	400	338	338
q3	2161	2693	2296	2296
q4	1328	1785	1324	1324
q5	4473	4973	4657	4657
q6	224	170	132	132
q7	2064	1984	1852	1852
q8	2702	2580	2648	2580
q9	7816	7550	7540	7540
q10	3135	3281	2877	2877
q11	574	523	499	499
q12	671	753	625	625
q13	3638	4168	3312	3312
q14	313	325	289	289
q15	551	505	498	498
q16	649	700	633	633
q17	1207	1665	1468	1468
q18	7858	7741	7489	7489
q19	893	892	911	892
q20	2032	2076	1896	1896
q21	5022	4372	4289	4289
q22	1026	1013	1004	1004
Total cold run time: 52799 ms
Total hot run time: 50512 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 178276 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 613dab599e351a5d89f129bb2435e6940dc39fd2, data reload: false

query5	4448	617	482	482
query6	335	227	220	220
query7	4227	474	289	289
query8	298	251	244	244
query9	8732	2567	2589	2567
query10	496	379	319	319
query11	15182	15100	14551	14551
query12	180	113	112	112
query13	1258	498	406	406
query14	6161	3269	3073	3073
query14_1	2979	2891	2949	2891
query15	216	198	180	180
query16	908	480	453	453
query17	1142	729	607	607
query18	2477	444	352	352
query19	238	241	205	205
query20	122	116	114	114
query21	220	139	113	113
query22	3932	4042	3821	3821
query23	16615	16179	15821	15821
query23_1	16032	16265	16054	16054
query24	7385	1682	1247	1247
query24_1	1255	1249	1255	1249
query25	580	508	459	459
query26	1260	274	173	173
query27	2743	467	308	308
query28	4492	2161	2147	2147
query29	831	575	474	474
query30	308	248	213	213
query31	824	704	631	631
query32	81	74	72	72
query33	543	342	304	304
query34	915	893	557	557
query35	789	797	741	741
query36	916	920	805	805
query37	156	111	82	82
query38	2865	2903	2827	2827
query39	760	730	724	724
query39_1	730	704	705	704
query40	222	142	118	118
query41	65	64	64	64
query42	114	109	109	109
query43	441	438	406	406
query44	1331	751	742	742
query45	196	191	188	188
query46	885	975	629	629
query47	1633	1662	1603	1603
query48	318	339	264	264
query49	629	427	358	358
query50	683	295	229	229
query51	3843	3850	3884	3850
query52	105	112	102	102
query53	329	352	296	296
query54	303	277	255	255
query55	79	77	73	73
query56	313	313	300	300
query57	1127	1124	1072	1072
query58	273	248	238	238
query59	2393	2570	2417	2417
query60	310	316	293	293
query61	201	155	166	155
query62	700	676	623	623
query63	324	297	303	297
query64	4984	1336	1021	1021
query65	3998	3914	3925	3914
query66	1457	445	316	316
query67	15302	15036	14830	14830
query68	8303	1013	735	735
query69	503	349	310	310
query70	1078	1005	1009	1005
query71	368	306	296	296
query72	6027	4962	5004	4962
query73	671	570	319	319
query74	8798	8777	8526	8526
query75	3183	3116	2775	2775
query76	3989	1138	742	742
query77	551	395	285	285
query78	9539	9533	8777	8777
query79	1582	876	611	611
query80	752	663	559	559
query81	522	269	234	234
query82	226	135	110	110
query83	261	253	238	238
query84	260	129	101	101
query85	931	516	474	474
query86	389	301	295	295
query87	3029	3075	2949	2949
query88	3235	2254	2248	2248
query89	465	418	396	396
query90	2195	161	147	147
query91	181	166	146	146
query92	89	65	66	65
query93	1933	908	564	564
query94	468	304	282	282
query95	588	334	314	314
query96	595	472	206	206
query97	2243	2306	2224	2224
query98	220	202	200	200
query99	1284	1286	1194	1194
Total cold run time: 260427 ms
Total hot run time: 178276 ms

@doris-robot
Copy link

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

query1	0.06	0.04	0.04
query2	0.11	0.05	0.05
query3	0.26	0.09	0.09
query4	1.61	0.12	0.11
query5	0.27	0.26	0.25
query6	1.20	0.66	0.63
query7	0.03	0.03	0.02
query8	0.06	0.04	0.04
query9	0.57	0.52	0.50
query10	0.56	0.55	0.54
query11	0.16	0.10	0.12
query12	0.15	0.12	0.11
query13	0.63	0.59	0.60
query14	1.01	0.98	0.98
query15	0.81	0.78	0.78
query16	0.40	0.41	0.41
query17	1.03	1.08	1.05
query18	0.23	0.21	0.22
query19	1.91	1.82	1.76
query20	0.02	0.02	0.01
query21	15.43	0.30	0.13
query22	4.86	0.05	0.04
query23	16.20	0.29	0.10
query24	1.93	0.23	0.31
query25	0.07	0.08	0.06
query26	0.14	0.14	0.13
query27	0.06	0.08	0.05
query28	3.16	1.22	1.02
query29	12.57	3.99	3.24
query30	0.28	0.14	0.12
query31	2.81	0.63	0.39
query32	3.24	0.54	0.45
query33	3.06	3.04	2.98
query34	17.04	5.21	4.59
query35	4.54	4.54	4.53
query36	0.65	0.50	0.49
query37	0.11	0.07	0.06
query38	0.07	0.04	0.04
query39	0.04	0.03	0.03
query40	0.17	0.14	0.14
query41	0.09	0.03	0.02
query42	0.05	0.03	0.03
query43	0.04	0.04	0.03
Total cold run time: 97.69 s
Total hot run time: 27.17 s

@hello-stephen
Copy link
Contributor

BE UT Coverage Report

Increment line coverage 60.00% (3/5) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 53.44% (18849/35274)
Line Coverage 39.22% (174515/444985)
Region Coverage 33.79% (134875/399127)
Branch Coverage 34.77% (58106/167102)

@xuchenhao
Copy link
Contributor

run buildall

@doris-robot
Copy link

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 79.85% (1752/2194)
Line Coverage 65.74% (30742/46764)
Region Coverage 66.51% (15360/23096)
Branch Coverage 56.77% (8155/14364)

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17639	4208	4120	4120
q2	2028	363	241	241
q3	10150	1337	741	741
q4	10212	849	312	312
q5	7503	2097	2014	2014
q6	210	173	135	135
q7	1019	841	704	704
q8	9345	1471	1278	1278
q9	7389	5379	5443	5379
q10	6901	2399	1985	1985
q11	553	330	295	295
q12	720	723	566	566
q13	17796	3657	3003	3003
q14	284	312	277	277
q15	594	522	509	509
q16	687	682	631	631
q17	709	788	580	580
q18	7703	7671	7920	7671
q19	1110	1060	649	649
q20	436	393	256	256
q21	4777	4198	4193	4193
q22	1101	1098	1032	1032
Total cold run time: 108866 ms
Total hot run time: 36571 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4289	4286	4246	4246
q2	370	398	314	314
q3	2334	2880	2445	2445
q4	1380	1924	1374	1374
q5	4572	4616	4563	4563
q6	260	168	121	121
q7	2073	1908	1850	1850
q8	2667	2501	2457	2457
q9	7672	7525	7490	7490
q10	3075	3235	2671	2671
q11	572	500	475	475
q12	625	700	561	561
q13	3229	3648	3040	3040
q14	276	277	255	255
q15	531	488	481	481
q16	627	631	595	595
q17	1106	1327	1325	1325
q18	7187	7248	7139	7139
q19	852	811	843	811
q20	1899	1962	1811	1811
q21	4711	4312	4256	4256
q22	1093	1034	970	970
Total cold run time: 51400 ms
Total hot run time: 49250 ms

@doris-robot
Copy link

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

query5	4914	591	446	446
query6	322	223	210	210
query7	4211	476	270	270
query8	315	255	257	255
query9	8789	2558	2539	2539
query10	536	386	321	321
query11	15311	14732	14553	14553
query12	173	118	113	113
query13	1260	506	379	379
query14	5977	3006	2768	2768
query14_1	2670	2666	2691	2666
query15	215	194	182	182
query16	839	456	454	454
query17	1145	684	585	585
query18	2479	432	338	338
query19	231	225	201	201
query20	117	115	109	109
query21	222	142	115	115
query22	3964	4106	3974	3974
query23	16789	16231	15798	15798
query23_1	16056	16009	16033	16009
query24	7316	1648	1251	1251
query24_1	1235	1239	1256	1239
query25	540	464	413	413
query26	1260	265	164	164
query27	2772	468	334	334
query28	4456	2148	2123	2123
query29	792	538	447	447
query30	315	245	219	219
query31	815	724	635	635
query32	83	70	74	70
query33	551	347	288	288
query34	918	934	558	558
query35	791	850	721	721
query36	868	917	813	813
query37	135	91	81	81
query38	2838	2803	2813	2803
query39	751	741	793	741
query39_1	700	688	691	688
query40	225	142	121	121
query41	68	64	66	64
query42	107	106	105	105
query43	445	429	404	404
query44	1322	746	740	740
query45	192	192	185	185
query46	883	994	608	608
query47	1668	1702	1635	1635
query48	322	328	253	253
query49	626	422	356	356
query50	671	294	222	222
query51	3828	3975	3826	3826
query52	105	112	101	101
query53	325	359	287	287
query54	280	258	244	244
query55	78	76	69	69
query56	302	298	295	295
query57	1153	1135	1063	1063
query58	276	250	246	246
query59	2412	2460	2427	2427
query60	312	306	289	289
query61	192	196	186	186
query62	721	654	626	626
query63	333	299	303	299
query64	5060	1450	1122	1122
query65	3961	3958	3975	3958
query66	1458	500	324	324
query67	15237	14886	14642	14642
query68	6242	1007	718	718
query69	499	343	314	314
query70	1065	1011	952	952
query71	387	304	280	280
query72	6043	4837	4901	4837
query73	672	568	317	317
query74	8731	8990	8580	8580
query75	3209	3137	2778	2778
query76	3849	1126	732	732
query77	507	400	286	286
query78	9675	9648	8899	8899
query79	1354	863	594	594
query80	726	656	559	559
query81	510	267	229	229
query82	304	129	104	104
query83	265	253	237	237
query84	263	114	110	110
query85	902	502	463	463
query86	314	300	294	294
query87	3023	3031	2998	2998
query88	3245	2275	2260	2260
query89	460	415	405	405
query90	1977	160	157	157
query91	178	165	146	146
query92	72	64	64	64
query93	1133	892	565	565
query94	478	295	301	295
query95	602	411	331	331
query96	586	491	213	213
query97	2316	2327	2230	2230
query98	211	196	185	185
query99	1278	1300	1211	1211
Total cold run time: 257702 ms
Total hot run time: 178175 ms

@doris-robot
Copy link

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

query1	0.06	0.05	0.05
query2	0.09	0.05	0.05
query3	0.26	0.08	0.08
query4	1.61	0.11	0.11
query5	0.27	0.24	0.26
query6	1.16	0.65	0.63
query7	0.03	0.03	0.02
query8	0.06	0.04	0.04
query9	0.59	0.51	0.51
query10	0.55	0.55	0.56
query11	0.15	0.12	0.10
query12	0.15	0.11	0.12
query13	0.62	0.60	0.61
query14	0.99	0.98	0.98
query15	0.80	0.80	0.79
query16	0.39	0.41	0.39
query17	0.97	1.01	0.99
query18	0.23	0.22	0.21
query19	1.93	1.75	1.82
query20	0.02	0.02	0.01
query21	15.60	0.29	0.14
query22	4.88	0.05	0.05
query23	15.98	0.28	0.10
query24	0.97	1.82	0.60
query25	0.09	0.08	0.08
query26	0.14	0.14	0.13
query27	0.08	0.06	0.06
query28	5.26	1.21	1.02
query29	12.65	3.97	3.22
query30	0.28	0.14	0.12
query31	2.83	0.61	0.39
query32	3.22	0.55	0.46
query33	2.96	2.99	2.99
query34	16.89	5.15	4.56
query35	4.56	5.14	4.94
query36	0.70	0.56	0.52
query37	0.11	0.06	0.07
query38	0.07	0.03	0.04
query39	0.05	0.03	0.03
query40	0.19	0.16	0.17
query41	0.09	0.03	0.03
query42	0.04	0.03	0.03
query43	0.04	0.04	0.03
Total cold run time: 98.61 s
Total hot run time: 27.96 s

@doris-robot
Copy link

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

query1	0.06	0.04	0.05
query2	0.15	0.07	0.06
query3	0.34	0.07	0.07
query4	1.61	0.10	0.10
query5	0.26	0.24	0.25
query6	1.14	0.64	0.65
query7	0.03	0.03	0.02
query8	0.07	0.05	0.06
query9	0.56	0.51	0.51
query10	0.56	0.56	0.55
query11	0.26	0.13	0.13
query12	0.26	0.14	0.14
query13	0.62	0.62	0.61
query14	0.98	0.97	0.99
query15	0.86	0.79	0.80
query16	0.39	0.39	0.39
query17	1.05	1.00	1.03
query18	0.24	0.22	0.22
query19	1.86	1.86	1.88
query20	0.06	0.01	0.01
query21	15.40	0.28	0.25
query22	4.97	0.09	0.09
query23	15.41	0.38	0.23
query24	2.37	0.48	0.30
query25	0.10	0.09	0.10
query26	0.18	0.17	0.17
query27	0.10	0.10	0.09
query28	3.71	1.14	0.97
query29	12.55	4.01	3.22
query30	0.33	0.13	0.11
query31	2.80	0.68	0.43
query32	3.23	0.61	0.49
query33	2.95	3.02	3.00
query34	16.90	5.13	4.46
query35	4.49	4.60	4.52
query36	0.62	0.49	0.50
query37	0.25	0.08	0.08
query38	0.22	0.05	0.05
query39	0.07	0.04	0.04
query40	0.20	0.16	0.15
query41	0.12	0.07	0.07
query42	0.07	0.05	0.04
query43	0.05	0.05	0.05
Total cold run time: 98.45 s
Total hot run time: 27.79 s

@xuchenhao
Copy link
Contributor

run buildall

@doris-robot
Copy link

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 79.53% (1779/2237)
Line Coverage 64.70% (31472/48643)
Region Coverage 65.37% (15652/23943)
Branch Coverage 55.98% (8316/14856)

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17601	4225	4143	4143
q2	2045	369	244	244
q3	10503	1304	749	749
q4	10328	832	316	316
q5	9429	2317	1818	1818
q6	225	171	140	140
q7	926	804	663	663
q8	9278	1385	1170	1170
q9	5012	4560	4517	4517
q10	6830	1800	1402	1402
q11	514	310	285	285
q12	751	758	593	593
q13	17829	3877	3234	3234
q14	287	297	279	279
q15	599	526	500	500
q16	673	678	633	633
q17	685	819	524	524
q18	6814	6487	6421	6421
q19	1116	979	618	618
q20	395	365	259	259
q21	3014	2452	2292	2292
q22	1052	990	964	964
Total cold run time: 105906 ms
Total hot run time: 31764 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4127	4045	4042	4042
q2	331	405	335	335
q3	2123	2567	2228	2228
q4	1369	1773	1331	1331
q5	4232	4015	4100	4015
q6	209	172	130	130
q7	1914	2226	1843	1843
q8	2557	2427	2535	2427
q9	7215	7101	7129	7101
q10	2533	2789	2333	2333
q11	553	484	485	484
q12	736	764	629	629
q13	3643	4269	3437	3437
q14	278	324	306	306
q15	548	537	511	511
q16	668	694	641	641
q17	1164	1380	1467	1380
q18	7908	7791	7689	7689
q19	853	835	861	835
q20	1957	2021	1992	1992
q21	4885	4218	4067	4067
q22	1069	1029	977	977
Total cold run time: 50872 ms
Total hot run time: 48733 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 172434 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 1289199ca76a8da397382f7d203bd983884f0d8d, data reload: false

query5	4398	589	445	445
query6	342	225	227	225
query7	4228	457	257	257
query8	335	242	229	229
query9	8770	2655	2657	2655
query10	542	362	327	327
query11	15289	15092	14893	14893
query12	178	115	116	115
query13	1259	500	367	367
query14	6252	3000	2729	2729
query14_1	2654	2656	2727	2656
query15	213	195	171	171
query16	975	379	464	379
query17	1078	654	550	550
query18	2515	432	327	327
query19	218	215	195	195
query20	122	120	122	120
query21	214	138	115	115
query22	3830	4192	3897	3897
query23	15974	15675	15347	15347
query23_1	15513	15348	15536	15348
query24	7399	1567	1188	1188
query24_1	1203	1179	1197	1179
query25	573	492	421	421
query26	1246	275	167	167
query27	2742	462	289	289
query28	4583	2118	2139	2118
query29	837	557	466	466
query30	308	246	216	216
query31	782	634	562	562
query32	83	76	71	71
query33	553	360	301	301
query34	916	873	526	526
query35	751	783	683	683
query36	863	885	800	800
query37	135	105	84	84
query38	2716	2652	2699	2652
query39	781	759	741	741
query39_1	715	716	696	696
query40	220	135	121	121
query41	75	71	70	70
query42	112	119	112	112
query43	481	469	414	414
query44	1298	726	723	723
query45	190	190	180	180
query46	858	963	592	592
query47	1375	1419	1358	1358
query48	316	330	257	257
query49	625	426	340	340
query50	640	275	214	214
query51	3769	3821	3751	3751
query52	109	113	105	105
query53	297	325	280	280
query54	306	276	269	269
query55	85	82	81	81
query56	305	304	317	304
query57	1013	1031	880	880
query58	277	265	274	265
query59	2182	2255	2097	2097
query60	343	370	292	292
query61	168	155	161	155
query62	389	342	310	310
query63	297	270	277	270
query64	5081	1314	989	989
query65	3867	3727	3734	3727
query66	1419	425	303	303
query67	15193	15934	14398	14398
query68	6493	978	710	710
query69	512	349	307	307
query70	1063	942	927	927
query71	368	309	275	275
query72	6085	3546	3424	3424
query73	770	714	296	296
query74	8827	8724	8652	8652
query75	2821	2807	2441	2441
query76	3823	1067	647	647
query77	521	374	276	276
query78	9780	9821	9116	9116
query79	1458	907	592	592
query80	641	570	471	471
query81	505	261	233	233
query82	208	149	110	110
query83	259	257	238	238
query84	258	125	105	105
query85	926	527	452	452
query86	395	299	318	299
query87	2858	2862	2762	2762
query88	3137	2237	2222	2222
query89	384	354	324	324
query90	2022	155	143	143
query91	180	171	148	148
query92	74	73	60	60
query93	1069	914	536	536
query94	565	312	295	295
query95	591	322	367	322
query96	580	449	209	209
query97	2311	2368	2308	2308
query98	232	203	202	202
query99	582	583	503	503
Total cold run time: 252731 ms
Total hot run time: 172434 ms

@doris-robot
Copy link

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

query1	0.06	0.04	0.04
query2	0.15	0.06	0.07
query3	0.33	0.08	0.08
query4	1.61	0.10	0.10
query5	0.26	0.24	0.25
query6	1.15	0.66	0.66
query7	0.03	0.02	0.02
query8	0.08	0.06	0.06
query9	0.58	0.50	0.50
query10	0.56	0.56	0.55
query11	0.26	0.13	0.13
query12	0.26	0.14	0.14
query13	0.63	0.62	0.61
query14	0.98	0.97	0.97
query15	0.87	0.82	0.81
query16	0.39	0.39	0.40
query17	1.06	1.07	1.05
query18	0.24	0.23	0.22
query19	1.93	1.89	1.77
query20	0.02	0.01	0.01
query21	15.40	0.28	0.25
query22	4.96	0.10	0.10
query23	15.39	0.38	0.22
query24	2.36	0.46	0.30
query25	0.10	0.10	0.09
query26	0.18	0.18	0.18
query27	0.10	0.09	0.10
query28	3.69	1.14	0.96
query29	12.58	4.06	3.27
query30	0.32	0.13	0.11
query31	2.80	0.68	0.43
query32	3.24	0.61	0.49
query33	2.97	3.06	3.00
query34	16.89	5.09	4.49
query35	4.51	4.54	4.49
query36	0.62	0.50	0.49
query37	0.26	0.09	0.08
query38	0.21	0.06	0.06
query39	0.07	0.05	0.05
query40	0.19	0.17	0.17
query41	0.13	0.06	0.07
query42	0.08	0.05	0.05
query43	0.06	0.05	0.04
Total cold run time: 98.56 s
Total hot run time: 27.88 s

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 1.27% (5/395) 🎉
Increment coverage report
Complete coverage report

@xuchenhao
Copy link
Contributor

run buildall

@doris-robot
Copy link

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 79.57% (1784/2242)
Line Coverage 64.74% (31723/48997)
Region Coverage 65.38% (15770/24120)
Branch Coverage 55.98% (8379/14968)

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 53.92% (213/395) 🎉
Increment coverage report
Complete coverage report

@xuchenhao
Copy link
Contributor

run buildall

@doris-robot
Copy link

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 79.57% (1784/2242)
Line Coverage 64.75% (31726/48997)
Region Coverage 65.44% (15783/24120)
Branch Coverage 55.97% (8377/14968)

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17616	4385	4099	4099
q2	2005	377	246	246
q3	10159	1369	727	727
q4	10219	900	332	332
q5	7513	2148	1842	1842
q6	196	174	140	140
q7	966	785	677	677
q8	9305	1406	1200	1200
q9	4953	4646	4730	4646
q10	6777	1810	1376	1376
q11	525	316	302	302
q12	699	743	579	579
q13	17789	4061	3094	3094
q14	293	303	291	291
q15	589	518	508	508
q16	719	712	672	672
q17	678	828	508	508
q18	6902	6577	7375	6577
q19	1124	1066	636	636
q20	427	399	257	257
q21	3307	2648	2649	2648
q22	1145	1089	1069	1069
Total cold run time: 103906 ms
Total hot run time: 32426 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4465	4205	4325	4205
q2	354	420	341	341
q3	2293	2820	2425	2425
q4	1465	1955	1434	1434
q5	4573	4293	4465	4293
q6	234	182	143	143
q7	2078	1903	1733	1733
q8	2601	2418	2405	2405
q9	7329	7085	7161	7085
q10	2508	2651	2314	2314
q11	595	479	454	454
q12	719	770	645	645
q13	3708	4163	3382	3382
q14	297	296	295	295
q15	550	509	524	509
q16	652	706	662	662
q17	1127	1276	1276	1276
q18	7728	7515	7241	7241
q19	841	826	843	826
q20	1935	1995	1822	1822
q21	4629	4265	4271	4265
q22	1076	1033	966	966
Total cold run time: 51757 ms
Total hot run time: 48721 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 172790 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 786c2e2b3e951a4d6654eced5e8c8147f50dad90, data reload: false

query5	4395	580	427	427
query6	339	223	207	207
query7	4228	447	279	279
query8	343	253	243	243
query9	8755	2678	2644	2644
query10	512	366	311	311
query11	15466	15175	14750	14750
query12	175	117	113	113
query13	1251	461	382	382
query14	5535	3055	2767	2767
query14_1	2728	2681	2725	2681
query15	199	201	175	175
query16	987	479	474	474
query17	1022	690	598	598
query18	2437	450	355	355
query19	240	225	201	201
query20	122	122	119	119
query21	213	146	123	123
query22	4039	4166	3840	3840
query23	16001	15625	15313	15313
query23_1	15428	15491	15419	15419
query24	7467	1540	1177	1177
query24_1	1199	1183	1156	1156
query25	523	435	399	399
query26	1236	268	157	157
query27	2771	456	283	283
query28	4552	2146	2125	2125
query29	759	530	438	438
query30	317	241	208	208
query31	791	635	584	584
query32	75	73	67	67
query33	535	327	282	282
query34	923	893	527	527
query35	724	763	684	684
query36	889	860	807	807
query37	133	93	73	73
query38	2729	2661	2627	2627
query39	768	772	734	734
query39_1	714	706	709	706
query40	238	143	114	114
query41	70	62	62	62
query42	106	107	107	107
query43	472	456	421	421
query44	1299	724	729	724
query45	188	185	177	177
query46	840	957	588	588
query47	1426	1435	1290	1290
query48	301	331	239	239
query49	610	416	324	324
query50	638	268	199	199
query51	3965	3771	3800	3771
query52	102	108	99	99
query53	298	331	273	273
query54	285	259	245	245
query55	76	78	68	68
query56	275	296	284	284
query57	1027	1021	936	936
query58	269	253	248	248
query59	2048	2218	2180	2180
query60	319	318	287	287
query61	162	159	159	159
query62	408	336	332	332
query63	304	271	272	271
query64	4997	1304	992	992
query65	3805	3783	3736	3736
query66	1454	413	315	315
query67	14966	15131	14869	14869
query68	2713	1019	753	753
query69	457	342	309	309
query70	1014	960	869	869
query71	323	301	288	288
query72	6115	3411	3491	3411
query73	591	736	300	300
query74	8762	8750	8599	8599
query75	2748	2773	2502	2502
query76	2875	1050	631	631
query77	335	372	285	285
query78	9627	9879	9228	9228
query79	959	916	586	586
query80	624	555	488	488
query81	491	268	229	229
query82	211	152	114	114
query83	265	272	236	236
query84	276	124	103	103
query85	840	524	462	462
query86	323	322	297	297
query87	2899	2869	2791	2791
query88	3133	2222	2189	2189
query89	392	354	324	324
query90	2090	157	148	148
query91	178	169	143	143
query92	71	65	62	62
query93	942	920	539	539
query94	455	287	284	284
query95	565	371	314	314
query96	598	449	202	202
query97	2295	2374	2287	2287
query98	224	206	194	194
query99	574	568	491	491
Total cold run time: 245548 ms
Total hot run time: 172790 ms

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 53.92% (213/395) 🎉
Increment coverage report
Complete coverage report

@xuchenhao
Copy link
Contributor

run buildall

@hello-stephen
Copy link
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 79.57% (1784/2242)
Line Coverage 64.75% (31728/48997)
Region Coverage 65.43% (15782/24120)
Branch Coverage 55.98% (8379/14968)

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 53.92% (213/395) 🎉
Increment coverage report
Complete coverage report

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17656	4307	4112	4112
q2	2074	366	238	238
q3	10332	1291	728	728
q4	10340	905	322	322
q5	9268	2130	1867	1867
q6	218	173	139	139
q7	929	829	670	670
q8	9279	1442	1187	1187
q9	5228	4611	4701	4611
q10	6862	1856	1445	1445
q11	506	305	291	291
q12	715	789	584	584
q13	17791	3865	3097	3097
q14	302	304	278	278
q15	585	519	506	506
q16	696	668	645	645
q17	690	800	534	534
q18	6651	6543	6404	6404
q19	1115	984	611	611
q20	402	367	258	258
q21	3044	2440	2303	2303
q22	1066	1030	990	990
Total cold run time: 105749 ms
Total hot run time: 31820 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4175	4086	4053	4053
q2	332	388	323	323
q3	2088	2606	2231	2231
q4	1346	1773	1356	1356
q5	4123	4034	4052	4034
q6	215	170	132	132
q7	1909	2216	1831	1831
q8	2618	2350	2378	2350
q9	7258	7142	7292	7142
q10	2512	2830	2233	2233
q11	583	498	456	456
q12	693	750	625	625
q13	3581	4146	3506	3506
q14	286	300	283	283
q15	553	496	504	496
q16	667	692	689	689
q17	1206	1335	1391	1335
q18	7936	7987	7898	7898
q19	920	822	888	822
q20	2090	2021	1938	1938
q21	5022	4416	4403	4403
q22	1068	1043	1002	1002
Total cold run time: 51181 ms
Total hot run time: 49138 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 173079 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 01784b020871d72ea23b35a8f34c404634055fb9, data reload: false

query5	4430	596	445	445
query6	345	239	231	231
query7	4204	452	269	269
query8	349	260	242	242
query9	8760	2678	2702	2678
query10	521	371	309	309
query11	15237	15107	15064	15064
query12	171	112	113	112
query13	1252	498	369	369
query14	6047	2997	2773	2773
query14_1	2657	2603	2664	2603
query15	196	190	170	170
query16	995	472	439	439
query17	1070	656	553	553
query18	2423	422	340	340
query19	221	215	195	195
query20	119	117	121	117
query21	227	152	127	127
query22	4048	4256	4221	4221
query23	16230	15909	15291	15291
query23_1	15526	15727	15493	15493
query24	7369	1558	1160	1160
query24_1	1197	1189	1196	1189
query25	526	474	398	398
query26	1257	294	156	156
query27	2736	442	280	280
query28	4575	2159	2127	2127
query29	736	530	468	468
query30	306	244	218	218
query31	796	639	562	562
query32	79	70	63	63
query33	531	329	289	289
query34	917	874	529	529
query35	723	793	691	691
query36	886	908	781	781
query37	133	93	80	80
query38	2710	2674	2654	2654
query39	770	751	738	738
query39_1	722	736	715	715
query40	218	136	122	122
query41	67	64	62	62
query42	109	103	103	103
query43	464	442	425	425
query44	1312	726	725	725
query45	188	184	176	176
query46	841	952	604	604
query47	1461	1529	1368	1368
query48	316	316	250	250
query49	600	418	327	327
query50	635	291	193	193
query51	3756	3813	3705	3705
query52	103	107	96	96
query53	284	323	271	271
query54	280	257	248	248
query55	76	74	72	72
query56	290	288	282	282
query57	1056	986	911	911
query58	272	248	252	248
query59	2166	2149	1999	1999
query60	318	334	315	315
query61	201	154	155	154
query62	401	361	329	329
query63	300	268	295	268
query64	4845	1311	965	965
query65	3765	3739	3747	3739
query66	1449	408	301	301
query67	14728	14924	14582	14582
query68	2771	1028	737	737
query69	454	341	309	309
query70	999	939	966	939
query71	317	296	276	276
query72	6291	3596	3664	3596
query73	603	741	304	304
query74	8887	8799	8672	8672
query75	2775	2803	2458	2458
query76	2438	1092	634	634
query77	345	364	291	291
query78	9874	10135	9321	9321
query79	1044	906	591	591
query80	694	592	516	516
query81	557	265	235	235
query82	1342	146	110	110
query83	365	265	233	233
query84	261	124	100	100
query85	865	522	450	450
query86	346	292	282	282
query87	2836	2877	2766	2766
query88	3249	2234	2207	2207
query89	392	349	330	330
query90	1879	154	147	147
query91	170	162	145	145
query92	71	67	67	67
query93	936	910	523	523
query94	447	312	307	307
query95	572	376	319	319
query96	593	461	215	215
query97	2335	2381	2346	2346
query98	205	196	197	196
query99	600	582	512	512
Total cold run time: 247435 ms
Total hot run time: 173079 ms

@hello-stephen
Copy link
Contributor

BE UT Coverage Report

Increment line coverage 60.00% (3/5) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 53.02% (18981/35797)
Line Coverage 39.10% (175976/450043)
Region Coverage 33.68% (136279/404610)
Branch Coverage 34.70% (58902/169733)

@morningman morningman self-assigned this Jan 12, 2026
Copy link
Contributor

@morningman morningman left a comment

Choose a reason for hiding this comment

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

BTW, could you give a complete rule json example?
And does it easy to extend to internal table?

@wenzhenghu
Copy link
Contributor Author

BTW, could you give a complete rule json example? And does it easy to extend to internal table?

  1. example rule json file:
[
  {
    "id": 395744,
    "enabled": 1,
    "rule_type": 0,
    "table_name": "",
    "catalog_name": "noise_catalog_42",
    "created_time": 1766557246,
    "updated_time": 1766557246,
    "database_name": "noise_db_46",
    "user_identity": "Mgywiqjyt@%",
    "partition_pattern": ""
  },
  {
    "id": 395745,
    "enabled": 1,
    "rule_type": 0,
    "table_name": "noise_table_74",
    "catalog_name": "noise_catalog_50",
    "created_time": 1766557246,
    "updated_time": 1766557246,
    "database_name": "noise_db_85",
    "user_identity": "Chaykxshz@%",
    "partition_pattern": ""
  },
  {
    "id": 395746,
    "enabled": 1,
    "rule_type": 0,
    "table_name": "noise_table_14",
    "catalog_name": "noise_catalog_28",
    "created_time": 1766557246,
    "updated_time": 1766557246,
    "database_name": "noise_db_11",
    "user_identity": "yvnuuocpv@%",
    "partition_pattern": ""
  }
]
  1. it could extend to internal table scenario. If needed, we can implement internal table admission control in subsequent PRs.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants