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]