deardeng commented on code in PR #66191:
URL: https://github.com/apache/doris/pull/66191#discussion_r3850563341


##########
fe/fe-core/src/main/java/org/apache/doris/clone/ColocateTableCheckerAndBalancer.java:
##########
@@ -558,6 +567,9 @@ private void matchGroups() {
                                             replicaAlloc, 
System.currentTimeMillis());
                                     // the tablet status will be set again 
when being scheduled
                                     tabletCtx.setTabletHealth(tabletHealth);
+                                    if (rowBinlogHealthResult != null) {
+                                        
rowBinlogHealthResult.applyTo(tabletCtx);

Review Comment:
   The base/row-binlog relationship is a pair-locality invariant, not a 
colocate-group invariant. Reusing the existing colocate repair machinery is 
reasonable, but the current implementation also exposes that internal reuse 
through COLOCATE_MISMATCH, COLOCATE_REDUNDANT, colocateBackendsSet, scheduler 
logs, proc output, and colocate counters. This makes it difficult to 
distinguish an actual colocate-group placement issue from a row-binlog 
backend/path locality issue during troubleshooting.
   Could you please:
   Add a comment to RowBinlogHealthResult.applyTo() clarifying that 
colocateBackendsSet is only reused to carry the paired base tablet’s effective 
backend set, and does not represent the user-defined colocate-group layout.
   Introduce explicit statuses such as ROW_BINLOG_MISMATCH and 
ROW_BINLOG_REDUNDANT (or an equivalent explicit repair reason). The 
implementation can still route these statuses to the existing colocate repair 
handlers; there is no need to duplicate the scheduling logic.
   Add row-binlog-specific diagnostics to logs/proc/counters, including the 
base tablet ID, row-binlog tablet ID, expected backend -> pathHash mapping, and 
actual replica locations.
   Update TabletHealthProcDir to use 
RowBinlogTabletLocality.getRowBinlogHealth() for row-binlog indexes. Currently 
it uses normal colocate/generic health calculation, which does not represent 
the required same-backend and same-path invariant.
   Without this separation, a reported COLOCATE_MISMATCH does not tell 
operators whether the colocate-group layout is broken or only the 
base/row-binlog pair locality needs repair.



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