From c598a2f9e386a4c445a412b1fb3753c465c30e3a Mon Sep 17 00:00:00 2001 From: Duo Zhang Date: Wed, 18 Aug 2021 11:55:49 +0800 Subject: [PATCH] HBASE-26172 Deprecated MasterRegistry --- .../hadoop/hbase/client/MasterRegistry.java | 3 +- .../client/RegistryEndpointsRefresher.java | 4 -- .../hbase/client/RpcConnectionRegistry.java | 2 +- .../TestRegistryEndpointsRefresher.java | 16 ++--- .../apache/hadoop/hbase/master/HMaster.java | 17 +++-- .../hbase/master/MasterRpcServices.java | 65 +------------------ .../hbase/regionserver/HRegionServer.java | 16 +++-- .../hbase/regionserver/RSRpcServices.java | 39 +++++------ .../master/TestSplitRegionWhileRSCrash.java | 52 +++++++-------- .../hbase/zookeeper/MasterAddressTracker.java | 2 +- 10 files changed, 75 insertions(+), 141 deletions(-) rename {hbase-server => hbase-client}/src/test/java/org/apache/hadoop/hbase/client/TestRegistryEndpointsRefresher.java (87%) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MasterRegistry.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MasterRegistry.java index 76477aac8773..af6eaa5e387e 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MasterRegistry.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MasterRegistry.java @@ -49,8 +49,9 @@ * {@link #MASTER_REGISTRY_HEDGED_REQS_FANOUT_KEY} to a value greater than {@code 1} will enable * it(the default value is {@link AbstractRpcBasedConnectionRegistry#HEDGED_REQS_FANOUT_DEFAULT}). *

- * TODO: Handle changes to the configuration dynamically without having to restart the client. + * @deprecated Since 2.5.0, will be removed in 4.0.0. Use {@link RpcConnectionRegistry} instead. */ +@Deprecated @InterfaceAudience.Private public class MasterRegistry extends AbstractRpcBasedConnectionRegistry { diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegistryEndpointsRefresher.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegistryEndpointsRefresher.java index 7eb81b0883f3..6599b620eb2e 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegistryEndpointsRefresher.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegistryEndpointsRefresher.java @@ -39,12 +39,8 @@ class RegistryEndpointsRefresher { private static final Logger LOG = LoggerFactory.getLogger(RegistryEndpointsRefresher.class); - public static final String PERIODIC_REFRESH_INTERVAL_SECS = - "hbase.client.rpc_registry.refresh_interval_secs"; private static final int PERIODIC_REFRESH_INTERVAL_SECS_DEFAULT = 300; - public static final String MIN_SECS_BETWEEN_REFRESHES = - "hbase.client.rpc_registry.min_secs_between_refreshes"; private static final int MIN_SECS_BETWEEN_REFRESHES_DEFAULT = 60; private final Thread thread; diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistry.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistry.java index 0096bfc01712..bcd37b182b6b 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistry.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistry.java @@ -49,7 +49,7 @@ public class RpcConnectionRegistry extends AbstractRpcBasedConnectionRegistry { /** Configuration key that controls the fan out of requests **/ - public static final String HEDGED_REQS_FANOUT_KEY = "hbase.client.rpc_registry.hedged.fanout"; + public static final String HEDGED_REQS_FANOUT_KEY = "hbase.client.bootstrap.hedged.fanout"; public static final String PERIODIC_REFRESH_INTERVAL_SECS = "hbase.client.bootstrap.refresh_interval_secs"; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRegistryEndpointsRefresher.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestRegistryEndpointsRefresher.java similarity index 87% rename from hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRegistryEndpointsRefresher.java rename to hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestRegistryEndpointsRefresher.java index 1447099168f4..748ad41952a6 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRegistryEndpointsRefresher.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestRegistryEndpointsRefresher.java @@ -52,13 +52,13 @@ public class TestRegistryEndpointsRefresher { private Configuration conf; private RegistryEndpointsRefresher refresher; - private AtomicInteger getMastersCallCounter; + private AtomicInteger refreshCallCounter; private CopyOnWriteArrayList callTimestamps; @Before public void setUp() { conf = HBaseConfiguration.create(); - getMastersCallCounter = new AtomicInteger(0); + refreshCallCounter = new AtomicInteger(0); callTimestamps = new CopyOnWriteArrayList<>(); } @@ -70,7 +70,7 @@ public void tearDown() { } private void refresh() { - getMastersCallCounter.incrementAndGet(); + refreshCallCounter.incrementAndGet(); callTimestamps.add(EnvironmentEdgeManager.currentTime()); } @@ -86,8 +86,8 @@ private void createAndStartRefresher(long intervalSecs, long minIntervalSecs) { public void testPeriodicMasterEndPointRefresh() throws IOException { // Refresh every 1 second. createAndStartRefresher(1, 0); - // Wait for > 3 seconds to see that at least 3 getMasters() RPCs have been made. - Waiter.waitFor(conf, 5000, () -> getMastersCallCounter.get() > 3); + // Wait for > 3 seconds to see that at least 3 refresh have been made. + Waiter.waitFor(conf, 5000, () -> refreshCallCounter.get() > 3); } @Test @@ -101,10 +101,10 @@ public void testDurationBetweenRefreshes() throws IOException { Uninterruptibles.sleepUninterruptibly(1, TimeUnit.MILLISECONDS); } // Overall wait time is 10000 ms, so the number of requests should be <=10 - // Actual calls to getMasters() should be much lower than the refresh count. - assertTrue(String.valueOf(getMastersCallCounter.get()), getMastersCallCounter.get() <= 20); + // Actual calls to refresh should be much lower than the refresh count. + assertTrue(String.valueOf(refreshCallCounter.get()), refreshCallCounter.get() <= 20); assertTrue(callTimestamps.size() > 0); - // Verify that the delta between subsequent RPCs is at least 1sec as configured. + // Verify that the delta between subsequent refresh is at least 1sec as configured. for (int i = 1; i < callTimestamps.size() - 1; i++) { long delta = callTimestamps.get(i) - callTimestamps.get(i - 1); // Few ms cushion to account for any env jitter. diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index c2ed0b6b31a2..db6cb8600735 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -2700,10 +2700,21 @@ public ClusterMetrics getClusterMetrics(EnumSet