You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by su...@apache.org on 2021/02/08 03:31:47 UTC
[hbase] 01/02: Revert "HBASE-25553 It is better for
ReplicationTracker.getListOfRegionServers to return ServerName instead of
String (#2928)"
This is an automated email from the ASF dual-hosted git repository.
sunxin pushed a commit to branch branch-2.2
in repository https://gitbox.apache.org/repos/asf/hbase.git
commit c4b194af2c86ecbcfb44ba4dca594dbb705a200d
Author: sunxin <su...@apache.org>
AuthorDate: Mon Feb 8 11:03:43 2021 +0800
Revert "HBASE-25553 It is better for ReplicationTracker.getListOfRegionServers to return ServerName instead of String (#2928)"
This reverts commit d81ae67e
---
.../hadoop/hbase/replication/ReplicationTracker.java | 7 +++----
.../hbase/replication/ReplicationTrackerZKImpl.java | 16 ++++++----------
.../replication/regionserver/DumpReplicationQueues.java | 4 ++--
.../regionserver/ReplicationSourceManager.java | 3 ++-
.../hbase/replication/TestReplicationTrackerZKImpl.java | 13 ++++---------
5 files changed, 17 insertions(+), 26 deletions(-)
diff --git a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTracker.java b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTracker.java
index 9370226..95bb5db 100644
--- a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTracker.java
+++ b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTracker.java
@@ -20,7 +20,6 @@ package org.apache.hadoop.hbase.replication;
import java.util.List;
-import org.apache.hadoop.hbase.ServerName;
import org.apache.yetus.audience.InterfaceAudience;
/**
@@ -38,13 +37,13 @@ public interface ReplicationTracker {
* Register a replication listener to receive replication events.
* @param listener
*/
- void registerListener(ReplicationListener listener);
+ public void registerListener(ReplicationListener listener);
- void removeListener(ReplicationListener listener);
+ public void removeListener(ReplicationListener listener);
/**
* Returns a list of other live region servers in the cluster.
* @return List of region servers.
*/
- List<ServerName> getListOfRegionServers();
+ public List<String> getListOfRegionServers();
}
diff --git a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java
index 6fc3c45..54c9c2c 100644
--- a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java
+++ b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java
@@ -20,10 +20,7 @@ package org.apache.hadoop.hbase.replication;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.stream.Collectors;
-
import org.apache.hadoop.hbase.Abortable;
-import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.Stoppable;
import org.apache.hadoop.hbase.zookeeper.ZKListener;
import org.apache.hadoop.hbase.zookeeper.ZKUtil;
@@ -52,7 +49,7 @@ public class ReplicationTrackerZKImpl implements ReplicationTracker {
// listeners to be notified
private final List<ReplicationListener> listeners = new CopyOnWriteArrayList<>();
// List of all the other region servers in this cluster
- private final List<ServerName> otherRegionServers = new ArrayList<>();
+ private final ArrayList<String> otherRegionServers = new ArrayList<>();
public ReplicationTrackerZKImpl(ZKWatcher zookeeper, Abortable abortable, Stoppable stopper) {
this.zookeeper = zookeeper;
@@ -77,10 +74,10 @@ public class ReplicationTrackerZKImpl implements ReplicationTracker {
* Return a snapshot of the current region servers.
*/
@Override
- public List<ServerName> getListOfRegionServers() {
+ public List<String> getListOfRegionServers() {
refreshOtherRegionServersList(false);
- List<ServerName> list = null;
+ List<String> list = null;
synchronized (otherRegionServers) {
list = new ArrayList<>(otherRegionServers);
}
@@ -165,7 +162,7 @@ public class ReplicationTrackerZKImpl implements ReplicationTracker {
* if it was empty), false if the data was missing in ZK
*/
private boolean refreshOtherRegionServersList(boolean watch) {
- List<ServerName> newRsList = getRegisteredRegionServers(watch);
+ List<String> newRsList = getRegisteredRegionServers(watch);
if (newRsList == null) {
return false;
} else {
@@ -181,7 +178,7 @@ public class ReplicationTrackerZKImpl implements ReplicationTracker {
* Get a list of all the other region servers in this cluster and set a watch
* @return a list of server nanes
*/
- private List<ServerName> getRegisteredRegionServers(boolean watch) {
+ private List<String> getRegisteredRegionServers(boolean watch) {
List<String> result = null;
try {
if (watch) {
@@ -193,7 +190,6 @@ public class ReplicationTrackerZKImpl implements ReplicationTracker {
} catch (KeeperException e) {
this.abortable.abort("Get list of registered region servers", e);
}
- return result == null ? null :
- result.stream().map(ServerName::parseServerName).collect(Collectors.toList());
+ return result;
}
}
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java
index 5201d6e..432dbcd 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java
@@ -311,7 +311,7 @@ public class DumpReplicationQueues extends Configured implements Tool {
queueStorage = ReplicationStorageFactory.getReplicationQueueStorage(zkw, getConf());
replicationTracker = ReplicationFactory.getReplicationTracker(zkw, new WarnOnlyAbortable(),
new WarnOnlyStoppable());
- Set<ServerName> liveRegionServers = new HashSet<>(replicationTracker.getListOfRegionServers());
+ Set<String> liveRegionServers = new HashSet<>(replicationTracker.getListOfRegionServers());
// Loops each peer on each RS and dumps the queues
List<ServerName> regionservers = queueStorage.getListOfReplicators();
@@ -320,7 +320,7 @@ public class DumpReplicationQueues extends Configured implements Tool {
}
for (ServerName regionserver : regionservers) {
List<String> queueIds = queueStorage.getAllQueues(regionserver);
- if (!liveRegionServers.contains(regionserver)) {
+ if (!liveRegionServers.contains(regionserver.getServerName())) {
deadRegionServers.add(regionserver.getServerName());
}
for (String queueId : queueIds) {
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java
index 082981e..2806110 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java
@@ -243,7 +243,8 @@ public class ReplicationSourceManager implements ReplicationListener {
if (currentReplicators == null || currentReplicators.isEmpty()) {
return;
}
- List<ServerName> otherRegionServers = replicationTracker.getListOfRegionServers();
+ List<ServerName> otherRegionServers = replicationTracker.getListOfRegionServers().stream()
+ .map(ServerName::valueOf).collect(Collectors.toList());
LOG.info(
"Current list of replicators: " + currentReplicators + " other RSs: " + otherRegionServers);
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationTrackerZKImpl.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationTrackerZKImpl.java
index 9a94219..f54f730 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationTrackerZKImpl.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationTrackerZKImpl.java
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import java.io.IOException;
-import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
@@ -117,26 +116,22 @@ public class TestReplicationTrackerZKImpl {
// 1 region server
ZKUtil.createWithParents(zkw,
ZNodePaths.joinZNode(zkw.getZNodePaths().rsZNode, "hostname1.example.org:1234"));
- List<String> rss = rt.getListOfRegionServers();
- assertEquals(rss.toString(), 1, rss.size());
+ assertEquals(1, rt.getListOfRegionServers().size());
// 2 region servers
ZKUtil.createWithParents(zkw,
ZNodePaths.joinZNode(zkw.getZNodePaths().rsZNode, "hostname2.example.org:1234"));
- rss = rt.getListOfRegionServers();
- assertEquals(rss.toString(), 2, rss.size());
+ assertEquals(2, rt.getListOfRegionServers().size());
// 1 region server
ZKUtil.deleteNode(zkw,
ZNodePaths.joinZNode(zkw.getZNodePaths().rsZNode, "hostname2.example.org:1234"));
- rss = rt.getListOfRegionServers();
- assertEquals(1, rss.size());
+ assertEquals(1, rt.getListOfRegionServers().size());
// 0 region server
ZKUtil.deleteNode(zkw,
ZNodePaths.joinZNode(zkw.getZNodePaths().rsZNode, "hostname1.example.org:1234"));
- rss = rt.getListOfRegionServers();
- assertEquals(rss.toString(), 0, rss.size());
+ assertEquals(0, rt.getListOfRegionServers().size());
}
@Test