Skip to content

[Refactor](Multi Catalog) External meta cache framework with engine adapters#60937

Open
suxiaogang223 wants to merge 38 commits intoapache:masterfrom
suxiaogang223:Refact-ExternalMetaCache
Open

[Refactor](Multi Catalog) External meta cache framework with engine adapters#60937
suxiaogang223 wants to merge 38 commits intoapache:masterfrom
suxiaogang223:Refact-ExternalMetaCache

Conversation

@suxiaogang223
Copy link
Contributor

What problem does this PR solve?

Part of #60686

Summary

Introduce a unified external metadata cache framework and migrate Iceberg / Paimon / Hudi / MaxCompute / Doris to engine-level cache adapters while keeping Common/Hive on the legacy path for incremental rollout.

New Meta Cache Framework

The new framework standardizes external metadata caching into a 3-level model:

  • Engine level: ExternalMetaCacheMgr routes by engine (hive/iceberg/paimon/hudi/maxcompute/doris).
  • Catalog level: each engine cache keeps isolated cache entries per catalog id.
  • Entry level: each engine declares explicit MetaCacheEntryDef (name, key type, value type, loader, default spec).

Structure (simplified):

ExternalMetaCache (interface)
  ^
  |
AbstractExternalMetaCache
  |-- metaCacheEntryDefs: Map<String, MetaCacheEntryDef>
  |-- catalogEntries: Map<CatalogId, CatalogEntryGroup>
  |
  +-- MetaCacheEntryDef (definition only)
  |     |-- name / keyType / valueType / loader / defaultCacheSpec
  |
  +-- MetaCacheEntry (runtime cache, per catalog)
        |-- get / put / invalidate* / stats

Core components:

  • ExternalMetaCache: unified engine-level contract (initCatalog, scoped invalidation, stats).
  • AbstractExternalMetaCache: shared implementation for entry registration, per-catalog entry group creation, type-safe entry lookup, lifecycle management.
  • MetaCacheEntryDef: immutable declaration of an entry.
  • MetaCacheEntry: generic cache runtime (load on miss, invalidate by key/predicate/all, per-entry stats).
  • CacheSpec: unified cache policy (enable, ttl-second, capacity) and compatibility key mapping.
  • CatalogEntryGroup: container for all entries in one catalog.

Initialization and lifecycle:

  • During ExternalCatalog.makeSureInitialized(), ExternalMetaCacheMgr.prepareCatalog(...) eagerly initializes engine entries for that catalog.
  • On property updates or refresh events, manager-level invalidation APIs trigger scoped rebuild/invalidation at engine/catalog/db/table/partition level.
  • Stats are exposed as engine.entry -> metric map, so each entry can be observed independently.

Configuration model:

  • Unified keys: meta.cache.<engine>.<entry>.enable|ttl-second|capacity
  • Defaults come from each MetaCacheEntryDef default CacheSpec.
  • CacheSpec.applyCompatibilityMap(...) supports smooth migration from legacy keys.

ExternalMetaCacheMgr engineCaches Organization

engineCaches is a concurrent map: Map<String, ExternalMetaCache>.

  • initEngineCaches() pre-registers built-in engines.
  • engine(engineName) normalizes to lowercase and uses computeIfAbsent(...).
  • routeEngine(engine, action):
    • routes to all engines when engine == null
    • routes to a single engine otherwise.
  • unknown engines fall back to a no-op legacy adapter path.

Migration Status (Engine View)

  • Migrated to new framework:
    • iceberg (table, view, manifest)
    • paimon (table)
    • hudi (partition, fs_view, meta_client)
    • maxcompute (metadata)
    • doris (backends)
  • Kept on legacy bridge intentionally:
    • common
    • hive

Key Changes

  • Add framework abstractions under datasource.metacache:
    • ExternalMetaCache
    • AbstractExternalMetaCache
    • MetaCacheEntryDef
    • MetaCacheEntry
    • CacheSpec
    • CatalogEntryGroup
  • Refactor ExternalMetaCacheMgr to route cache lifecycle by engine (prepareCatalog, invalidateCatalog/db/table/partitions, stats).
  • Eagerly initialize engine cache entries during ExternalCatalog.makeSureInitialized().
  • Migrate Iceberg to IcebergExternalMetaCache entries (table, view, manifest) and move call sites to the engine cache path.
  • Migrate Paimon to PaimonExternalMetaCache (table) and route related call sites via engine cache.
  • Migrate Hudi metadata cache to HudiExternalMetaCache entries (partition, fs_view, meta_client) and route scan/utils through the new path.
  • Migrate MaxCompute cache to MaxComputeExternalMetaCache and remove MaxComputeMetadataCacheMgr.
  • Migrate Remote Doris backend cache to DorisExternalMetaCache and remove DorisExternalMetaCacheMgr.
  • Add catalog property compatibility mapping support in CacheSpec for gradual key migration.
  • Keep ENGINE_COMMON and ENGINE_HIVE on LegacyExternalMetaCache to preserve existing behavior.
  • Add/adjust tests:
    • IcebergExternalMetaCacheTest
    • PaimonExternalMetaCacheTest
    • MetaCacheDeadlockTest

Compatibility / Behavior

  • Existing Hive/Common cache behavior is intentionally unchanged in this PR.
  • New cache keys follow:
    • meta.cache.<engine>.<entry>.enable
    • meta.cache.<engine>.<entry>.ttl-second
    • meta.cache.<engine>.<entry>.capacity

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?

@suxiaogang223
Copy link
Contributor Author

run external

@suxiaogang223
Copy link
Contributor Author

run buildall

@suxiaogang223 suxiaogang223 force-pushed the Refact-ExternalMetaCache branch from d86d58c to d3bbd5e Compare March 3, 2026 15:32
@suxiaogang223
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
============================================
q1	17648	4563	4318	4318
q2	q3	10646	773	524	524
q4	4678	361	254	254
q5	7550	1208	1008	1008
q6	172	175	148	148
q7	788	841	666	666
q8	9294	1443	1361	1361
q9	4882	4739	4748	4739
q10	6820	1879	1658	1658
q11	475	255	238	238
q12	727	579	472	472
q13	17759	4206	3410	3410
q14	237	231	211	211
q15	947	795	804	795
q16	755	721	682	682
q17	743	866	421	421
q18	6266	5335	5094	5094
q19	1114	987	608	608
q20	514	495	390	390
q21	4854	2001	1511	1511
q22	383	321	288	288
Total cold run time: 97252 ms
Total hot run time: 28796 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4714	4717	4601	4601
q2	q3	1798	2240	1755	1755
q4	862	1181	779	779
q5	4029	4368	4328	4328
q6	189	178	148	148
q7	1791	1673	1578	1578
q8	2523	2768	2528	2528
q9	7527	7512	7387	7387
q10	2620	2916	2460	2460
q11	563	432	422	422
q12	509	597	476	476
q13	4418	4456	3598	3598
q14	287	308	286	286
q15	875	842	808	808
q16	716	765	709	709
q17	1176	1566	1278	1278
q18	7253	6796	6800	6796
q19	1003	926	897	897
q20	2080	2191	2073	2073
q21	4000	3462	3369	3369
q22	441	421	380	380
Total cold run time: 49374 ms
Total hot run time: 46656 ms

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Code Review Summary — Unified External Metadata Cache Framework

Overall this is a well-structured refactoring that introduces a clean 3-level cache model (Engine → Catalog → Entry) with SPI-based plugin support. The migration of Iceberg/Paimon/Hudi/MaxCompute/Doris to engine-level adapters while keeping Hive on a legacy path is a sound incremental rollout strategy.

Critical Checkpoints

Goal & Correctness: The goal is to unify scattered per-engine cache managers into a single framework with consistent lifecycle, invalidation, and configuration. The framework structure accomplishes this, but there is a type-safety bug in the generic getSchemaCacheValue path (see inline comment) that would cause IllegalArgumentException at runtime for any engine registering a SchemaCacheKey subclass.

Concurrency: The framework relies on ConcurrentHashMap for engineCaches and CatalogEntryGroup, and Caffeine caches are inherently thread-safe. CatalogEntryGroup extends ConcurrentHashMap which is fine. The routeCatalogEngines broadcast pattern is safe because safeInvalidate catches IllegalStateException for uninitialized catalogs. No new lock hierarchy concerns introduced.

Lifecycle Management: CatalogMgr.removeCatalog() now calls catalog.onClose() before removing from maps and calls removeCatalog() on cache mgr before removing from idToCatalog — this is a correctness improvement ensuring cache cleanup while catalog is still accessible.

Configuration: CacheSpec handles enable/ttl/capacity with compatibility key mapping. Dynamic changes are supported through notifyPropertiesUpdated() which does removeCatalog + prepareCatalog.

Parallel Code Paths: The DefaultExternalMetaCache serves as fallback for engines without dedicated entries. Each ExternalTable subclass routes via getMetaCacheEngine(). The base ExternalTable.getMetaCacheEngine() throws by default — table types that forget to override will fail at runtime.

Test Coverage: Good unit test coverage for CacheSpec, MetaCacheEntry, SPI loading, Iceberg, and Paimon caches. Missing: No unit tests for HudiExternalMetaCache (the most complex engine cache with partition values, fs_view, and meta_client entries), MaxComputeExternalMetaCache, or DorisExternalMetaCache.

Performance: routeCatalogEngines broadcasts prepareCatalog to ALL 7 engines for every catalog, creating ~19 empty Caffeine cache instances per catalog regardless of catalog type. Memory impact is modest (~tens of KB per catalog) but scales linearly. Consider filtering by relevant engine or documenting this as intentional.

Observability: No new metrics or logging for cache hit/miss rates at the engine level, though Caffeine's built-in stats are exposed via MetaCacheEntry.getStats().

Issues Found

  1. [Bug] ensureTypeCompatible uses strict Class.equals() which breaks when engine-specific SchemaCacheKey subclasses are used through the generic path (see inline comment on ExternalMetaCacheMgr.java:406)

  2. [Design] routeCatalogEngines broadcasts to all engines unconditionally — wasteful but functionally safe (see inline comment on line 343)

  3. [Risk] ExternalTable.getMetaCacheEngine() throws by default — any new table type that forgets to override will fail at runtime with no compile-time safety net (see inline comment on ExternalTable.java:219)

  4. [Test Gap] No unit tests for HudiExternalMetaCache despite being the most complex engine cache implementation

@suxiaogang223
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
============================================
q1	17647	4499	4342	4342
q2	q3	10646	811	514	514
q4	4686	372	263	263
q5	7567	1210	1015	1015
q6	175	175	144	144
q7	787	860	668	668
q8	9303	1479	1316	1316
q9	4952	4760	4783	4760
q10	6265	1944	1662	1662
q11	488	268	256	256
q12	744	577	471	471
q13	18074	2997	2177	2177
q14	235	242	220	220
q15	943	800	823	800
q16	763	727	686	686
q17	735	853	448	448
q18	6052	5379	5237	5237
q19	1253	992	611	611
q20	514	491	388	388
q21	4824	2199	1628	1628
q22	411	312	258	258
Total cold run time: 97064 ms
Total hot run time: 27864 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4626	4592	4641	4592
q2	q3	3890	4320	3807	3807
q4	887	1236	775	775
q5	4091	4444	4307	4307
q6	183	177	139	139
q7	1765	1682	1515	1515
q8	2462	2701	3123	2701
q9	7588	7381	7364	7364
q10	3793	4012	3670	3670
q11	610	455	417	417
q12	505	583	461	461
q13	2716	3225	2381	2381
q14	282	304	264	264
q15	861	797	794	794
q16	734	783	716	716
q17	1143	1426	1376	1376
q18	7224	6716	6692	6692
q19	867	916	891	891
q20	2069	2171	2029	2029
q21	3932	3526	3463	3463
q22	471	542	382	382
Total cold run time: 50699 ms
Total hot run time: 48736 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 154005 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 6e221d85dcc1f0d60f622b4a997804a1b31cd8fa, data reload: false

query5	4325	650	517	517
query6	322	242	235	235
query7	4213	469	281	281
query8	345	276	239	239
query9	8715	2826	2791	2791
query10	500	425	377	377
query11	7456	5902	5657	5657
query12	190	137	126	126
query13	1266	466	347	347
query14	5731	3851	3575	3575
query14_1	2903	2847	2842	2842
query15	204	194	178	178
query16	998	477	469	469
query17	1120	736	636	636
query18	2484	446	358	358
query19	227	210	191	191
query20	143	134	131	131
query21	232	140	125	125
query22	4916	5042	4852	4852
query23	16608	16213	15973	15973
query23_1	15656	15961	15691	15691
query24	7790	1646	1253	1253
query24_1	1263	1229	1225	1225
query25	566	494	441	441
query26	1244	305	152	152
query27	2724	498	294	294
query28	4511	1902	1882	1882
query29	847	562	478	478
query30	305	252	207	207
query31	1367	1296	1210	1210
query32	87	79	72	72
query33	513	328	289	289
query34	944	920	559	559
query35	645	705	610	610
query36	1132	1148	980	980
query37	128	92	87	87
query38	2981	3007	2912	2912
query39	877	865	864	864
query39_1	820	825	820	820
query40	232	154	140	140
query41	62	64	59	59
query42	306	310	303	303
query43	244	254	232	232
query44	
query45	196	192	184	184
query46	873	1003	655	655
query47	2100	2136	2060	2060
query48	323	339	247	247
query49	634	453	387	387
query50	684	284	212	212
query51	4134	4119	4098	4098
query52	291	294	284	284
query53	292	337	292	292
query54	304	279	271	271
query55	95	89	84	84
query56	330	343	324	324
query57	1380	1355	1285	1285
query58	295	294	280	280
query59	1348	1437	1277	1277
query60	336	355	331	331
query61	154	153	147	147
query62	626	593	545	545
query63	318	293	289	289
query64	5059	1283	1009	1009
query65	
query66	1438	458	365	365
query67	16416	16521	16426	16426
query68	
query69	381	309	289	289
query70	1016	957	978	957
query71	346	324	315	315
query72	2855	2695	2460	2460
query73	530	544	325	325
query74	10052	9952	9752	9752
query75	2879	2793	2517	2517
query76	2298	1037	678	678
query77	362	388	319	319
query78	11290	11432	10684	10684
query79	1172	800	614	614
query80	1335	643	556	556
query81	579	283	247	247
query82	968	147	118	118
query83	344	268	243	243
query84	251	124	103	103
query85	911	492	447	447
query86	428	302	301	301
query87	3141	3110	3008	3008
query88	3596	2708	2684	2684
query89	434	388	350	350
query90	2031	189	185	185
query91	173	162	136	136
query92	81	80	73	73
query93	1022	837	516	516
query94	646	282	314	282
query95	599	350	327	327
query96	631	520	232	232
query97	2459	2496	2407	2407
query98	231	223	221	221
query99	1030	995	907	907
Total cold run time: 234352 ms
Total hot run time: 154005 ms

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 34.18% (417/1220) 🎉
Increment coverage report
Complete coverage report

@suxiaogang223
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
============================================
q1	17652	4492	4323	4323
q2	q3	10657	794	515	515
q4	4674	360	250	250
q5	7534	1193	1033	1033
q6	176	178	148	148
q7	793	846	675	675
q8	9305	1461	1377	1377
q9	4860	4725	4743	4725
q10	6297	1921	1623	1623
q11	459	256	246	246
q12	743	576	473	473
q13	18039	2929	2207	2207
q14	237	228	214	214
q15	933	812	839	812
q16	749	735	663	663
q17	706	921	412	412
q18	5983	5393	5260	5260
q19	1128	1009	601	601
q20	514	490	397	397
q21	4505	2083	1588	1588
q22	361	354	307	307
Total cold run time: 96305 ms
Total hot run time: 27849 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4720	4587	4571	4571
q2	q3	3948	4379	3943	3943
q4	896	1208	795	795
q5	4048	4407	4388	4388
q6	189	177	139	139
q7	1774	1640	1508	1508
q8	2570	2753	2580	2580
q9	7603	7558	7725	7558
q10	3855	4050	3646	3646
q11	494	433	431	431
q12	500	607	464	464
q13	2707	3367	2356	2356
q14	283	306	278	278
q15	901	835	814	814
q16	743	800	730	730
q17	1190	1505	1394	1394
q18	7370	7055	6643	6643
q19	905	883	905	883
q20	2147	2192	2005	2005
q21	4088	3599	3418	3418
q22	487	442	418	418
Total cold run time: 51418 ms
Total hot run time: 48962 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 153786 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 3ce0ecafec79ea23744463a904bcd6753faab3d3, data reload: false

query5	4329	649	519	519
query6	314	225	223	223
query7	4230	482	268	268
query8	339	252	231	231
query9	8733	2775	2793	2775
query10	505	407	384	384
query11	7282	5920	5701	5701
query12	190	129	124	124
query13	1272	472	360	360
query14	5760	3889	3568	3568
query14_1	2838	2818	2825	2818
query15	203	201	183	183
query16	1006	479	458	458
query17	1112	734	626	626
query18	2451	450	367	367
query19	216	211	187	187
query20	137	136	132	132
query21	229	144	131	131
query22	4828	5051	4812	4812
query23	16571	16063	15765	15765
query23_1	15845	15963	15857	15857
query24	7488	1687	1252	1252
query24_1	1285	1297	1338	1297
query25	666	492	419	419
query26	1233	264	160	160
query27	2812	525	313	313
query28	4528	1883	1898	1883
query29	806	559	480	480
query30	313	249	213	213
query31	1347	1290	1224	1224
query32	78	74	78	74
query33	507	343	279	279
query34	927	936	557	557
query35	628	690	604	604
query36	1040	1122	991	991
query37	129	106	85	85
query38	2988	2933	2973	2933
query39	910	982	874	874
query39_1	832	847	830	830
query40	227	149	138	138
query41	62	60	59	59
query42	307	309	304	304
query43	285	253	231	231
query44	
query45	200	193	180	180
query46	889	985	605	605
query47	2101	2118	2030	2030
query48	315	318	235	235
query49	621	456	383	383
query50	702	279	212	212
query51	4149	4067	4132	4067
query52	287	298	288	288
query53	289	339	277	277
query54	299	271	260	260
query55	89	91	87	87
query56	320	323	297	297
query57	1357	1387	1261	1261
query58	291	288	275	275
query59	1343	1435	1297	1297
query60	350	339	320	320
query61	146	149	152	149
query62	613	566	551	551
query63	311	281	277	277
query64	5008	1284	1010	1010
query65	
query66	1469	463	354	354
query67	16532	16472	16453	16453
query68	
query69	411	315	288	288
query70	999	930	972	930
query71	352	318	302	302
query72	2849	2680	2456	2456
query73	545	560	321	321
query74	10043	9929	9747	9747
query75	2867	2755	2470	2470
query76	2268	1024	672	672
query77	370	381	309	309
query78	11207	11393	10697	10697
query79	1158	814	620	620
query80	1319	645	535	535
query81	556	294	248	248
query82	1008	151	121	121
query83	340	273	246	246
query84	255	123	99	99
query85	893	475	448	448
query86	437	308	322	308
query87	3154	3106	2991	2991
query88	3603	2683	2655	2655
query89	421	370	348	348
query90	1996	191	176	176
query91	171	157	142	142
query92	79	76	69	69
query93	1012	826	500	500
query94	646	311	295	295
query95	611	342	380	342
query96	637	522	230	230
query97	2453	2520	2418	2418
query98	236	218	213	213
query99	990	986	912	912
Total cold run time: 234311 ms
Total hot run time: 153786 ms

@doris-robot
Copy link

BE UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 52.56% (19646/37381)
Line Coverage 36.18% (183416/506986)
Region Coverage 32.45% (142149/438100)
Branch Coverage 33.42% (61716/184658)

@hello-stephen
Copy link
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 71.43% (26145/36603)
Line Coverage 54.22% (274070/505433)
Region Coverage 51.44% (227468/442237)
Branch Coverage 52.85% (97898/185222)

@hello-stephen
Copy link
Contributor

FE Regression Coverage Report

Increment line coverage 44.02% (537/1220) 🎉
Increment coverage report
Complete coverage report

@suxiaogang223
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
============================================
q1	17642	4549	4310	4310
q2	q3	10642	770	534	534
q4	4676	372	251	251
q5	7543	1184	1011	1011
q6	176	176	147	147
q7	783	839	660	660
q8	9291	1463	1324	1324
q9	4768	4736	4726	4726
q10	6231	1918	1668	1668
q11	445	269	239	239
q12	683	573	461	461
q13	18040	2921	2192	2192
q14	236	235	223	223
q15	902	794	822	794
q16	723	739	678	678
q17	716	878	405	405
q18	5987	5352	5191	5191
q19	1249	994	604	604
q20	508	493	395	395
q21	4696	2030	1484	1484
q22	402	357	253	253
Total cold run time: 96339 ms
Total hot run time: 27550 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4683	4553	4534	4534
q2	q3	3871	4303	3806	3806
q4	887	1190	776	776
q5	4075	4385	4338	4338
q6	177	177	140	140
q7	1777	1663	1524	1524
q8	2447	2715	2518	2518
q9	7616	7359	7571	7359
q10	3735	3957	3567	3567
q11	497	432	418	418
q12	500	576	448	448
q13	2673	3178	2414	2414
q14	297	310	289	289
q15	852	806	806	806
q16	713	780	724	724
q17	1150	1459	1367	1367
q18	7209	6964	6630	6630
q19	885	891	921	891
q20	2089	2166	2006	2006
q21	4027	3559	3395	3395
q22	483	457	376	376
Total cold run time: 50643 ms
Total hot run time: 48326 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 152802 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 5261715837c13ff512f1c45513e73575660eb47c, data reload: false

query5	4331	640	506	506
query6	334	229	201	201
query7	4205	482	266	266
query8	338	239	235	235
query9	8704	2724	2707	2707
query10	513	388	324	324
query11	7333	5771	5601	5601
query12	181	133	133	133
query13	1282	461	352	352
query14	5813	3762	3536	3536
query14_1	2842	2790	2783	2783
query15	214	191	176	176
query16	968	469	454	454
query17	887	715	630	630
query18	2448	452	352	352
query19	216	211	188	188
query20	139	131	130	130
query21	230	151	125	125
query22	4923	5021	4741	4741
query23	16514	16216	15613	15613
query23_1	16028	15744	15751	15744
query24	7777	1750	1283	1283
query24_1	1284	1329	1231	1231
query25	562	506	430	430
query26	1242	259	197	197
query27	2762	471	281	281
query28	4530	1849	1853	1849
query29	811	570	462	462
query30	312	253	213	213
query31	1345	1279	1223	1223
query32	76	75	72	72
query33	523	314	306	306
query34	954	921	549	549
query35	637	659	591	591
query36	1109	1177	1001	1001
query37	128	94	80	80
query38	2954	2929	2896	2896
query39	885	862	858	858
query39_1	812	820	945	820
query40	230	157	138	138
query41	62	60	58	58
query42	294	297	304	297
query43	237	249	225	225
query44	
query45	201	187	182	182
query46	867	979	602	602
query47	2122	2170	2073	2073
query48	320	325	234	234
query49	629	459	373	373
query50	675	272	208	208
query51	4094	4079	4074	4074
query52	288	294	285	285
query53	287	329	277	277
query54	294	276	257	257
query55	94	91	80	80
query56	321	324	310	310
query57	1384	1355	1274	1274
query58	289	283	272	272
query59	1343	1460	1340	1340
query60	340	327	318	318
query61	150	147	144	144
query62	619	573	547	547
query63	304	271	278	271
query64	4991	1253	1011	1011
query65	
query66	1463	457	362	362
query67	16477	16404	16324	16324
query68	
query69	380	303	292	292
query70	981	930	955	930
query71	326	301	301	301
query72	2715	2666	2411	2411
query73	532	547	324	324
query74	9966	9877	9750	9750
query75	2834	2756	2445	2445
query76	2262	1011	665	665
query77	365	371	305	305
query78	11234	11397	10756	10756
query79	2568	786	606	606
query80	1807	625	545	545
query81	574	289	241	241
query82	1030	149	117	117
query83	380	264	248	248
query84	302	118	98	98
query85	926	488	449	449
query86	417	311	294	294
query87	3188	3062	3006	3006
query88	3541	2673	2658	2658
query89	426	366	348	348
query90	1951	181	178	178
query91	166	168	135	135
query92	86	75	73	73
query93	1409	854	502	502
query94	640	319	298	298
query95	588	343	387	343
query96	641	525	230	230
query97	2460	2465	2389	2389
query98	232	221	223	221
query99	1003	1015	911	911
Total cold run time: 235250 ms
Total hot run time: 152802 ms

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 39.08% (483/1236) 🎉
Increment coverage report
Complete coverage report

@doris-robot
Copy link

BE UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 52.55% (19647/37386)
Line Coverage 36.17% (183383/506996)
Region Coverage 32.47% (142217/437969)
Branch Coverage 33.46% (61720/184440)

@suxiaogang223
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
============================================
q1	17660	4510	4329	4329
q2	q3	10647	795	517	517
q4	4682	368	251	251
q5	7551	1191	997	997
q6	182	177	147	147
q7	773	837	676	676
q8	9300	1456	1291	1291
q9	4838	4717	4731	4717
q10	6258	1889	1654	1654
q11	476	271	236	236
q12	697	569	468	468
q13	18025	2956	2182	2182
q14	226	241	228	228
q15	913	808	814	808
q16	746	722	671	671
q17	719	873	389	389
q18	6056	5272	5214	5214
q19	1118	985	607	607
q20	496	517	391	391
q21	4425	1951	1507	1507
q22	391	353	326	326
Total cold run time: 96179 ms
Total hot run time: 27606 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4736	4623	4529	4529
q2	q3	3865	4306	3797	3797
q4	854	1203	763	763
q5	4040	4362	4305	4305
q6	183	174	149	149
q7	1768	1645	1556	1556
q8	2505	2736	2722	2722
q9	7802	7269	7450	7269
q10	3749	4023	3572	3572
q11	508	432	418	418
q12	466	594	433	433
q13	2860	3170	2380	2380
q14	302	307	269	269
q15	861	807	798	798
q16	736	753	718	718
q17	1116	1441	1334	1334
q18	7222	6918	6562	6562
q19	887	931	890	890
q20	2104	2175	2008	2008
q21	3949	3443	3432	3432
q22	459	420	384	384
Total cold run time: 50972 ms
Total hot run time: 48288 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 152510 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 345dbbd83ad564cbdfb88a9a0ae23965f4ac5b36, data reload: false

query5	4331	636	511	511
query6	331	227	211	211
query7	4232	469	266	266
query8	345	252	234	234
query9	8749	2753	2688	2688
query10	494	368	346	346
query11	7403	5794	5625	5625
query12	187	128	126	126
query13	1259	450	350	350
query14	6000	3805	3559	3559
query14_1	2854	2778	2789	2778
query15	203	193	174	174
query16	986	483	449	449
query17	1104	759	621	621
query18	2456	442	357	357
query19	216	212	180	180
query20	136	131	132	131
query21	227	144	126	126
query22	4877	4932	4693	4693
query23	16010	15593	15315	15315
query23_1	15428	16212	15915	15915
query24	8039	1699	1276	1276
query24_1	1310	1273	1322	1273
query25	602	555	491	491
query26	1270	285	167	167
query27	2900	512	296	296
query28	4985	1969	1906	1906
query29	804	566	470	470
query30	307	249	215	215
query31	1341	1287	1208	1208
query32	74	75	67	67
query33	500	312	270	270
query34	924	907	580	580
query35	629	658	601	601
query36	1061	1144	1002	1002
query37	124	97	82	82
query38	2930	2884	2857	2857
query39	887	857	863	857
query39_1	836	826	806	806
query40	231	152	135	135
query41	61	60	56	56
query42	300	305	298	298
query43	238	243	218	218
query44	
query45	195	190	185	185
query46	909	1002	610	610
query47	2147	2113	2085	2085
query48	334	324	229	229
query49	621	449	367	367
query50	675	296	221	221
query51	4252	4077	4032	4032
query52	289	294	278	278
query53	287	330	283	283
query54	292	279	285	279
query55	87	87	79	79
query56	296	319	306	306
query57	1389	1318	1268	1268
query58	288	277	275	275
query59	1329	1442	1315	1315
query60	347	343	315	315
query61	148	150	145	145
query62	627	583	545	545
query63	309	281	272	272
query64	5015	1303	998	998
query65	
query66	1468	442	351	351
query67	16351	16377	16291	16291
query68	
query69	385	306	282	282
query70	984	998	915	915
query71	336	308	292	292
query72	2853	2725	2528	2528
query73	528	538	318	318
query74	10010	9940	9752	9752
query75	2893	2723	2469	2469
query76	2285	1013	670	670
query77	343	369	301	301
query78	11158	11320	10647	10647
query79	1402	796	590	590
query80	1361	622	527	527
query81	582	278	243	243
query82	1029	149	123	123
query83	327	268	237	237
query84	247	119	95	95
query85	908	484	441	441
query86	417	324	327	324
query87	3164	3123	2970	2970
query88	3526	2626	2624	2624
query89	418	367	338	338
query90	2043	175	173	173
query91	171	158	135	135
query92	77	76	67	67
query93	996	822	499	499
query94	641	336	307	307
query95	577	347	378	347
query96	625	511	228	228
query97	2485	2497	2404	2404
query98	241	222	223	222
query99	996	1014	879	879
Total cold run time: 234821 ms
Total hot run time: 152510 ms

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