github-actions[bot] commented on code in PR #68196:
URL: https://github.com/apache/doris/pull/68196#discussion_r4120002826


##########
fe/fe-core/src/main/java/org/apache/doris/catalog/RefreshManager.java:
##########
@@ -192,6 +211,9 @@ public void replayRefreshTable(ExternalObjectLog log) {
             // See comment in refreshDbInternal for why db and table may be 
null.
             if (!db.isPresent()) {
                 LOG.warn("failed to find db when replaying refresh table: {}", 
log.debugForRefreshTable());
+                // No canonical identity is available: retire the catalog 
scope so engine entries and
+                // row counts cannot survive the committed refresh.
+                
Env.getCurrentEnv().getExtMetaCacheMgr().invalidateCatalog(catalog.getId());

Review Comment:
   [P1] Keep cold follower refresh scoped to the known database. 
`getDbForReplay` returns empty when a normal cache eviction leaves the 
canonical DB name mapped but its object absent; this branch then calls 
`invalidateCatalog`, flushing unrelated hot DBs' engine entries and row counts 
for a single REFRESH TABLE record. REFRESH DATABASE has the same new branch at 
line 125, and insert replay can hit this frequently. Preserve the replay-safe 
canonical mapping independently of object residency and invalidate that DB 
scope when known; use catalog scope only when the mapping is truly lost. Please 
cover a cold target DB with an unrelated hot DB on follower replay. This is 
separate from the existing DROP TABLE thread at HiveMetadataOps.java:326.



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