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