From dd27e7642e9daccc6f9848d25c12cee05d935d1e Mon Sep 17 00:00:00 2001 From: liulijia Date: Wed, 15 Jul 2020 21:43:31 +0800 Subject: [PATCH] Do not choose decommissioned BE in colocate balance For #4102 --- .../java/org/apache/doris/clone/ColocateTableBalancer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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);