From 5e55af79dbc889eb96966236ea56c14336cac1b6 Mon Sep 17 00:00:00 2001 From: Apekshit Sharma Date: Fri, 20 Oct 2017 17:20:17 -0700 Subject: [PATCH] HBASE-19073 Cleanup CoordinatedStateManager - Merged BaseCSM class into CSM interface - Removed config hbase.coordinated.state.manager.class - Since state manager is not pluggable anymore, we don't need start/stop/initialize to setup unknown classes. Our internal ZkCSM now requires Server in constructor itself. Makes the dependency clearer too. - Removed CSM from HRegionServer and HMaster constructor. Although it's a step back from dependency injection, but it's more consistent with our current (not good) pattern where we initialize everything in the ctor itself. Change-Id: Ifca06bb354adec5b11ea1bad4707e014410491fc --- .../master/LogRollMasterProcedureManager.java | 9 +-- .../LogRollRegionServerProcedureManager.java | 12 ++-- .../java/org/apache/hadoop/hbase/HConstants.java | 6 +- .../hadoop/hbase/CoordinatedStateManager.java | 31 +++++---- .../hbase/CoordinatedStateManagerFactory.java | 48 -------------- .../org/apache/hadoop/hbase/LocalHBaseCluster.java | 16 +---- .../coordination/BaseCoordinatedStateManager.java | 76 ---------------------- .../coordination/SplitLogManagerCoordination.java | 4 +- .../ZKSplitLogManagerCoordination.java | 9 +-- .../coordination/ZkCoordinatedStateManager.java | 21 +++--- .../coordination/ZkSplitLogWorkerCoordination.java | 9 +-- .../org/apache/hadoop/hbase/master/HMaster.java | 11 ++-- .../hadoop/hbase/master/HMasterCommandLine.java | 10 +-- .../hadoop/hbase/master/SplitLogManager.java | 4 +- .../hadoop/hbase/regionserver/HRegionServer.java | 27 +++----- .../regionserver/HRegionServerCommandLine.java | 5 +- .../hadoop/hbase/regionserver/SplitLogWorker.java | 15 ++--- .../apache/hadoop/hbase/util/JVMClusterUtil.java | 23 ++----- .../org/apache/hadoop/hbase/wal/WALSplitter.java | 49 +++++++------- .../org/apache/hadoop/hbase/MiniHBaseCluster.java | 4 +- .../apache/hadoop/hbase/TestLocalHBaseCluster.java | 10 ++- .../hadoop/hbase/TestMovedRegionsCleaner.java | 5 +- .../hbase/client/TestClientScannerRPCTimeout.java | 6 +- .../apache/hadoop/hbase/client/TestMetaCache.java | 4 +- .../hbase/master/TestDistributedLogSplitting.java | 5 +- .../hbase/master/TestHMasterRPCException.java | 5 +- .../hadoop/hbase/master/TestMasterMetrics.java | 5 +- .../hadoop/hbase/master/TestMasterNoCluster.java | 17 ++--- .../hbase/master/TestMetaShutdownHandler.java | 5 +- .../hadoop/hbase/master/TestSplitLogManager.java | 6 +- .../hbase/regionserver/OOMERegionServer.java | 5 +- .../hadoop/hbase/regionserver/TestClusterId.java | 10 +-- .../TestCompactionInDeadRegionServer.java | 4 -- .../hadoop/hbase/regionserver/TestPriorityRpc.java | 5 +- .../regionserver/TestRSKilledWhenInitializing.java | 4 +- .../TestRegionMergeTransactionOnCluster.java | 6 +- .../regionserver/TestRegionServerHostname.java | 2 +- .../TestRegionServerReportForDuty.java | 5 +- .../regionserver/TestScannerHeartbeatMessages.java | 5 -- .../hbase/regionserver/TestSplitLogWorker.java | 5 +- .../TestSplitTransactionOnCluster.java | 6 +- .../regionserver/wal/AbstractTestWALReplay.java | 6 +- .../hbase/replication/TestReplicationSource.java | 5 -- .../hadoop/hbase/wal/TestWALReaderOnSecureWAL.java | 10 +-- .../org/apache/hadoop/hbase/wal/TestWALSplit.java | 14 ++-- src/main/asciidoc/_chapters/hbase-default.adoc | 11 ---- 46 files changed, 157 insertions(+), 403 deletions(-) delete mode 100644 hbase-server/src/main/java/org/apache/hadoop/hbase/CoordinatedStateManagerFactory.java delete mode 100644 hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/BaseCoordinatedStateManager.java diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java index 62b2df7119..567d5ec681 100644 --- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java +++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java @@ -26,12 +26,12 @@ import java.util.concurrent.ThreadPoolExecutor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.backup.BackupRestoreConstants; import org.apache.hadoop.hbase.backup.impl.BackupManager; +import org.apache.hadoop.hbase.coordination.ZkCoordinatedStateManager; import org.apache.yetus.audience.InterfaceAudience; -import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager; +import org.apache.hadoop.hbase.CoordinatedStateManager; import org.apache.hadoop.hbase.errorhandling.ForeignException; import org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher; import org.apache.hadoop.hbase.master.MasterServices; @@ -95,10 +95,7 @@ public class LogRollMasterProcedureManager extends MasterProcedureManager { // setup the default procedure coordinator ThreadPoolExecutor tpool = ProcedureCoordinator.defaultPool(name, opThreads); - BaseCoordinatedStateManager coordManager = - (BaseCoordinatedStateManager) CoordinatedStateManagerFactory - .getCoordinatedStateManager(master.getConfiguration()); - coordManager.initialize(master); + CoordinatedStateManager coordManager = new ZkCoordinatedStateManager(master); ProcedureCoordinatorRpcs comms = coordManager.getProcedureCoordinatorRpcs(getProcedureSignature(), name); this.coordinator = new ProcedureCoordinator(comms, tpool, timeoutMillis, wakeFrequency); diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java index 5ab7facf9b..c499ec7e45 100644 --- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java +++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java @@ -24,12 +24,12 @@ import java.util.concurrent.ThreadPoolExecutor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; +import org.apache.hadoop.hbase.CoordinatedStateManager; import org.apache.hadoop.hbase.backup.BackupRestoreConstants; import org.apache.hadoop.hbase.backup.impl.BackupManager; import org.apache.hadoop.hbase.backup.master.LogRollMasterProcedureManager; +import org.apache.hadoop.hbase.coordination.ZkCoordinatedStateManager; import org.apache.yetus.audience.InterfaceAudience; -import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager; import org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher; import org.apache.hadoop.hbase.procedure.ProcedureMember; import org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs; @@ -159,12 +159,8 @@ public class LogRollRegionServerProcedureManager extends RegionServerProcedureMa + " setting"); return; } - BaseCoordinatedStateManager coordManager = - (BaseCoordinatedStateManager) CoordinatedStateManagerFactory. - getCoordinatedStateManager(rss.getConfiguration()); - coordManager.initialize(rss); - this.memberRpcs = - coordManager + CoordinatedStateManager coordManager = new ZkCoordinatedStateManager(rss); + this.memberRpcs = coordManager .getProcedureMemberRpcs(LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_SIGNATURE); // read in the backup handler configuration properties diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java index a272fc8ab5..45f22a67ca 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java @@ -1209,10 +1209,6 @@ public final class HConstants { public static final int REPLICATION_SOURCE_MAXTHREADS_DEFAULT = 10; - /** Config for pluggable consensus provider */ - public static final String HBASE_COORDINATED_STATE_MANAGER_CLASS = - "hbase.coordinated.state.manager.class"; - /** Configuration key for SplitLog manager timeout */ public static final String HBASE_SPLITLOG_MANAGER_TIMEOUT = "hbase.splitlog.manager.timeout"; @@ -1298,7 +1294,7 @@ public final class HConstants { public static final String HBASE_CANARY_WRITE_TABLE_CHECK_PERIOD_KEY = "hbase.canary.write.table.check.period"; - + public static final String HBASE_CANARY_READ_RAW_SCAN_KEY = "hbase.canary.read.raw.enabled"; /** diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/CoordinatedStateManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/CoordinatedStateManager.java index 1da758751f..ab146e71d1 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/CoordinatedStateManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/CoordinatedStateManager.java @@ -17,7 +17,14 @@ */ package org.apache.hadoop.hbase; +import org.apache.hadoop.hbase.coordination.SplitLogManagerCoordination; +import org.apache.hadoop.hbase.coordination.SplitLogWorkerCoordination; +import org.apache.hadoop.hbase.procedure.ProcedureCoordinatorRpcs; +import org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs; import org.apache.yetus.audience.InterfaceAudience; +import org.apache.zookeeper.KeeperException; + +import java.io.IOException; /** * Implementations of this interface will keep and return to clients @@ -28,31 +35,27 @@ import org.apache.yetus.audience.InterfaceAudience; * For each coarse-grained area of operations there will be a separate * interface with implementation, providing API for relevant operations * requiring coordination. - * - * Property hbase.coordinated.state.manager.class in hbase-site.xml controls - * which provider to use. */ @InterfaceAudience.Private public interface CoordinatedStateManager { - /** - * Initialize coordinated state management service. - * @param server server instance to run within. + * Method to retrieve coordination for split log worker */ - void initialize(Server server); + SplitLogWorkerCoordination getSplitLogWorkerCoordination(); /** - * Starts service. + * Method to retrieve coordination for split log manager */ - void start(); - + SplitLogManagerCoordination getSplitLogManagerCoordination(); /** - * Stops service. + * Method to retrieve {@link org.apache.hadoop.hbase.procedure.ProcedureCoordinatorRpcs} */ - void stop(); + ProcedureCoordinatorRpcs getProcedureCoordinatorRpcs(String procType, String coordNode) + throws IOException; /** - * @return instance of Server coordinated state manager runs within + * Method to retrieve {@link org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs} */ - Server getServer(); + ProcedureMemberRpcs getProcedureMemberRpcs(String procType) throws KeeperException; + } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/CoordinatedStateManagerFactory.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/CoordinatedStateManagerFactory.java deleted file mode 100644 index c66215ab19..0000000000 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/CoordinatedStateManagerFactory.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.hadoop.hbase; - -import org.apache.yetus.audience.InterfaceAudience; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.coordination.ZkCoordinatedStateManager; -import org.apache.hadoop.util.ReflectionUtils; - -/** - * Creates instance of {@link CoordinatedStateManager} - * based on configuration. - */ -@InterfaceAudience.Private -public final class CoordinatedStateManagerFactory { - - /** - * Private to keep this class from being accidentally instantiated. - */ - private CoordinatedStateManagerFactory(){} - - /** - * Creates consensus provider from the given configuration. - * @param conf Configuration - * @return Implementation of {@link CoordinatedStateManager} - */ - public static CoordinatedStateManager getCoordinatedStateManager(Configuration conf) { - Class coordinatedStateMgrKlass = - conf.getClass(HConstants.HBASE_COORDINATED_STATE_MANAGER_CLASS, - ZkCoordinatedStateManager.class, CoordinatedStateManager.class); - return ReflectionUtils.newInstance(coordinatedStateMgrKlass, conf); - } -} diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java index 123cc428df..e43d33bb0e 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java @@ -173,14 +173,8 @@ public class LocalHBaseCluster { // Create each regionserver with its own Configuration instance so each has // its Connection instance rather than share (see HBASE_INSTANCES down in // the guts of ConnectionManager). - - // Also, create separate CoordinatedStateManager instance per Server. - // This is special case when we have to have more than 1 CoordinatedStateManager - // within 1 process. - CoordinatedStateManager cp = CoordinatedStateManagerFactory.getCoordinatedStateManager(conf); - JVMClusterUtil.RegionServerThread rst = - JVMClusterUtil.createRegionServerThread(config, cp, (Class) conf + JVMClusterUtil.createRegionServerThread(config, (Class) conf .getClass(HConstants.REGION_SERVER_IMPL, this.regionServerClass), index); this.regionThreads.add(rst); @@ -208,13 +202,7 @@ public class LocalHBaseCluster { // Create each master with its own Configuration instance so each has // its Connection instance rather than share (see HBASE_INSTANCES down in // the guts of ConnectionManager. - - // Also, create separate CoordinatedStateManager instance per Server. - // This is special case when we have to have more than 1 CoordinatedStateManager - // within 1 process. - CoordinatedStateManager cp = CoordinatedStateManagerFactory.getCoordinatedStateManager(conf); - - JVMClusterUtil.MasterThread mt = JVMClusterUtil.createMasterThread(c, cp, + JVMClusterUtil.MasterThread mt = JVMClusterUtil.createMasterThread(c, (Class) conf.getClass(HConstants.MASTER_IMPL, this.masterClass), index); this.masterThreads.add(mt); return mt; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/BaseCoordinatedStateManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/BaseCoordinatedStateManager.java deleted file mode 100644 index 0727375e18..0000000000 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/BaseCoordinatedStateManager.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.hadoop.hbase.coordination; - -import java.io.IOException; - -import org.apache.hadoop.hbase.CoordinatedStateManager; -import org.apache.hadoop.hbase.Server; -import org.apache.yetus.audience.InterfaceAudience; -import org.apache.hadoop.hbase.procedure.ProcedureCoordinatorRpcs; -import org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs; -import org.apache.zookeeper.KeeperException; - -/** - * Base class for {@link org.apache.hadoop.hbase.CoordinatedStateManager} implementations. - * Defines methods to retrieve coordination objects for relevant areas. CoordinatedStateManager - * reference returned from Server interface has to be casted to this type to - * access those methods. - */ -@InterfaceAudience.Private -public abstract class BaseCoordinatedStateManager implements CoordinatedStateManager { - - @Override - public void initialize(Server server) { - } - - @Override - public void start() { - } - - @Override - public void stop() { - } - - @Override - public Server getServer() { - return null; - } - - /** - * Method to retrieve coordination for split log worker - */ - public abstract SplitLogWorkerCoordination getSplitLogWorkerCoordination(); - - /** - * Method to retrieve coordination for split log manager - */ - public abstract SplitLogManagerCoordination getSplitLogManagerCoordination(); - /** - * Method to retrieve {@link org.apache.hadoop.hbase.procedure.ProcedureCoordinatorRpcs} - */ - public abstract ProcedureCoordinatorRpcs - getProcedureCoordinatorRpcs(String procType, String coordNode) throws IOException; - - /** - * Method to retrieve {@link org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs} - */ - public abstract ProcedureMemberRpcs - getProcedureMemberRpcs(String procType) throws KeeperException; - -} diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/SplitLogManagerCoordination.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/SplitLogManagerCoordination.java index df8103b31b..564d729245 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/SplitLogManagerCoordination.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/SplitLogManagerCoordination.java @@ -58,7 +58,7 @@ public interface SplitLogManagerCoordination { /** * Detail class that shares data between coordination and split log manager */ - public static class SplitLogManagerDetails { + class SplitLogManagerDetails { final private ConcurrentMap tasks; final private MasterServices master; final private Set failedDeletions; @@ -156,7 +156,7 @@ public interface SplitLogManagerCoordination { * @throws InterruptedIOException * @throws IOException in case of failure */ - void setRecoveryMode(boolean b) throws InterruptedIOException, IOException; + void setRecoveryMode(boolean b) throws IOException; /** * Removes known stale servers diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.java index 5fd20e82c4..ef99de0847 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.java @@ -49,6 +49,7 @@ import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.master.SplitLogManager.ResubmitDirective; import org.apache.hadoop.hbase.master.SplitLogManager.Task; import org.apache.hadoop.hbase.master.SplitLogManager.TerminationStatus; +import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.hadoop.hbase.wal.AbstractFSWALProvider; import org.apache.hadoop.hbase.wal.WALSplitter; @@ -101,14 +102,14 @@ public class ZKSplitLogManagerCoordination extends ZooKeeperListener implements private boolean isDrainingDone = false; - public ZKSplitLogManagerCoordination(final CoordinatedStateManager manager, - ZooKeeperWatcher watcher) { + public ZKSplitLogManagerCoordination(Configuration conf, ZooKeeperWatcher watcher) { super(watcher); + this.conf = conf; taskFinisher = new TaskFinisher() { @Override public Status finish(ServerName workerName, String logfile) { try { - WALSplitter.finishSplitLogFile(logfile, manager.getServer().getConfiguration()); + WALSplitter.finishSplitLogFile(logfile, conf); } catch (IOException e) { LOG.warn("Could not finish splitting of log file " + logfile, e); return Status.ERR; @@ -116,7 +117,6 @@ public class ZKSplitLogManagerCoordination extends ZooKeeperListener implements return Status.DONE; } }; - this.conf = manager.getServer().getConfiguration(); } @Override @@ -1122,6 +1122,7 @@ public class ZKSplitLogManagerCoordination extends ZooKeeperListener implements /** * Temporary function that is used by unit tests only */ + @VisibleForTesting public void setIgnoreDeleteForTesting(boolean b) { ignoreZKDeleteForTesting = b; } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkCoordinatedStateManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkCoordinatedStateManager.java index 2fc8e39a59..10e2642e32 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkCoordinatedStateManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkCoordinatedStateManager.java @@ -19,8 +19,11 @@ package org.apache.hadoop.hbase.coordination; import java.io.IOException; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.CoordinatedStateManager; import org.apache.hadoop.hbase.HBaseInterfaceAudience; import org.apache.hadoop.hbase.Server; +import org.apache.hadoop.hbase.ServerName; import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.hbase.procedure.ProcedureCoordinatorRpcs; import org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs; @@ -33,24 +36,16 @@ import org.apache.zookeeper.KeeperException; * ZooKeeper-based implementation of {@link org.apache.hadoop.hbase.CoordinatedStateManager}. */ @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG) -public class ZkCoordinatedStateManager extends BaseCoordinatedStateManager { - protected Server server; +public class ZkCoordinatedStateManager implements CoordinatedStateManager { protected ZooKeeperWatcher watcher; protected SplitLogWorkerCoordination splitLogWorkerCoordination; protected SplitLogManagerCoordination splitLogManagerCoordination; - @Override - public void initialize(Server server) { - this.server = server; + public ZkCoordinatedStateManager(Server server) { this.watcher = server.getZooKeeper(); - splitLogWorkerCoordination = new ZkSplitLogWorkerCoordination(this, watcher); - splitLogManagerCoordination = new ZKSplitLogManagerCoordination(this, watcher); - - } - - @Override - public Server getServer() { - return server; + splitLogWorkerCoordination = new ZkSplitLogWorkerCoordination(server.getServerName(), watcher); + splitLogManagerCoordination = new ZKSplitLogManagerCoordination(server.getConfiguration(), + watcher); } @Override diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.java index 230a42f3f0..14e7796e16 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.java @@ -90,13 +90,11 @@ public class ZkSplitLogWorkerCoordination extends ZooKeeperListener implements protected final AtomicInteger tasksInProgress = new AtomicInteger(0); private int maxConcurrentTasks = 0; - private final ZkCoordinatedStateManager manager; + private final ServerName serverName; - public ZkSplitLogWorkerCoordination(ZkCoordinatedStateManager zkCoordinatedStateManager, - ZooKeeperWatcher watcher) { + public ZkSplitLogWorkerCoordination(ServerName serverName, ZooKeeperWatcher watcher) { super(watcher); - manager = zkCoordinatedStateManager; - + this.serverName = serverName; } /** @@ -185,7 +183,6 @@ public class ZkSplitLogWorkerCoordination extends ZooKeeperListener implements // currentTask can change but that's ok String taskpath = currentTask; if (taskpath != null && taskpath.equals(path)) { - ServerName serverName = manager.getServer().getServerName(); // have to compare data. cannot compare version because then there // will be race with attemptToOwnTask() // cannot just check whether the node has been transitioned to 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 8292c0272c..b43cccfe00 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 @@ -471,9 +471,9 @@ public class HMaster extends HRegionServer implements MasterServices { * #finishActiveMasterInitialization(MonitoredTask) after * the master becomes the active one. */ - public HMaster(final Configuration conf, CoordinatedStateManager csm) + public HMaster(final Configuration conf) throws IOException, KeeperException { - super(conf, csm); + super(conf); this.rsFatals = new MemoryBoundedLogMessageBuffer( conf.getLong("hbase.master.buffer.for.rs.fatals", 1*1024*1024)); @@ -2855,11 +2855,10 @@ public class HMaster extends HRegionServer implements MasterServices { * @return HMaster instance. */ public static HMaster constructMaster(Class masterClass, - final Configuration conf, final CoordinatedStateManager cp) { + final Configuration conf) { try { - Constructor c = - masterClass.getConstructor(Configuration.class, CoordinatedStateManager.class); - return c.newInstance(conf, cp); + Constructor c = masterClass.getConstructor(Configuration.class); + return c.newInstance(conf); } catch(Exception e) { Throwable error = e; if (e instanceof InvocationTargetException && diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java index d1e6b731c3..f9a441d5ab 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java @@ -29,8 +29,6 @@ import org.apache.commons.cli.ParseException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.CoordinatedStateManager; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.LocalHBaseCluster; import org.apache.hadoop.hbase.MasterNotRunningException; @@ -230,9 +228,7 @@ public class HMasterCommandLine extends ServerCommandLine { waitOnMasterThreads(cluster); } else { logProcessInfo(getConf()); - CoordinatedStateManager csm = - CoordinatedStateManagerFactory.getCoordinatedStateManager(conf); - HMaster master = HMaster.constructMaster(masterClass, conf, csm); + HMaster master = HMaster.constructMaster(masterClass, conf); if (master.isStopped()) { LOG.info("Won't bring the Master up as a shutdown is requested"); return 1; @@ -302,9 +298,9 @@ public class HMasterCommandLine extends ServerCommandLine { public static class LocalHMaster extends HMaster { private MiniZooKeeperCluster zkcluster = null; - public LocalHMaster(Configuration conf, CoordinatedStateManager csm) + public LocalHMaster(Configuration conf) throws IOException, KeeperException, InterruptedException { - super(conf, csm); + super(conf); } @Override diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java index 8027b6af5f..67aab825c7 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java @@ -51,7 +51,6 @@ import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.SplitLogCounters; import org.apache.hadoop.hbase.Stoppable; import org.apache.hadoop.hbase.client.RegionInfo; -import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager; import org.apache.hadoop.hbase.coordination.SplitLogManagerCoordination; import org.apache.hadoop.hbase.coordination.SplitLogManagerCoordination.SplitLogManagerDetails; import org.apache.hadoop.hbase.monitoring.MonitoredTask; @@ -153,8 +152,7 @@ public class SplitLogManager { } private SplitLogManagerCoordination getSplitLogManagerCoordination() { - return ((BaseCoordinatedStateManager) server.getCoordinatedStateManager()) - .getSplitLogManagerCoordination(); + return server.getCoordinatedStateManager().getSplitLogManagerCoordination(); } private FileStatus[] getFileList(List logDirs, PathFilter filter) throws IOException { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index 2c0bd035f5..15d726dbdd 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -65,7 +65,6 @@ import org.apache.hadoop.hbase.Abortable; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClockOutOfSyncException; import org.apache.hadoop.hbase.CoordinatedStateManager; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; import org.apache.hadoop.hbase.DoNotRetryIOException; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HBaseInterfaceAudience; @@ -93,8 +92,8 @@ import org.apache.hadoop.hbase.client.locking.EntityLock; import org.apache.hadoop.hbase.client.locking.LockServiceClient; import org.apache.hadoop.hbase.conf.ConfigurationManager; import org.apache.hadoop.hbase.conf.ConfigurationObserver; -import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager; import org.apache.hadoop.hbase.coordination.SplitLogWorkerCoordination; +import org.apache.hadoop.hbase.coordination.ZkCoordinatedStateManager; import org.apache.hadoop.hbase.coprocessor.CoprocessorHost; import org.apache.hadoop.hbase.exceptions.RegionMovedException; import org.apache.hadoop.hbase.exceptions.RegionOpeningException; @@ -513,7 +512,7 @@ public class HRegionServer extends HasThread implements protected final RSRpcServices rpcServices; - protected BaseCoordinatedStateManager csm; + protected CoordinatedStateManager csm; /** * Configuration manager is used to register/deregister and notify the configuration observers @@ -532,18 +531,10 @@ public class HRegionServer extends HasThread implements private final NettyEventLoopGroupConfig eventLoopGroupConfig; - /** - * Starts a HRegionServer at the default location. - */ - public HRegionServer(Configuration conf) throws IOException, InterruptedException { - this(conf, CoordinatedStateManagerFactory.getCoordinatedStateManager(conf)); - } - /** * Starts a HRegionServer at the default location - * @param csm implementation of CoordinatedStateManager to be used */ - public HRegionServer(Configuration conf, CoordinatedStateManager csm) throws IOException { + public HRegionServer(Configuration conf) throws IOException { super("RegionServer"); // thread name this.startcode = System.currentTimeMillis(); this.fsOk = true; @@ -643,9 +634,7 @@ public class HRegionServer extends HasThread implements zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" + rpcServices.isa.getPort(), this, canCreateBaseZNode()); - this.csm = (BaseCoordinatedStateManager) csm; - this.csm.initialize(this); - this.csm.start(); + this.csm = new ZkCoordinatedStateManager(this); masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this); masterAddressTracker.start(); @@ -2860,7 +2849,7 @@ public class HRegionServer extends HasThread implements } @Override - public BaseCoordinatedStateManager getCoordinatedStateManager() { + public CoordinatedStateManager getCoordinatedStateManager() { return csm; } @@ -2956,11 +2945,11 @@ public class HRegionServer extends HasThread implements */ public static HRegionServer constructRegionServer( Class regionServerClass, - final Configuration conf2, CoordinatedStateManager cp) { + final Configuration conf2) { try { Constructor c = regionServerClass - .getConstructor(Configuration.class, CoordinatedStateManager.class); - return c.newInstance(conf2, cp); + .getConstructor(Configuration.class); + return c.newInstance(conf2); } catch (Exception e) { throw new RuntimeException("Failed construction of " + "Regionserver: " + regionServerClass.toString(), e); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java index 343ebf6a62..1212668ca0 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java @@ -23,10 +23,8 @@ import org.apache.commons.logging.LogFactory; import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.LocalHBaseCluster; -import org.apache.hadoop.hbase.CoordinatedStateManager; import org.apache.hadoop.hbase.util.ServerCommandLine; /** @@ -52,7 +50,6 @@ public class HRegionServerCommandLine extends ServerCommandLine { private int start() throws Exception { Configuration conf = getConf(); - CoordinatedStateManager cp = CoordinatedStateManagerFactory.getCoordinatedStateManager(conf); try { // If 'local', don't start a region server here. Defer to // LocalHBaseCluster. It manages 'local' clusters. @@ -61,7 +58,7 @@ public class HRegionServerCommandLine extends ServerCommandLine { + HConstants.CLUSTER_DISTRIBUTED + " is false"); } else { logProcessInfo(getConf()); - HRegionServer hrs = HRegionServer.constructRegionServer(regionServerClass, conf, cp); + HRegionServer hrs = HRegionServer.constructRegionServer(regionServerClass, conf); hrs.start(); hrs.join(); if (hrs.isAborted()) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java index 96e9cf5193..9d00f1a66d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java @@ -32,7 +32,6 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.NotServingRegionException; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.client.RetriesExhaustedException; -import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager; import org.apache.hadoop.hbase.coordination.SplitLogWorkerCoordination; import org.apache.hadoop.hbase.shaded.protobuf.generated.ZooKeeperProtos.SplitLogTask.RecoveryMode; import org.apache.hadoop.hbase.wal.WALFactory; @@ -45,8 +44,8 @@ import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTe /** * This worker is spawned in every regionserver, including master. The Worker waits for log - * splitting tasks to be put up by the {@link org.apache.hadoop.hbase.master.SplitLogManager} - * running in the master and races with other workers in other serves to acquire those tasks. + * splitting tasks to be put up by the {@link org.apache.hadoop.hbase.master.SplitLogManager} + * running in the master and races with other workers in other serves to acquire those tasks. * The coordination is done via coordination engine. *

* If a worker has successfully moved the task from state UNASSIGNED to OWNED then it owns the task. @@ -75,9 +74,7 @@ public class SplitLogWorker implements Runnable { TaskExecutor splitTaskExecutor) { this.server = server; this.conf = conf; - this.coordination = - ((BaseCoordinatedStateManager) hserver.getCoordinatedStateManager()) - .getSplitLogWorkerCoordination(); + this.coordination = hserver.getCoordinatedStateManager().getSplitLogWorkerCoordination(); this.server = server; coordination.init(server, conf, splitTaskExecutor, this); } @@ -102,7 +99,9 @@ public class SplitLogWorker implements Runnable { // encountered a bad non-retry-able persistent error. try { if (!WALSplitter.splitLogFile(walDir, fs.getFileStatus(new Path(walDir, filename)), - fs, conf, p, sequenceIdChecker, server.getCoordinatedStateManager(), mode, factory)) { + fs, conf, p, sequenceIdChecker, + server.getCoordinatedStateManager().getSplitLogWorkerCoordination(), + server.getConnection(), mode, factory)) { return Status.PREEMPTED; } } catch (InterruptedIOException iioe) { @@ -186,7 +185,7 @@ public class SplitLogWorker implements Runnable { * acquired by a {@link SplitLogWorker}. Since there isn't a water-tight * guarantee that two workers will not be executing the same task therefore it * is better to have workers prepare the task and then have the - * {@link org.apache.hadoop.hbase.master.SplitLogManager} commit the work in + * {@link org.apache.hadoop.hbase.master.SplitLogManager} commit the work in * SplitLogManager.TaskFinisher */ public interface TaskExecutor { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java index 135dabbb84..b88c0e63f6 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java @@ -72,23 +72,18 @@ public class JVMClusterUtil { * Creates a {@link RegionServerThread}. * Call 'start' on the returned thread to make it run. * @param c Configuration to use. - * @param cp consensus provider to use * @param hrsc Class to create. * @param index Used distinguishing the object returned. * @throws IOException * @return Region server added. */ - public static JVMClusterUtil.RegionServerThread createRegionServerThread( - final Configuration c, CoordinatedStateManager cp, final Class hrsc, - final int index) - throws IOException { + public static JVMClusterUtil.RegionServerThread createRegionServerThread(final Configuration c, + final Class hrsc, final int index) throws IOException { HRegionServer server; try { - - Constructor ctor = hrsc.getConstructor(Configuration.class, - CoordinatedStateManager.class); + Constructor ctor = hrsc.getConstructor(Configuration.class); ctor.setAccessible(true); - server = ctor.newInstance(c, cp); + server = ctor.newInstance(c); } catch (InvocationTargetException ite) { Throwable target = ite.getTargetException(); throw new RuntimeException("Failed construction of RegionServer: " + @@ -124,20 +119,16 @@ public class JVMClusterUtil { * Creates a {@link MasterThread}. * Call 'start' on the returned thread to make it run. * @param c Configuration to use. - * @param cp consensus provider to use * @param hmc Class to create. * @param index Used distinguishing the object returned. * @throws IOException * @return Master added. */ - public static JVMClusterUtil.MasterThread createMasterThread( - final Configuration c, CoordinatedStateManager cp, final Class hmc, - final int index) - throws IOException { + public static JVMClusterUtil.MasterThread createMasterThread(final Configuration c, + final Class hmc, final int index) throws IOException { HMaster server; try { - server = hmc.getConstructor(Configuration.class, CoordinatedStateManager.class). - newInstance(c, cp); + server = hmc.getConstructor(Configuration.class).newInstance(c); } catch (InvocationTargetException ite) { Throwable target = ite.getTargetException(); throw new RuntimeException("Failed construction of Master: " + diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java index aeacd9dc31..e39d7abb14 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java @@ -18,6 +18,9 @@ */ package org.apache.hadoop.hbase.wal; +import org.apache.hadoop.hbase.client.Connection; +import org.apache.hadoop.hbase.coordination.SplitLogWorkerCoordination; +import org.apache.hadoop.hbase.regionserver.SplitLogWorker; import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting; import org.apache.hadoop.hbase.shaded.com.google.common.base.Preconditions; import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists; @@ -82,7 +85,6 @@ import org.apache.hadoop.hbase.client.Durability; import org.apache.hadoop.hbase.client.Mutation; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.TableState; -import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager; import org.apache.hadoop.hbase.coordination.ZKSplitLogManagerCoordination; import org.apache.hadoop.hbase.exceptions.RegionOpeningException; import org.apache.hadoop.hbase.io.HeapSize; @@ -146,7 +148,8 @@ public class WALSplitter { private Map tableStatesCache = new ConcurrentHashMap<>(); - private BaseCoordinatedStateManager csm; + private SplitLogWorkerCoordination splitLogWorkerCoordination; + private Connection connection; private final WALFactory walFactory; private MonitoredTask status; @@ -177,7 +180,8 @@ public class WALSplitter { @VisibleForTesting WALSplitter(final WALFactory factory, Configuration conf, Path rootDir, FileSystem fs, LastSequenceId idChecker, - CoordinatedStateManager csm, RecoveryMode mode) { + SplitLogWorkerCoordination splitLogWorkerCoordination, Connection connection, + RecoveryMode mode) { this.conf = HBaseConfiguration.create(conf); String codecClassName = conf .get(WALCellCodec.WAL_CELL_CODEC_CLASS_KEY, WALCellCodec.class.getName()); @@ -185,7 +189,9 @@ public class WALSplitter { this.rootDir = rootDir; this.fs = fs; this.sequenceIdChecker = idChecker; - this.csm = (BaseCoordinatedStateManager)csm; + this.splitLogWorkerCoordination = splitLogWorkerCoordination; + this.connection = connection; + this.walFactory = factory; this.controller = new PipelineController(); @@ -199,7 +205,7 @@ public class WALSplitter { this.distributedLogReplay = (RecoveryMode.LOG_REPLAY == mode); this.numWriterThreads = this.conf.getInt("hbase.regionserver.hlog.splitlog.writer.threads", 3); - if (csm != null && this.distributedLogReplay) { + if (this.splitLogWorkerCoordination != null && this.distributedLogReplay) { outputSink = new LogReplayOutputSink(controller, entryBuffers, numWriterThreads); } else { if (this.distributedLogReplay) { @@ -217,20 +223,14 @@ public class WALSplitter { *

* If the log file has N regions then N recovered.edits files will be produced. *

- * @param rootDir - * @param logfile - * @param fs - * @param conf - * @param reporter - * @param idChecker - * @param cp coordination state manager * @return false if it is interrupted by the progress-able. - * @throws IOException */ public static boolean splitLogFile(Path rootDir, FileStatus logfile, FileSystem fs, Configuration conf, CancelableProgressable reporter, LastSequenceId idChecker, - CoordinatedStateManager cp, RecoveryMode mode, final WALFactory factory) throws IOException { - WALSplitter s = new WALSplitter(factory, conf, rootDir, fs, idChecker, cp, mode); + SplitLogWorkerCoordination splitLogWorkerCoordination, Connection connection, + RecoveryMode mode, final WALFactory factory) throws IOException { + WALSplitter s = new WALSplitter(factory, conf, rootDir, fs, idChecker, + splitLogWorkerCoordination, connection, mode); return s.splitLogFile(logfile, reporter); } @@ -246,7 +246,7 @@ public class WALSplitter { List splits = new ArrayList<>(); if (logfiles != null && logfiles.length > 0) { for (FileStatus logfile: logfiles) { - WALSplitter s = new WALSplitter(factory, conf, rootDir, fs, null, null, + WALSplitter s = new WALSplitter(factory, conf, rootDir, fs, null, null, null, RecoveryMode.LOG_SPLITTING); if (s.splitLogFile(logfile, null)) { finishSplitLogFile(rootDir, oldLogDir, logfile.getPath(), conf); @@ -317,9 +317,8 @@ public class WALSplitter { lastFlushedSequenceId = lastFlushedSequenceIds.get(encodedRegionNameAsStr); if (lastFlushedSequenceId == null) { if (this.distributedLogReplay) { - RegionStoreSequenceIds ids = - csm.getSplitLogWorkerCoordination().getRegionFlushedSequenceId(failedServerName, - encodedRegionNameAsStr); + RegionStoreSequenceIds ids = splitLogWorkerCoordination.getRegionFlushedSequenceId( + failedServerName, encodedRegionNameAsStr); if (ids != null) { lastFlushedSequenceId = ids.getLastFlushedSequenceId(); if (LOG.isDebugEnabled()) { @@ -377,10 +376,9 @@ public class WALSplitter { throw iie; } catch (CorruptedLogFileException e) { LOG.warn("Could not parse, corrupted WAL=" + logPath, e); - if (this.csm != null) { + if (splitLogWorkerCoordination != null) { // Some tests pass in a csm of null. - this.csm.getSplitLogWorkerCoordination().markCorrupted(rootDir, - logfile.getPath().getName(), fs); + splitLogWorkerCoordination.markCorrupted(rootDir, logfile.getPath().getName(), fs); } else { // for tests only ZKSplitLog.markCorrupted(rootDir, logfile.getPath().getName(), fs); @@ -1952,7 +1950,7 @@ public class WALSplitter { // retrieve last flushed sequence Id from ZK. Because region postOpenDeployTasks will // update the value for the region RegionStoreSequenceIds ids = - csm.getSplitLogWorkerCoordination().getRegionFlushedSequenceId(failedServerName, + splitLogWorkerCoordination.getRegionFlushedSequenceId(failedServerName, loc.getRegionInfo().getEncodedName()); if (ids != null) { lastFlushedSequenceId = ids.getLastFlushedSequenceId(); @@ -2185,15 +2183,14 @@ public class WALSplitter { } private boolean isTableDisabledOrDisabling(TableName tableName) { - if (csm == null) + if (connection == null) return false; // we can't get state without CoordinatedStateManager if (tableName.isSystemTable()) return false; // assume that system tables never can be disabled TableState tableState = tableStatesCache.get(tableName); if (tableState == null) { try { - tableState = - MetaTableAccessor.getTableState(csm.getServer().getConnection(), tableName); + tableState = MetaTableAccessor.getTableState(connection, tableName); if (tableState != null) tableStatesCache.put(tableName, tableState); } catch (IOException e) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java index fe4119a990..a46fa9d347 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java @@ -109,9 +109,9 @@ public class MiniHBaseCluster extends HBaseCluster { private Thread shutdownThread = null; private User user = null; - public MiniHBaseClusterRegionServer(Configuration conf, CoordinatedStateManager cp) + public MiniHBaseClusterRegionServer(Configuration conf) throws IOException, InterruptedException { - super(conf, cp); + super(conf); this.user = User.getCurrent(); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestLocalHBaseCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestLocalHBaseCluster.java index bbf4f32ffd..4c6b848a29 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestLocalHBaseCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestLocalHBaseCluster.java @@ -66,10 +66,9 @@ public class TestLocalHBaseCluster { * running in local mode. */ public static class MyHMaster extends HMaster { - public MyHMaster(Configuration conf, CoordinatedStateManager cp) - throws IOException, KeeperException, + public MyHMaster(Configuration conf) throws IOException, KeeperException, InterruptedException { - super(conf, cp); + super(conf); } public int echo(int val) { @@ -82,9 +81,8 @@ public class TestLocalHBaseCluster { */ public static class MyHRegionServer extends MiniHBaseCluster.MiniHBaseClusterRegionServer { - public MyHRegionServer(Configuration conf, CoordinatedStateManager cp) throws IOException, - InterruptedException { - super(conf, cp); + public MyHRegionServer(Configuration conf) throws IOException, InterruptedException { + super(conf); } public int echo(int val) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMovedRegionsCleaner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMovedRegionsCleaner.java index 8d3d2fc735..5fb16c79b0 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMovedRegionsCleaner.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMovedRegionsCleaner.java @@ -44,9 +44,8 @@ import java.io.IOException; private static class TestMockRegionServer extends MiniHBaseCluster.MiniHBaseClusterRegionServer { - public TestMockRegionServer(Configuration conf, CoordinatedStateManager cp) - throws IOException, InterruptedException { - super(conf, cp); + public TestMockRegionServer(Configuration conf) throws IOException, InterruptedException { + super(conf); } protected int movedRegionCleanerPeriod() { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.java index de21f83759..c9686c2e7e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.java @@ -141,9 +141,9 @@ public class TestClientScannerRPCTimeout { } private static class RegionServerWithScanTimeout extends MiniHBaseClusterRegionServer { - public RegionServerWithScanTimeout(Configuration conf, CoordinatedStateManager cp) + public RegionServerWithScanTimeout(Configuration conf) throws IOException, InterruptedException { - super(conf, cp); + super(conf); } protected RSRpcServices createRpcServices() throws IOException { @@ -168,7 +168,7 @@ public class TestClientScannerRPCTimeout { throws ServiceException { if (request.hasScannerId()) { ScanResponse scanResponse = super.scan(controller, request); - if (this.tableScannerId == request.getScannerId() && + if (this.tableScannerId == request.getScannerId() && (sleepAlways || (!slept && seqNoToSleepOn == request.getNextCallSeq()))) { try { LOG.info("SLEEPING " + (rpcTimeout + 500)); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java index e7aa60f437..b1fda41ef9 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java @@ -198,9 +198,9 @@ public class TestMetaCache { public static class RegionServerWithFakeRpcServices extends HRegionServer { private FakeRSRpcServices rsRpcServices; - public RegionServerWithFakeRpcServices(Configuration conf, CoordinatedStateManager cp) + public RegionServerWithFakeRpcServices(Configuration conf) throws IOException, InterruptedException { - super(conf, cp); + super(conf); } @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDistributedLogSplitting.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDistributedLogSplitting.java index a65924d76b..eafc41295f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDistributedLogSplitting.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDistributedLogSplitting.java @@ -82,7 +82,6 @@ import org.apache.hadoop.hbase.client.RegionLocator; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException; import org.apache.hadoop.hbase.client.Table; -import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager; import org.apache.hadoop.hbase.coordination.ZKSplitLogManagerCoordination; import org.apache.hadoop.hbase.exceptions.RegionInRecoveryException; import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException; @@ -1151,8 +1150,8 @@ public class TestDistributedLogSplitting { out.write(Bytes.toBytes("corrupted bytes")); out.close(); ZKSplitLogManagerCoordination coordination = - (ZKSplitLogManagerCoordination) ((BaseCoordinatedStateManager) master - .getCoordinatedStateManager()).getSplitLogManagerCoordination(); + (ZKSplitLogManagerCoordination) (master.getCoordinatedStateManager()) + .getSplitLogManagerCoordination(); coordination.setIgnoreDeleteForTesting(true); executor = Executors.newSingleThreadExecutor(); Runnable runnable = new Runnable() { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestHMasterRPCException.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestHMasterRPCException.java index 8cb3ec8b1c..64d5a0292e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestHMasterRPCException.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestHMasterRPCException.java @@ -26,8 +26,6 @@ import java.io.IOException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.CoordinatedStateManager; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.ServerName; @@ -68,10 +66,9 @@ public class TestHMasterRPCException { conf.setInt(HConstants.ZK_SESSION_TIMEOUT, 2000); testUtil.startMiniZKCluster(); - CoordinatedStateManager cp = CoordinatedStateManagerFactory.getCoordinatedStateManager(conf); ZooKeeperWatcher watcher = testUtil.getZooKeeperWatcher(); ZKUtil.createWithParents(watcher, watcher.znodePaths.masterAddressZNode, Bytes.toBytes("fake:123")); - master = new HMaster(conf, cp); + master = new HMaster(conf); rpcClient = RpcClientFactory.createClient(conf, HConstants.CLUSTER_ID_DEFAULT); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java index 04cfc6502a..69baa5ff49 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java @@ -51,9 +51,8 @@ public class TestMasterMetrics { private static HBaseTestingUtility TEST_UTIL; public static class MyMaster extends HMaster { - public MyMaster(Configuration conf, CoordinatedStateManager cp) throws IOException, - KeeperException, InterruptedException { - super(conf, cp); + public MyMaster(Configuration conf) throws IOException, KeeperException, InterruptedException { + super(conf); } /* @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java index 480ba9a8e6..25671fcce0 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java @@ -33,8 +33,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Abortable; import org.apache.hadoop.hbase.CategoryBasedTimeout; import org.apache.hadoop.hbase.CoordinatedStateException; -import org.apache.hadoop.hbase.CoordinatedStateManager; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; @@ -47,7 +45,6 @@ import org.apache.hadoop.hbase.client.ClusterConnection; import org.apache.hadoop.hbase.client.HConnectionTestingUtility; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.monitoring.MonitoredTask; -import org.apache.hadoop.hbase.replication.ReplicationException; import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest; import org.apache.hadoop.hbase.testclassification.MasterTests; @@ -133,9 +130,7 @@ public class TestMasterNoCluster { @Test public void testStopDuringStart() throws IOException, KeeperException, InterruptedException { - CoordinatedStateManager cp = CoordinatedStateManagerFactory.getCoordinatedStateManager( - TESTUTIL.getConfiguration()); - HMaster master = new HMaster(TESTUTIL.getConfiguration(), cp); + HMaster master = new HMaster(TESTUTIL.getConfiguration()); master.start(); // Immediately have it stop. We used hang in assigning meta. master.stopMaster(); @@ -148,7 +143,7 @@ public class TestMasterNoCluster { * @throws IOException * @throws KeeperException * @throws InterruptedException - * @throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException + * @throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException */ @Ignore @Test // Disabled since HBASE-18511. Reenable when master can carry regions. public void testFailover() throws Exception { @@ -186,15 +181,13 @@ public class TestMasterNoCluster { // and get notification on transitions. We need to fake out any rpcs the // master does opening/closing regions. Also need to fake out the address // of the 'remote' mocked up regionservers. - CoordinatedStateManager cp = CoordinatedStateManagerFactory.getCoordinatedStateManager( - TESTUTIL.getConfiguration()); // Insert a mock for the connection, use TESTUTIL.getConfiguration rather than // the conf from the master; the conf will already have an ClusterConnection // associate so the below mocking of a connection will fail. final ClusterConnection mockedConnection = HConnectionTestingUtility.getMockedConnectionAndDecorate( TESTUTIL.getConfiguration(), rs0, rs0, rs0.getServerName(), HRegionInfo.FIRST_META_REGIONINFO); - HMaster master = new HMaster(conf, cp) { + HMaster master = new HMaster(conf) { InetAddress getRemoteInetAddress(final int port, final long serverStartCode) throws UnknownHostException { // Return different address dependent on port passed. @@ -262,9 +255,7 @@ public class TestMasterNoCluster { final ServerName deadServer = ServerName.valueOf("test.sample", 1, 100); final MockRegionServer rs0 = new MockRegionServer(conf, newServer); - CoordinatedStateManager cp = CoordinatedStateManagerFactory.getCoordinatedStateManager( - TESTUTIL.getConfiguration()); - HMaster master = new HMaster(conf, cp) { + HMaster master = new HMaster(conf) { @Override MasterMetaBootstrap createMetaBootstrap(final HMaster master, final MonitoredTask status) { return new MasterMetaBootstrap(this, status) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMetaShutdownHandler.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMetaShutdownHandler.java index 68160df4b5..d50e4a3876 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMetaShutdownHandler.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMetaShutdownHandler.java @@ -124,10 +124,9 @@ public class TestMetaShutdownHandler { public static class MyRegionServer extends MiniHBaseClusterRegionServer { - public MyRegionServer(Configuration conf, CoordinatedStateManager cp) - throws IOException, KeeperException, + public MyRegionServer(Configuration conf) throws IOException, KeeperException, InterruptedException { - super(conf, cp); + super(conf); } @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestSplitLogManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestSplitLogManager.java index 04fc797542..62157907e0 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestSplitLogManager.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestSplitLogManager.java @@ -39,7 +39,6 @@ import java.io.IOException; import java.util.List; import java.util.Map; import java.util.UUID; -import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.LongAdder; import org.apache.commons.logging.Log; @@ -48,7 +47,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.CoordinatedStateManager; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; @@ -57,6 +55,7 @@ import org.apache.hadoop.hbase.SplitLogCounters; import org.apache.hadoop.hbase.SplitLogTask; import org.apache.hadoop.hbase.Waiter; import org.apache.hadoop.hbase.coordination.ZKSplitLogManagerCoordination; +import org.apache.hadoop.hbase.coordination.ZkCoordinatedStateManager; import org.apache.hadoop.hbase.master.SplitLogManager.Task; import org.apache.hadoop.hbase.master.SplitLogManager.TaskBatch; import org.apache.hadoop.hbase.regionserver.TestMasterAddressTracker.NodeCreationListener; @@ -105,8 +104,7 @@ public class TestSplitLogManager { public DummyMasterServices(ZooKeeperWatcher zkw, Configuration conf) { super(conf); this.zkw = zkw; - cm = CoordinatedStateManagerFactory.getCoordinatedStateManager(conf); - cm.initialize(this); + cm = new ZkCoordinatedStateManager(this); } @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/OOMERegionServer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/OOMERegionServer.java index 07c141c967..ce38ef6c40 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/OOMERegionServer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/OOMERegionServer.java @@ -39,9 +39,8 @@ import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequ public class OOMERegionServer extends HRegionServer { private List retainer = new ArrayList<>(); - public OOMERegionServer(HBaseConfiguration conf, CoordinatedStateManager cp) - throws IOException, InterruptedException { - super(conf, cp); + public OOMERegionServer(HBaseConfiguration conf) throws IOException, InterruptedException { + super(conf); } public void put(byte [] regionName, Put put) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestClusterId.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestClusterId.java index 22402266a1..46fd7029fb 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestClusterId.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestClusterId.java @@ -27,8 +27,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.apache.hadoop.hbase.CoordinatedStateManager; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.master.LoadBalancer; @@ -75,11 +73,9 @@ public class TestClusterId { TEST_UTIL.startMiniDFSCluster(1); Configuration conf = new Configuration(TEST_UTIL.getConfiguration()); - CoordinatedStateManager cp = CoordinatedStateManagerFactory.getCoordinatedStateManager(conf); //start region server, needs to be separate //so we get an unset clusterId - rst = JVMClusterUtil.createRegionServerThread(conf,cp, - HRegionServer.class, 0); + rst = JVMClusterUtil.createRegionServerThread(conf, HRegionServer.class, 0); rst.start(); //Make sure RS is in blocking state Thread.sleep(10000); @@ -92,7 +88,7 @@ public class TestClusterId { assertNotNull(clusterId); assertEquals(clusterId, rst.getRegionServer().getClusterId()); } - + @Test public void testRewritingClusterIdToPB() throws Exception { TEST_UTIL.startMiniZKCluster(); @@ -115,6 +111,6 @@ public class TestClusterId { int expected = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration())? 2: 1; assertEquals(expected, master.getServerManager().getOnlineServersList().size()); } - + } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionInDeadRegionServer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionInDeadRegionServer.java index 4b13c30b64..5e212f83c3 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionInDeadRegionServer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionInDeadRegionServer.java @@ -75,10 +75,6 @@ public class TestCompactionInDeadRegionServer { super(conf); } - public IgnoreYouAreDeadRS(Configuration conf, CoordinatedStateManager csm) throws IOException { - super(conf, csm); - } - @Override protected void tryRegionServerReport(long reportStartTime, long reportEndTime) throws IOException { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestPriorityRpc.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestPriorityRpc.java index ded4c48421..ef216f7e92 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestPriorityRpc.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestPriorityRpc.java @@ -31,11 +31,9 @@ import org.apache.hadoop.hbase.security.User; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.testclassification.RegionServerTests; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HConstants; -import org.apache.hadoop.hbase.CoordinatedStateManager; import org.apache.hadoop.hbase.ipc.PriorityFunction; import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Get; import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.GetRequest; @@ -65,8 +63,7 @@ public class TestPriorityRpc { conf.setBoolean("hbase.testing.nocluster", true); // No need to do ZK final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility(conf); TEST_UTIL.getDataTestDir(this.getClass().getName()); - CoordinatedStateManager cp = CoordinatedStateManagerFactory.getCoordinatedStateManager(conf); - regionServer = HRegionServer.constructRegionServer(HRegionServer.class, conf, cp); + regionServer = HRegionServer.constructRegionServer(HRegionServer.class, conf); priority = regionServer.rpcServices.getPriority(); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.java index edd5673d3a..bf5787f3d9 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.java @@ -191,9 +191,9 @@ public class TestRSKilledWhenInitializing { * notices and so removes the region from its set of online regionservers. */ static class RegisterAndDieRegionServer extends MiniHBaseCluster.MiniHBaseClusterRegionServer { - public RegisterAndDieRegionServer(Configuration conf, CoordinatedStateManager cp) + public RegisterAndDieRegionServer(Configuration conf) throws IOException, InterruptedException { - super(conf, cp); + super(conf); } @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.java index 15c6b76b30..bdcc559c58 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.java @@ -518,10 +518,8 @@ public class TestRegionMergeTransactionOnCluster { // Make it public so that JVMClusterUtil can access it. public static class MyMaster extends HMaster { - public MyMaster(Configuration conf, CoordinatedStateManager cp) - throws IOException, KeeperException, - InterruptedException { - super(conf, cp); + public MyMaster(Configuration conf) throws IOException, KeeperException, InterruptedException { + super(conf); } @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java index 8eee9b6d48..872fec6722 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java @@ -71,7 +71,7 @@ public class TestRegionServerHostname { TEST_UTIL.getConfiguration().set(HRegionServer.RS_HOSTNAME_KEY, invalidHostname); HRegionServer hrs = null; try { - hrs = new HRegionServer(TEST_UTIL.getConfiguration(), null); + hrs = new HRegionServer(TEST_UTIL.getConfiguration()); } catch (IllegalArgumentException iae) { assertTrue(iae.getMessage(), iae.getMessage().contains("Failed resolve of " + invalidHostname) || diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.java index 6f8a23b1e3..f32a87c72a 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.java @@ -164,10 +164,9 @@ public class TestRegionServerReportForDuty { private boolean rpcStubCreatedFlag = false; private boolean masterChanged = false; - public MyRegionServer(Configuration conf, CoordinatedStateManager cp) - throws IOException, KeeperException, + public MyRegionServer(Configuration conf) throws IOException, KeeperException, InterruptedException { - super(conf, cp); + super(conf); } @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.java index d3771f6df2..b9e77c6280 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.java @@ -397,11 +397,6 @@ public class TestScannerHeartbeatMessages { super(conf); } - public HeartbeatHRegionServer(Configuration conf, CoordinatedStateManager csm) - throws IOException { - super(conf, csm); - } - @Override protected RSRpcServices createRpcServices() throws IOException { return new HeartbeatRPCServices(this); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java index a01c75d5df..40077f9013 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java @@ -35,7 +35,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.CoordinatedStateManager; -import org.apache.hadoop.hbase.CoordinatedStateManagerFactory; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HConstants; @@ -45,6 +44,7 @@ import org.apache.hadoop.hbase.SplitLogCounters; import org.apache.hadoop.hbase.SplitLogTask; import org.apache.hadoop.hbase.Waiter; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.coordination.ZkCoordinatedStateManager; import org.apache.hadoop.hbase.executor.ExecutorService; import org.apache.hadoop.hbase.executor.ExecutorType; import org.apache.hadoop.hbase.shaded.protobuf.generated.ZooKeeperProtos.SplitLogTask.RecoveryMode; @@ -88,8 +88,7 @@ public class TestSplitLogWorker { public DummyServer(ZooKeeperWatcher zkw, Configuration conf) { this.zkw = zkw; this.conf = conf; - cm = CoordinatedStateManagerFactory.getCoordinatedStateManager(conf); - cm.initialize(this); + cm = new ZkCoordinatedStateManager(this); } @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java index 1965d5ac29..8533004353 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java @@ -951,10 +951,8 @@ public class TestSplitTransactionOnCluster { // Make it public so that JVMClusterUtil can access it. public static class MyMaster extends HMaster { - public MyMaster(Configuration conf, CoordinatedStateManager cp) - throws IOException, KeeperException, - InterruptedException { - super(conf, cp); + public MyMaster(Configuration conf) throws IOException, KeeperException, InterruptedException { + super(conf); } @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java index 63c904d167..7870cbfad4 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java @@ -906,7 +906,7 @@ public abstract class AbstractTestWALReplay { assertNotNull(listStatus); assertTrue(listStatus.length > 0); WALSplitter.splitLogFile(hbaseRootDir, listStatus[0], - this.fs, this.conf, null, null, null, mode, wals); + this.fs, this.conf, null, null, null, null, mode, wals); FileStatus[] listStatus1 = this.fs.listStatus( new Path(FSUtils.getTableDir(hbaseRootDir, tableName), new Path(hri.getEncodedName(), "recovered.edits")), new PathFilter() { @@ -1059,9 +1059,9 @@ public abstract class AbstractTestWALReplay { first = fs.getFileStatus(smallFile); second = fs.getFileStatus(largeFile); } - WALSplitter.splitLogFile(hbaseRootDir, first, fs, conf, null, null, null, + WALSplitter.splitLogFile(hbaseRootDir, first, fs, conf, null, null, null, null, RecoveryMode.LOG_SPLITTING, wals); - WALSplitter.splitLogFile(hbaseRootDir, second, fs, conf, null, null, null, + WALSplitter.splitLogFile(hbaseRootDir, second, fs, conf, null, null, null, null, RecoveryMode.LOG_SPLITTING, wals); WAL wal = createWAL(this.conf, hbaseRootDir, logName); region = HRegion.openHRegion(conf, this.fs, hbaseRootDir, hri, htd, wal); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSource.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSource.java index ebb1bf8a55..71b4def5d2 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSource.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSource.java @@ -277,11 +277,6 @@ public class TestReplicationSource { super(conf); } - public ShutdownDelayRegionServer(Configuration conf, CoordinatedStateManager csm) - throws IOException, InterruptedException { - super(conf, csm); - } - @Override protected void stopServiceThreads() { // Add a delay before service threads are shutdown. diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALReaderOnSecureWAL.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALReaderOnSecureWAL.java index 570353bcdb..c7203b3305 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALReaderOnSecureWAL.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALReaderOnSecureWAL.java @@ -134,7 +134,7 @@ public class TestWALReaderOnSecureWAL { wal.sync(); final Path walPath = AbstractFSWALProvider.getCurrentFileName(wal); wal.shutdown(); - + return walPath; } finally { // restore the cell codec class @@ -182,11 +182,11 @@ public class TestWALReaderOnSecureWAL { } FileStatus[] listStatus = fs.listStatus(walPath.getParent()); - RecoveryMode mode = (conf.getBoolean(HConstants.DISTRIBUTED_LOG_REPLAY_KEY, false) ? + RecoveryMode mode = (conf.getBoolean(HConstants.DISTRIBUTED_LOG_REPLAY_KEY, false) ? RecoveryMode.LOG_REPLAY : RecoveryMode.LOG_SPLITTING); Path rootdir = FSUtils.getRootDir(conf); try { - WALSplitter s = new WALSplitter(wals, conf, rootdir, fs, null, null, mode); + WALSplitter s = new WALSplitter(wals, conf, rootdir, fs, null, null, null, mode); s.splitLogFile(listStatus[0], null); Path file = new Path(ZKSplitLog.getSplitLogDir(rootdir, listStatus[0].getPath().getName()), "corrupt"); @@ -229,11 +229,11 @@ public class TestWALReaderOnSecureWAL { } FileStatus[] listStatus = fs.listStatus(walPath.getParent()); - RecoveryMode mode = (conf.getBoolean(HConstants.DISTRIBUTED_LOG_REPLAY_KEY, false) ? + RecoveryMode mode = (conf.getBoolean(HConstants.DISTRIBUTED_LOG_REPLAY_KEY, false) ? RecoveryMode.LOG_REPLAY : RecoveryMode.LOG_SPLITTING); Path rootdir = FSUtils.getRootDir(conf); try { - WALSplitter s = new WALSplitter(wals, conf, rootdir, fs, null, null, mode); + WALSplitter s = new WALSplitter(wals, conf, rootdir, fs, null, null, null, mode); s.splitLogFile(listStatus[0], null); Path file = new Path(ZKSplitLog.getSplitLogDir(rootdir, listStatus[0].getPath().getName()), "corrupt"); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java index b988544a42..b3fd3083e8 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java @@ -372,8 +372,7 @@ public class TestWALSplit { } /** - * @throws IOException - * @see https://issues.apache.org/jira/browse/HBASE-3020 + * {@see https://issues.apache.org/jira/browse/HBASE-3020} */ @Test (timeout=300000) public void testRecoveredEditsPathForMeta() throws IOException { @@ -805,7 +804,7 @@ public class TestWALSplit { assertTrue("There should be some log greater than size 0.", 0 < largestSize); // Set up a splitter that will throw an IOE on the output side WALSplitter logSplitter = new WALSplitter(wals, - conf, HBASEDIR, fs, null, null, this.mode) { + conf, HBASEDIR, fs, null, null, null, this.mode) { @Override protected Writer createWriter(Path logfile) throws IOException { Writer mockWriter = Mockito.mock(Writer.class); @@ -932,7 +931,7 @@ public class TestWALSplit { try { conf.setInt("hbase.splitlog.report.period", 1000); boolean ret = WALSplitter.splitLogFile( - HBASEDIR, logfile, spiedFs, conf, localReporter, null, null, this.mode, wals); + HBASEDIR, logfile, spiedFs, conf, localReporter, null, null, null, this.mode, wals); assertFalse("Log splitting should failed", ret); assertTrue(count.get() > 0); } catch (IOException e) { @@ -991,7 +990,7 @@ public class TestWALSplit { // Create a splitter that reads and writes the data without touching disk WALSplitter logSplitter = new WALSplitter(wals, - localConf, HBASEDIR, fs, null, null, this.mode) { + localConf, HBASEDIR, fs, null, null, null, this.mode) { /* Produce a mock writer that doesn't write anywhere */ @Override @@ -1123,8 +1122,7 @@ public class TestWALSplit { } /** - * @throws IOException - * @see https://issues.apache.org/jira/browse/HBASE-4862 + * {@see https://issues.apache.org/jira/browse/HBASE-4862} */ @Test (timeout=300000) public void testConcurrentSplitLogAndReplayRecoverEdit() throws IOException { @@ -1142,7 +1140,7 @@ public class TestWALSplit { logfiles != null && logfiles.length > 0); WALSplitter logSplitter = new WALSplitter(wals, - conf, HBASEDIR, fs, null, null, this.mode) { + conf, HBASEDIR, fs, null, null, null, this.mode) { @Override protected Writer createWriter(Path logfile) throws IOException { diff --git a/src/main/asciidoc/_chapters/hbase-default.adoc b/src/main/asciidoc/_chapters/hbase-default.adoc index 32d114e837..2093c57f38 100644 --- a/src/main/asciidoc/_chapters/hbase-default.adoc +++ b/src/main/asciidoc/_chapters/hbase-default.adoc @@ -2024,17 +2024,6 @@ A comma-separated list of .Default `` - -[[hbase.coordinated.state.manager.class]] -*`hbase.coordinated.state.manager.class`*:: -+ -.Description -Fully qualified name of class implementing coordinated state manager. -+ -.Default -`org.apache.hadoop.hbase.coordination.ZkCoordinatedStateManager` - - [[hbase.regionserver.storefile.refresh.period]] *`hbase.regionserver.storefile.refresh.period`*:: + -- 2.14.1