github-actions[bot] commented on code in PR #64160:
URL: https://github.com/apache/doris/pull/64160#discussion_r3750720678
##########
fe/fe-core/src/main/java/org/apache/doris/catalog/RefreshManager.java:
##########
@@ -253,8 +272,9 @@ public void replayRefreshTable(ExternalObjectLog log) {
log.debugForRefreshTable());
return;
}
- Env.getCurrentEnv().getExtMetaCacheMgr()
- .invalidateTable(catalog.getId(), db.get().getFullName(),
localTableName);
+ Env.getCurrentEnv().getExtMetaCacheMgr().invalidateTable(
+ log.getCatalogId(), dbIdForInvalidation,
db.get().getFullName(),
+ tableIdForInvalidation, localTableName);
if (catalog instanceof PluginDrivenExternalCatalog) {
Review Comment:
**[P1] Evict row counts after connector metadata**
`invalidateTable(table)` now removes the row-count entry before the
following connector-cache invalidation. A concurrent miss can start in that
window and compute from the still-cached connector snapshot (Iceberg statistics
resolve through its table cache), then publish the old count after
`connector.invalidateTable` has returned; the connector hook does not evict
that new row-count future. The same ordering exists for DB/catalog refresh.
Please make row-count eviction the final publication step after connector
invalidation (or repeat it afterward); for DB/catalog scopes this must be
paired with the separate publication fence noted on `ExternalRowCountCache`.
Add a latch-based test that opens this inter-call window.
--
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]