diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java index 28555c8c056b..0d6b3796ddac 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -2571,18 +2571,6 @@ private int setOfflineInZooKeeper(final RegionState state, final ServerName dest return versionOfOfflineNode; } - /** - * For a given cluster with mixed versions of servers, get a list of - * servers with lower versions, where system table regions should not be - * assigned to. - * For system table, we must assign regions to a server with highest version. - * RS will report to master before register on zk, and only when RS have registered on zk we can - * know the version. So in fact we will never assign a system region to a RS without registering on zk. - */ - public List getExcludedServersForSystemTable() { - return getExcludedServersForSystemTable(false); - } - /** * For a given cluster with mixed versions of servers, get a list of * servers with lower versions, where system table regions should not be @@ -2592,15 +2580,9 @@ public List getExcludedServersForSystemTable() { * "hbase.min.version.move.system.tables" if checkForMinVersion is true. * Detailed explanation available with definition of minVersionToMoveSysTables. * - * @param checkForMinVersion If false, return a list of servers with lower version. If true, - * compare higher version with minVersionToMoveSysTables. Only if higher version is greater - * than minVersionToMoveSysTables, this method returns list of servers with lower version. If - * higher version is less than or equal to minVersionToMoveSysTables, returns empty list. - * An example is provided with definition of minVersionToMoveSysTables. * @return List of Excluded servers for System table regions. */ - private List getExcludedServersForSystemTable( - boolean checkForMinVersion) { + public List getExcludedServersForSystemTable() { List> serverList = new ArrayList<>(); for (ServerName s : serverManager.getOnlineServersList()) { serverList.add(new Pair<>(s, server.getRegionServerVersion(s))); @@ -2615,13 +2597,11 @@ public int compare(Pair o1, Pair o2) { return VersionInfo.compareVersion(o1.getSecond(), o2.getSecond()); } }).getSecond(); - if (checkForMinVersion) { - if (!DEFAULT_MIN_VERSION_MOVE_SYS_TABLES_CONFIG.equals(minVersionToMoveSysTables)) { - int comparedValue = VersionInfo - .compareVersion(minVersionToMoveSysTables, highestVersion); - if (comparedValue > 0) { - return Collections.emptyList(); - } + if (!DEFAULT_MIN_VERSION_MOVE_SYS_TABLES_CONFIG.equals(minVersionToMoveSysTables)) { + int comparedValue = VersionInfo.compareVersion(minVersionToMoveSysTables, + highestVersion); + if (comparedValue > 0) { + return Collections.emptyList(); } } List res = new ArrayList<>(); @@ -2754,7 +2734,7 @@ public void run() { synchronized (checkIfShouldMoveSystemRegionLock) { // RS register on ZK after reports startup on master List regionsShouldMove = new ArrayList<>(); - for (ServerName server : getExcludedServersForSystemTable(true)) { + for (ServerName server : getExcludedServersForSystemTable()) { regionsShouldMove.addAll(getCarryingSystemTables(server)); } if (!regionsShouldMove.isEmpty()) {