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


##########
fe/fe-core/src/main/java/org/apache/doris/cloud/CloudWarmUpJob.java:
##########
@@ -741,8 +981,13 @@ private void runEventDrivenJob() throws Exception {
                     throw new IllegalArgumentException("Unknown SyncEvent " + 
syncEvent);
                 }
                 request.setEvent(event);
-                LOG.debug("send warm up request to BE {} ({}). job_id={}, 
event={}, request_type=SET_JOB(EVENT)",
-                        entry.getKey(), getBackendEndpoint(entry.getKey()), 
jobId, syncEvent);
+                if (hasTableFilter()) {
+                    request.setTableIds(new ArrayList<>(getCurrentTableIds()));
+                }
+                LOG.debug("send warm up request to BE {} ({}). job_id={}, 
event={}, "
+                                + "request_type=SET_JOB(EVENT), 
table_ids_count={}",
+                        entry.getKey(), getBackendEndpoint(entry.getKey()), 
jobId, syncEvent,
+                        hasTableFilter() ? getCurrentTableIdNames().size() : 
"all");

Review Comment:
   Table-level warm-up depends on this new optional thrift field to keep source 
BEs from warming unrelated tables. During a rolling upgrade, an old BE will 
ignore unknown `table_ids` and process the `SET_JOB` as a cluster-level 
event-driven job, so any table-level job created before every source BE is 
upgraded will warm all tables instead of the ON TABLES set. Please gate 
creation/update on BE support or otherwise make old BEs reject table-filtered 
jobs before enabling this path.



##########
be/src/cloud/cloud_warm_up_manager.cpp:
##########
@@ -802,18 +929,18 @@ void CloudWarmUpManager::_recycle_cache(int64_t tablet_id,
     auto dns_cache = ExecEnv::GetInstance()->dns_cache();

Review Comment:
   Passing `table_id=0` disables the new table-level filter for recycle-cache 
events. When rowsets from an unmatched table are GC'd or compacted on the 
source, every table-level warm-up job can still receive `PRecycleCacheRequest` 
and evict target cache for tables outside its ON TABLES filter. The callers are 
`CloudTablet` methods and can use the tablet's table id, so please propagate it 
through `recycle_cache`/`_recycle_cache` and apply the same filtering as 
`warm_up_rowset`.



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