wenzhenghu opened a new issue, #65792:
URL: https://github.com/apache/doris/issues/65792

   ## Search before asking
   
   I searched existing Apache Doris issues for external metadata cache 
statistics and ExternalMetaCacheMgr.getCatalogCacheStats. The closed tracking 
issue #60686 lists unified monitoring as a framework goal, but I did not find a 
dedicated issue covering this remaining gap.
   
   ## Background
   
   PR #65126 migrates the ExternalCatalog and ExternalDatabase name/object 
caches to MetaCacheEntry. Four cache entries are owned directly by the catalog 
hierarchy rather than by an engine cache registered in ExternalMetaCacheMgr:
   
   - ExternalCatalog database names
   - ExternalCatalog database objects
   - ExternalDatabase table names
   - ExternalDatabase table objects
   
   MetaCacheEntry exposes statistics for these entries, but 
ExternalMetaCacheMgr.getCatalogCacheStats(catalogId) currently reports only 
engine caches registered in its catalog cache registry. As a result, the 
unified statistics endpoint omits the central catalog/database name and object 
caches.
   
   ## Problem
   
   Operators cannot observe capacity, estimated size, hits, misses, load 
success/failure, eviction, invalidation, or the last load error for these four 
cache categories through the unified per-catalog statistics path. This makes 
cache sizing and cache-consistency diagnosis incomplete even after the 
MetaCacheEntry migration.
   
   ## Expected behavior
   
   ExternalMetaCacheMgr.getCatalogCacheStats(catalogId), or the public 
statistics API built on it, should include both:
   
   1. Engine metadata caches registered in ExternalMetaCacheMgr.
   2. Direct MetaCacheEntry instances owned by ExternalCatalog and its 
ExternalDatabase objects.
   
   Statistics collection must remain cache-only: it must not initialize a 
catalog, enumerate remote metadata, load a database/table object, or turn a 
cold cache hot merely to produce statistics.
   
   Cache names should be stable and distinguish at least catalog 
database-name/object entries from database table-name/object entries. If table 
entries are aggregated across databases, the aggregation semantics should be 
documented; otherwise each database should have a stable owner-qualified cache 
name.
   
   ## Suggested implementation
   
   - Add a catalog-side statistics collector for the direct MetaCacheEntry 
instances.
   - Let ExternalMetaCacheMgr merge those statistics with the registered 
engine-cache statistics.
   - Traverse only already initialized/local catalog and database state.
   - Preserve lifecycle safety for refresh, unregister, and replay paths.
   
   ## Suggested tests
   
   - An uninitialized catalog returns statistics without triggering 
initialization or a remote call.
   - Initialized but cold entries are reported with zero size and remain cold.
   - Hot database-name/object and table-name/object entries report their own 
counters and sizes.
   - Multiple databases are represented or aggregated deterministically.
   - Refresh/reset/unregister removes stale owners from the statistics result.
   
   ## Related
   
   - #60686
   - #65126


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to