diff --git a/fe/src/main/java/org/apache/doris/clone/ColocateTableBalancer.java b/fe/src/main/java/org/apache/doris/clone/ColocateTableBalancer.java index a65797dfa9b35a..3c72c9f77b7868 100644 --- a/fe/src/main/java/org/apache/doris/clone/ColocateTableBalancer.java +++ b/fe/src/main/java/org/apache/doris/clone/ColocateTableBalancer.java @@ -469,8 +469,11 @@ private void balanceGroup() { } List allBackendIds = infoService.getClusterBackendIds(db.getClusterName(), true); + List allBackendIdsAvailable = allBackendIds.stream() + .filter(infoService::checkBackendAvailable) + .collect(Collectors.toList()); List> balancedBackendsPerBucketSeq = Lists.newArrayList(); - if (balance(groupId, allBackendIds, colocateIndex, infoService, balancedBackendsPerBucketSeq)) { + if (balance(groupId, allBackendIdsAvailable, colocateIndex, infoService, balancedBackendsPerBucketSeq)) { colocateIndex.addBackendsPerBucketSeq(groupId, balancedBackendsPerBucketSeq); ColocatePersistInfo info = ColocatePersistInfo.createForBackendsPerBucketSeq(groupId, balancedBackendsPerBucketSeq); Catalog.getCurrentCatalog().getEditLog().logColocateBackendsPerBucketSeq(info);