From 51c128c8d1e64fce2ceff26d2b031d925dc23c4a Mon Sep 17 00:00:00 2001 From: kangkaisen Date: Fri, 18 Jan 2019 14:13:42 +0800 Subject: [PATCH] Skip balance when colocate group is balancing (#548) --- fe/src/main/java/org/apache/doris/catalog/Catalog.java | 3 ++- .../org/apache/doris/clone/ColocateTableBalancer.java | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/fe/src/main/java/org/apache/doris/catalog/Catalog.java b/fe/src/main/java/org/apache/doris/catalog/Catalog.java index 0976e16c97..d5c7973b93 100644 --- a/fe/src/main/java/org/apache/doris/catalog/Catalog.java +++ b/fe/src/main/java/org/apache/doris/catalog/Catalog.java @@ -4066,6 +4066,8 @@ public class Catalog { tabletMeta.getOldSchemaHash()); tablet.addReplica(replica); } + + Preconditions.checkState(chosenBackendIds.size() == replicationNum, chosenBackendIds.size() + " vs. "+ replicationNum); } } else { throw new DdlException("Unknown distribution type: " + distributionInfoType); @@ -4078,7 +4080,6 @@ public class Catalog { if (chosenBackendIds == null) { throw new DdlException("Failed to find enough host in all backends. need: " + replicationNum); } - Preconditions.checkState(chosenBackendIds.size() == replicationNum); return chosenBackendIds; } 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 dc0b069c27..21640b4d98 100644 --- a/fe/src/main/java/org/apache/doris/clone/ColocateTableBalancer.java +++ b/fe/src/main/java/org/apache/doris/clone/ColocateTableBalancer.java @@ -17,7 +17,7 @@ package org.apache.doris.clone; - +import com.google.common.base.Preconditions; import org.apache.doris.catalog.Catalog; import org.apache.doris.catalog.ColocateTableIndex; import org.apache.doris.catalog.Database; @@ -198,6 +198,11 @@ public class ColocateTableBalancer extends Daemon { Set allGroupIds = colocateIndex.getAllGroupIds(); for (Long groupId : allGroupIds) { + if (colocateIndex.isGroupBalancing(groupId)) { + LOG.info("colocate group {} is balancing", groupId); + continue; + } + Database db = catalog.getDb(colocateIndex.getDB(groupId)); List clusterAliveBackendIds = getAliveClusterBackendIds(db.getClusterName()); Set allGroupBackendIds = colocateIndex.getBackendsByGroup(groupId); @@ -590,6 +595,8 @@ public class ColocateTableBalancer extends Daemon { backends.add(cloneReplicaBackendId); } + Preconditions.checkState(replicateNum == backends.size(), replicateNum + " vs. " + backends.size()); + AddMigrationJob(tabletInfo, cloneReplicaBackendId); } }