diff --git a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java index 9bc592f..21523ae 100644 --- a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java +++ b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java @@ -42,6 +42,7 @@ import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.RegionSpecifier.Re import org.apache.hadoop.hbase.protobuf.generated.SecureBulkLoadProtos.SecureBulkLoadHFilesRequest; import org.apache.hadoop.hbase.protobuf.generated.SecureBulkLoadProtos.SecureBulkLoadHFilesResponse; import org.apache.hadoop.hbase.protobuf.generated.SecureBulkLoadProtos.SecureBulkLoadService; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager; import com.google.protobuf.RpcCallback; @@ -62,10 +63,13 @@ public class SecureBulkLoadEndpoint extends SecureBulkLoadService private static final Log LOG = LogFactory.getLog(SecureBulkLoadEndpoint.class); private RegionCoprocessorEnvironment env; + private InternalRegionServerServices rsServices; @Override public void start(CoprocessorEnvironment env) { this.env = (RegionCoprocessorEnvironment)env; + assert this.env.getRegionServerServices() instanceof InternalRegionServerServices; + rsServices = (InternalRegionServerServices) this.env.getRegionServerServices(); LOG.warn("SecureBulkLoadEndpoint is deprecated. It will be removed in future releases."); LOG.warn("Secure bulk load has been integrated into HBase core."); } @@ -78,8 +82,7 @@ public class SecureBulkLoadEndpoint extends SecureBulkLoadService public void prepareBulkLoad(RpcController controller, PrepareBulkLoadRequest request, RpcCallback done) { try { - SecureBulkLoadManager secureBulkLoadManager = - this.env.getRegionServerServices().getSecureBulkLoadManager(); + SecureBulkLoadManager secureBulkLoadManager = this.rsServices.getSecureBulkLoadManager(); String bulkToken = secureBulkLoadManager.prepareBulkLoad(this.env.getRegion(), convert(request)); done.run(PrepareBulkLoadResponse.newBuilder().setBulkToken(bulkToken).build()); @@ -105,8 +108,7 @@ public class SecureBulkLoadEndpoint extends SecureBulkLoadService public void cleanupBulkLoad(RpcController controller, CleanupBulkLoadRequest request, RpcCallback done) { try { - SecureBulkLoadManager secureBulkLoadManager = - this.env.getRegionServerServices().getSecureBulkLoadManager(); + SecureBulkLoadManager secureBulkLoadManager = this.rsServices.getSecureBulkLoadManager(); secureBulkLoadManager.cleanupBulkLoad(this.env.getRegion(), convert(request)); done.run(CleanupBulkLoadResponse.newBuilder().build()); } catch (IOException e) { @@ -133,8 +135,7 @@ public class SecureBulkLoadEndpoint extends SecureBulkLoadService boolean loaded = false; Map> map = null; try { - SecureBulkLoadManager secureBulkLoadManager = - this.env.getRegionServerServices().getSecureBulkLoadManager(); + SecureBulkLoadManager secureBulkLoadManager = this.rsServices.getSecureBulkLoadManager(); BulkLoadHFileRequest bulkLoadHFileRequest = ConvertSecureBulkLoadHFilesRequest(request); map = secureBulkLoadManager.secureBulkLoadHFiles(this.env.getRegion(), convert(bulkLoadHFileRequest)); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedure.java index 8fc644c..0231f56 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedure.java @@ -33,7 +33,7 @@ import org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher; import org.apache.hadoop.hbase.procedure.ProcedureMember; import org.apache.hadoop.hbase.procedure.Subprocedure; import org.apache.hadoop.hbase.regionserver.HRegionServer; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL; import org.apache.hadoop.hbase.regionserver.wal.FSHLog; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; @@ -46,12 +46,12 @@ import org.apache.hadoop.hbase.wal.WAL; public class LogRollBackupSubprocedure extends Subprocedure { private static final Log LOG = LogFactory.getLog(LogRollBackupSubprocedure.class); - private final RegionServerServices rss; + private final InternalRegionServerServices rss; private final LogRollBackupSubprocedurePool taskManager; private FSHLog hlog; private String backupRoot; - public LogRollBackupSubprocedure(RegionServerServices rss, ProcedureMember member, + public LogRollBackupSubprocedure(InternalRegionServerServices rss, ProcedureMember member, ForeignExceptionDispatcher errorListener, long wakeFrequency, long timeout, LogRollBackupSubprocedurePool taskManager, byte[] data) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java index 9d5a858..8e9b413 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java @@ -36,7 +36,7 @@ import org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs; import org.apache.hadoop.hbase.procedure.RegionServerProcedureManager; import org.apache.hadoop.hbase.procedure.Subprocedure; import org.apache.hadoop.hbase.procedure.SubprocedureFactory; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.zookeeper.KeeperException; /** @@ -68,7 +68,7 @@ public class LogRollRegionServerProcedureManager extends RegionServerProcedureMa /** Default amount of time to check for errors while regions finish backup work */ private static final long BACKUP_REQUEST_WAKE_MILLIS_DEFAULT = 500; - private RegionServerServices rss; + private InternalRegionServerServices rss; private ProcedureMemberRpcs memberRpcs; private ProcedureMember member; private boolean started = false; @@ -152,7 +152,7 @@ public class LogRollRegionServerProcedureManager extends RegionServerProcedureMa } @Override - public void initialize(RegionServerServices rss) throws KeeperException { + public void initialize(InternalRegionServerServices rss) throws KeeperException { this.rss = rss; if (!BackupManager.isBackupEnabled(rss.getConfiguration())) { LOG.warn("Backup is not enabled. Check your " + BackupRestoreConstants.BACKUP_ENABLE_KEY diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/SplitLogWorkerCoordination.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/SplitLogWorkerCoordination.java index 2afe4e0..bc73432 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/SplitLogWorkerCoordination.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/SplitLogWorkerCoordination.java @@ -26,7 +26,7 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.SplitLogTask; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.SplitLogWorker; import org.apache.hadoop.hbase.regionserver.SplitLogWorker.TaskExecutor; @@ -61,7 +61,7 @@ public interface SplitLogWorkerCoordination { * @param splitTaskExecutor split executor from SplitLogWorker * @param worker instance of SplitLogWorker */ - void init(RegionServerServices server, Configuration conf, + void init(InternalRegionServerServices server, Configuration conf, TaskExecutor splitTaskExecutor, SplitLogWorker worker); /** 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 70445bd..b41dd62 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 @@ -41,8 +41,8 @@ import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds; import org.apache.hadoop.hbase.shaded.protobuf.generated.ZooKeeperProtos.SplitLogTask.RecoveryMode; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.Region; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.regionserver.SplitLogWorker; import org.apache.hadoop.hbase.regionserver.SplitLogWorker.TaskExecutor; import org.apache.hadoop.hbase.regionserver.handler.FinishRegionRecoveringHandler; @@ -85,7 +85,7 @@ public class ZkSplitLogWorkerCoordination extends ZooKeeperListener implements private final Object grabTaskLock = new Object(); private boolean workerInGrabTask = false; private int reportPeriod; - private RegionServerServices server = null; + private InternalRegionServerServices server = null; protected final AtomicInteger tasksInProgress = new AtomicInteger(0); private int maxConcurrentTasks = 0; @@ -134,7 +134,7 @@ public class ZkSplitLogWorkerCoordination extends ZooKeeperListener implements * Override setter from {@link SplitLogWorkerCoordination} */ @Override - public void init(RegionServerServices server, Configuration conf, + public void init(InternalRegionServerServices server, Configuration conf, TaskExecutor splitExecutor, SplitLogWorker worker) { this.server = server; this.worker = worker; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManager.java index 95c3ffe..0730e7b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManager.java @@ -21,7 +21,7 @@ import java.io.IOException; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.classification.InterfaceStability; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.zookeeper.KeeperException; /** @@ -37,7 +37,7 @@ public abstract class RegionServerProcedureManager extends ProcedureManager { * @param rss Region Server service interface * @throws KeeperException */ - public abstract void initialize(RegionServerServices rss) throws KeeperException; + public abstract void initialize(InternalRegionServerServices rss) throws KeeperException; /** * Start accepting procedure requests. diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.java index 0f4ea64..ed7d070 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.java @@ -23,7 +23,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.procedure.flush.RegionServerFlushTableProcedureManager; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.snapshot.RegionServerSnapshotManager; import org.apache.zookeeper.KeeperException; @@ -39,7 +39,7 @@ public class RegionServerProcedureManagerHost extends private static final Log LOG = LogFactory .getLog(RegionServerProcedureManagerHost.class); - public void initialize(RegionServerServices rss) throws KeeperException { + public void initialize(InternalRegionServerServices rss) throws KeeperException { for (RegionServerProcedureManager proc : procedures) { LOG.debug("Procedure " + proc.getProcedureSignature() + " is initializing"); proc.initialize(rss); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/flush/RegionServerFlushTableProcedureManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/flush/RegionServerFlushTableProcedureManager.java index 147c013..f4f3f3d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/flush/RegionServerFlushTableProcedureManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/flush/RegionServerFlushTableProcedureManager.java @@ -47,8 +47,8 @@ import org.apache.hadoop.hbase.procedure.Subprocedure; import org.apache.hadoop.hbase.procedure.SubprocedureFactory; import org.apache.hadoop.hbase.procedure.ZKProcedureMemberRpcs; import org.apache.hadoop.hbase.regionserver.HRegionServer; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.Region; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher; import org.apache.zookeeper.KeeperException; @@ -75,7 +75,7 @@ public class RegionServerFlushTableProcedureManager extends RegionServerProcedur "hbase.flush.procedure.region.wakefrequency"; private static final long FLUSH_REQUEST_WAKE_MILLIS_DEFAULT = 500; - private RegionServerServices rss; + private InternalRegionServerServices rss; private ProcedureMemberRpcs memberRpcs; private ProcedureMember member; @@ -317,7 +317,7 @@ public class RegionServerFlushTableProcedureManager extends RegionServerProcedur * @throws KeeperException if the zookeeper cannot be reached */ @Override - public void initialize(RegionServerServices rss) throws KeeperException { + public void initialize(InternalRegionServerServices rss) throws KeeperException { this.rss = rss; ZooKeeperWatcher zkw = rss.getZooKeeper(); this.memberRpcs = new ZKProcedureMemberRpcs(zkw, diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactedHFilesDischarger.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactedHFilesDischarger.java index 6b8948b..aec6b03 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactedHFilesDischarger.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactedHFilesDischarger.java @@ -27,7 +27,6 @@ import org.apache.hadoop.hbase.Stoppable; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.executor.EventType; import org.apache.hadoop.hbase.regionserver.Region; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.regionserver.Store; import com.google.common.annotations.VisibleForTesting; @@ -40,7 +39,7 @@ import com.google.common.annotations.VisibleForTesting; @InterfaceAudience.Private public class CompactedHFilesDischarger extends ScheduledChore { private static final Log LOG = LogFactory.getLog(CompactedHFilesDischarger.class); - private RegionServerServices regionServerServices; + private InternalRegionServerServices regionServerServices; // Default is to use executor @VisibleForTesting private boolean useExecutor = true; @@ -51,7 +50,7 @@ public class CompactedHFilesDischarger extends ScheduledChore { * @param regionServerServices the region server that starts this chore */ public CompactedHFilesDischarger(final int period, final Stoppable stopper, - final RegionServerServices regionServerServices) { + final InternalRegionServerServices regionServerServices) { // Need to add the config classes super("CompactedHFilesCleaner", stopper, period); this.regionServerServices = regionServerServices; @@ -65,7 +64,7 @@ public class CompactedHFilesDischarger extends ScheduledChore { */ @VisibleForTesting public CompactedHFilesDischarger(final int period, final Stoppable stopper, - final RegionServerServices regionServerServices, boolean useExecutor) { + final InternalRegionServerServices regionServerServices, boolean useExecutor) { // Need to add the config classes this(period, stopper, regionServerServices); this.useExecutor = useExecutor; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java index b460d1a..c89fd55 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -615,7 +615,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi // Last flush time for each Store. Useful when we are flushing for each column private final ConcurrentMap lastStoreFlushTimeMap = new ConcurrentHashMap<>(); - final RegionServerServices rsServices; + final InternalRegionServerServices rsServices; private RegionServerAccounting rsAccounting; private long flushCheckInterval; // flushPerChanges is to prevent too many changes in memstore @@ -668,14 +668,14 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi * @param regionInfo - HRegionInfo that describes the region * is new), then read them from the supplied path. * @param htd the table descriptor - * @param rsServices reference to {@link RegionServerServices} or null + * @param rsServices reference to {@link InternalRegionServerServices} or null * @deprecated Use other constructors. */ @Deprecated @VisibleForTesting public HRegion(final Path tableDir, final WAL wal, final FileSystem fs, final Configuration confParam, final HRegionInfo regionInfo, - final HTableDescriptor htd, final RegionServerServices rsServices) { + final HTableDescriptor htd, final InternalRegionServerServices rsServices) { this(new HRegionFileSystem(confParam, fs, tableDir, regionInfo), wal, confParam, htd, rsServices); } @@ -694,10 +694,10 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi * the supplied path. * @param confParam is global configuration settings. * @param htd the table descriptor - * @param rsServices reference to {@link RegionServerServices} or null + * @param rsServices reference to {@link InternalRegionServerServices} or null */ public HRegion(final HRegionFileSystem fs, final WAL wal, final Configuration confParam, - final HTableDescriptor htd, final RegionServerServices rsServices) { + final HTableDescriptor htd, final InternalRegionServerServices rsServices) { if (htd == null) { throw new IllegalArgumentException("Need table descriptor"); } @@ -787,9 +787,15 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi this.recovering = true; recoveringRegions.put(encodedName, this); } + if (conf.getBoolean(HREGION_UNASSIGN_FOR_FNFE, DEFAULT_HREGION_UNASSIGN_FOR_FNFE)) { + this.regionUnassigner = new RegionUnassigner(rsServices, fs.getRegionInfo()); + } else { + this.regionUnassigner = null; + } } else { this.metricsRegionWrapper = null; this.metricsRegion = null; + this.regionUnassigner = null; } if (LOG.isDebugEnabled()) { // Write out region name as string and its encoded name. @@ -810,14 +816,6 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi HConstants.DEFAULT_ENABLE_CLIENT_BACKPRESSURE); this.maxCellSize = conf.getLong(HBASE_MAX_CELL_SIZE_KEY, DEFAULT_MAX_CELL_SIZE); - - boolean unassignForFNFE = - conf.getBoolean(HREGION_UNASSIGN_FOR_FNFE, DEFAULT_HREGION_UNASSIGN_FOR_FNFE); - if (unassignForFNFE) { - this.regionUnassigner = new RegionUnassigner(rsServices, fs.getRegionInfo()); - } else { - this.regionUnassigner = null; - } } void setHTableSpecificConf() { @@ -1240,10 +1238,10 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi } /** - * @return Instance of {@link RegionServerServices} used by this HRegion. + * @return Instance of {@link InternalRegionServerServices} used by this HRegion. * Can be null. */ - RegionServerServices getRegionServerServices() { + InternalRegionServerServices getRegionServerServices() { return this.rsServices; } @@ -6501,7 +6499,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi */ static HRegion newHRegion(Path tableDir, WAL wal, FileSystem fs, Configuration conf, HRegionInfo regionInfo, final HTableDescriptor htd, - RegionServerServices rsServices) { + InternalRegionServerServices rsServices) { try { @SuppressWarnings("unchecked") Class regionClass = @@ -6510,7 +6508,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi Constructor c = regionClass.getConstructor(Path.class, WAL.class, FileSystem.class, Configuration.class, HRegionInfo.class, HTableDescriptor.class, - RegionServerServices.class); + InternalRegionServerServices.class); return c.newInstance(tableDir, wal, fs, conf, regionInfo, htd, rsServices); } catch (Throwable e) { @@ -6588,7 +6586,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi */ public static HRegion openHRegion(final HRegionInfo info, final HTableDescriptor htd, final WAL wal, final Configuration conf, - final RegionServerServices rsServices, + final InternalRegionServerServices rsServices, final CancelableProgressable reporter) throws IOException { return openHRegion(FSUtils.getRootDir(conf), info, htd, wal, conf, rsServices, reporter); @@ -6630,7 +6628,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi */ public static HRegion openHRegion(final Path rootDir, final HRegionInfo info, final HTableDescriptor htd, final WAL wal, final Configuration conf, - final RegionServerServices rsServices, + final InternalRegionServerServices rsServices, final CancelableProgressable reporter) throws IOException { FileSystem fs = null; @@ -6681,7 +6679,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi */ public static HRegion openHRegion(final Configuration conf, final FileSystem fs, final Path rootDir, final HRegionInfo info, final HTableDescriptor htd, final WAL wal, - final RegionServerServices rsServices, final CancelableProgressable reporter) + final InternalRegionServerServices rsServices, final CancelableProgressable reporter) throws IOException { Path tableDir = FSUtils.getTableDir(rootDir, info.getTable()); return openHRegion(conf, fs, rootDir, tableDir, info, htd, wal, rsServices, reporter); @@ -6705,7 +6703,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi */ public static HRegion openHRegion(final Configuration conf, final FileSystem fs, final Path rootDir, final Path tableDir, final HRegionInfo info, final HTableDescriptor htd, - final WAL wal, final RegionServerServices rsServices, + final WAL wal, final InternalRegionServerServices rsServices, final CancelableProgressable reporter) throws IOException { if (info == null) throw new NullPointerException("Passed region info is null"); @@ -6770,7 +6768,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi public static void warmupHRegion(final HRegionInfo info, final HTableDescriptor htd, final WAL wal, final Configuration conf, - final RegionServerServices rsServices, + final InternalRegionServerServices rsServices, final CancelableProgressable reporter) 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 f0537e0..82cf19b 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 @@ -218,7 +218,7 @@ import sun.misc.SignalHandler; @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS) @SuppressWarnings({ "deprecation"}) public class HRegionServer extends HasThread implements - RegionServerServices, LastSequenceId, ConfigurationObserver { + InternalRegionServerServices, LastSequenceId, ConfigurationObserver { // Time to pause if master says 'please hold'. Make configurable if needed. private static final int INIT_PAUSE_TIME_MS = 1000; @@ -2123,11 +2123,6 @@ public class HRegionServer extends HasThread implements } @Override - public void postOpenDeployTasks(final Region r) throws KeeperException, IOException { - postOpenDeployTasks(new PostOpenDeployContext(r, -1)); - } - - @Override public void postOpenDeployTasks(final PostOpenDeployContext context) throws KeeperException, IOException { Region r = context.getRegion(); @@ -2165,18 +2160,6 @@ public class HRegionServer extends HasThread implements } @Override - public boolean reportRegionStateTransition(TransitionCode code, HRegionInfo... hris) { - return reportRegionStateTransition(code, HConstants.NO_SEQNUM, hris); - } - - @Override - public boolean reportRegionStateTransition( - TransitionCode code, long openSeqNum, HRegionInfo... hris) { - return reportRegionStateTransition( - new RegionStateTransitionContext(code, HConstants.NO_SEQNUM, -1, hris)); - } - - @Override public boolean reportRegionStateTransition(final RegionStateTransitionContext context) { TransitionCode code = context.getCode(); long openSeqNum = context.getOpenSeqNum(); @@ -3724,6 +3707,9 @@ public class HRegionServer extends HasThread implements return this.secureBulkLoadManager; } + /** + * Master based locks on namespaces/tables/regions. + */ @Override public EntityLock regionLock(List regionInfos, String description, Abortable abort) throws IOException { @@ -3731,6 +3717,14 @@ public class HRegionServer extends HasThread implements .regionLock(regionInfos, description, abort); } + /** + * Unassign the given region from the current regionserver and assign it randomly. Could still be + * assigned to us. This is used to solve some tough problems for which you need to reset the state + * of a region. For example, if you hit FileNotFound exception and want to refresh the store file + * list. + *

+ * See HBASE-17712 for more details. + */ @Override public void unassign(byte[] regionName) throws IOException { clusterConnection.getAdmin().unassign(regionName, false); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java index 9ab52c3..5831869 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java @@ -2245,7 +2245,7 @@ public class HStore implements Store { @Override public void flushCache(MonitoredTask status) throws IOException { - RegionServerServices rsService = region.getRegionServerServices(); + InternalRegionServerServices rsService = region.getRegionServerServices(); ThroughputController throughputController = rsService == null ? null : rsService.getFlushThroughputController(); tempFiles = HStore.this.flushCache(cacheFlushSeqNum, snapshot, status, throughputController); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/InternalRegionServerServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/InternalRegionServerServices.java new file mode 100644 index 0000000..391fdb9 --- /dev/null +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/InternalRegionServerServices.java @@ -0,0 +1,201 @@ +/** + * + * 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.regionserver; + +import java.io.IOException; +import java.util.List; + +import org.apache.hadoop.hbase.Abortable; +import org.apache.hadoop.hbase.HRegionInfo; +import org.apache.hadoop.hbase.classification.InterfaceAudience; +import org.apache.hadoop.hbase.client.locking.EntityLock; +import org.apache.hadoop.hbase.executor.ExecutorService; +import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager; +import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager; +import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController; +import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode; +import org.apache.hadoop.hbase.wal.WAL; +import org.apache.zookeeper.KeeperException; + +import com.google.protobuf.Service; + +/** + * This interface is an extension to RegionServerServices and include internal APIs used across the + * server modules. These APIs are very much internal to HBase and not exposed to Coprocessors + */ +@InterfaceAudience.Private +public interface InternalRegionServerServices extends RegionServerServices { + + /** @return the WAL for a particular region. Pass null for getting the + * default (common) WAL */ + WAL getWAL(HRegionInfo regionInfo) throws IOException; + + /** @return the List of WALs that are used by this server + * Doesn't include the meta WAL + */ + List getWALs() throws IOException; + + /** + * @return Implementation of {@link CompactionRequestor} or null. + */ + CompactionRequestor getCompactionRequester(); + + /** + * @return Implementation of {@link FlushRequester} or null. + */ + FlushRequester getFlushRequester(); + + /** + * @return the RegionServerAccounting for this Region Server + */ + RegionServerAccounting getRegionServerAccounting(); + + /** + * @return RegionServer's instance of {@link RegionServerRpcQuotaManager} + */ + RegionServerRpcQuotaManager getRegionServerRpcQuotaManager(); + + /** + * @return RegionServer's instance of {@link SecureBulkLoadManager} + */ + SecureBulkLoadManager getSecureBulkLoadManager(); + + /** + * @return RegionServer's instance of {@link RegionServerSpaceQuotaManager} + */ + RegionServerSpaceQuotaManager getRegionServerSpaceQuotaManager(); + + /** + * Tasks to perform after region open to complete deploy of region on + * regionserver + * + * @param context the context + * @throws KeeperException + * @throws IOException + */ + void postOpenDeployTasks(final PostOpenDeployContext context) throws KeeperException, IOException; + + /** + * Context for postOpenDeployTasks(). + */ + class PostOpenDeployContext { + private final Region region; + private final long masterSystemTime; + + @InterfaceAudience.Private + public PostOpenDeployContext(Region region, long masterSystemTime) { + this.region = region; + this.masterSystemTime = masterSystemTime; + } + public Region getRegion() { + return region; + } + public long getMasterSystemTime() { + return masterSystemTime; + } + } + + /** + * Notify master that a handler requests to change a region state + */ + boolean reportRegionStateTransition(final RegionStateTransitionContext context); + + class RegionStateTransitionContext { + private final TransitionCode code; + private final long openSeqNum; + private final long masterSystemTime; + private final HRegionInfo[] hris; + + @InterfaceAudience.Private + public RegionStateTransitionContext(TransitionCode code, long openSeqNum, long masterSystemTime, + HRegionInfo... hris) { + this.code = code; + this.openSeqNum = openSeqNum; + this.masterSystemTime = masterSystemTime; + this.hris = hris; + } + public TransitionCode getCode() { + return code; + } + public long getOpenSeqNum() { + return openSeqNum; + } + public long getMasterSystemTime() { + return masterSystemTime; + } + public HRegionInfo[] getHris() { + return hris; + } + } + + /** + * @return The RegionServer's "Leases" service + */ + Leases getLeases(); + + /** + * @return hbase executor service + */ + ExecutorService getExecutorService(); + + /** + * Only required for "old" log replay; if it's removed, remove this. + * @return The RegionServer's NonceManager + */ + ServerNonceManager getNonceManager(); + + /** + * Registers a new protocol buffer {@link Service} subclass as a coprocessor endpoint to be + * available for handling + * @param service the {@code Service} subclass instance to expose as a coprocessor endpoint + * @return {@code true} if the registration was successful, {@code false} + */ + boolean registerService(Service service); + + /** + * @return heap memory manager instance + */ + HeapMemoryManager getHeapMemoryManager(); + + /** + * @return the controller to avoid flush too fast + */ + ThroughputController getFlushThroughputController(); + + /** + * @return the metrics tracker for the region server + */ + MetricsRegionServer getMetrics(); + + /** + * Master based locks on namespaces/tables/regions. + */ + EntityLock regionLock(List regionInfos, String description, Abortable abort) + throws IOException; + + /** + * Unassign the given region from the current regionserver and assign it randomly. Could still be + * assigned to us. This is used to solve some tough problems for which you need to reset the state + * of a region. For example, if you hit FileNotFound exception and want to refresh the store file + * list. + *

+ * See HBASE-17712 for more details. + */ + void unassign(byte[] regionName) throws IOException; +} diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java index 80b6825..cc56e04 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java @@ -57,7 +57,7 @@ public class LogRoller extends HasThread implements Closeable { private final AtomicBoolean rollLog = new AtomicBoolean(false); private final ConcurrentHashMap walNeedsRoll = new ConcurrentHashMap<>(); private final Server server; - protected final RegionServerServices services; + protected final InternalRegionServerServices services; private volatile long lastrolltime = System.currentTimeMillis(); // Period to roll log. private final long rollperiod; @@ -94,7 +94,7 @@ public class LogRoller extends HasThread implements Closeable { } /** @param server */ - public LogRoller(final Server server, final RegionServerServices services) { + public LogRoller(final Server server, final InternalRegionServerServices services) { super("LogRoller"); this.server = server; this.services = services; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeRequest.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeRequest.java index e95932b..1e68a1e 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeRequest.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeRequest.java @@ -22,9 +22,11 @@ import java.security.PrivilegedAction; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.classification.InterfaceAudience; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices.RegionStateTransitionContext; import org.apache.hadoop.hbase.security.User; import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode; @@ -90,7 +92,9 @@ class RegionMergeRequest implements Runnable { // The parent region will be unassigned and the two new regions will be assigned. // hri_a and hri_b objects may not reflect the regions that will be created, those objectes // are created just to pass the information to the reportRegionStateTransition(). - if (!server.reportRegionStateTransition(TransitionCode.READY_TO_MERGE, merged, region_a, region_b)) { + RegionStateTransitionContext context = new RegionStateTransitionContext( + TransitionCode.READY_TO_MERGE, HConstants.NO_SEQNUM, -1, merged, region_a, region_b); + if (!server.reportRegionStateTransition(context)) { LOG.error("Unable to ask master to merge: " + region_a + ", " + region_b); } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java index 9bcf201..a054eeb 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java @@ -58,6 +58,7 @@ public class RegionServerCoprocessorHost extends public RegionServerCoprocessorHost(RegionServerServices rsServices, Configuration conf) { super(rsServices); + assert rsServices instanceof InternalRegionServerServices; this.rsServices = rsServices; this.conf = conf; // Log the state of coprocessor loading here; should appear only once or @@ -370,8 +371,8 @@ public class RegionServerCoprocessorHost extends for (Object itf : ClassUtils.getAllInterfaces(implClass)) { Class c = (Class) itf; if (SingletonCoprocessorService.class.isAssignableFrom(c)) {// FindBugs: BC_UNCONFIRMED_CAST - this.regionServerServices.registerService( - ((SingletonCoprocessorService) impl).getService()); + ((InternalRegionServerServices) this.regionServerServices) + .registerService(((SingletonCoprocessorService) impl).getService()); break; } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java index 5afa652..fc8d1a7 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java @@ -18,30 +18,16 @@ */ package org.apache.hadoop.hbase.regionserver; -import java.io.IOException; -import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentMap; import org.apache.hadoop.fs.FileSystem; -import org.apache.hadoop.hbase.Abortable; import org.apache.hadoop.hbase.HBaseInterfaceAudience; -import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.classification.InterfaceStability; -import org.apache.hadoop.hbase.client.locking.EntityLock; -import org.apache.hadoop.hbase.executor.ExecutorService; import org.apache.hadoop.hbase.ipc.RpcServerInterface; -import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode; -import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager; -import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager; -import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController; -import org.apache.hadoop.hbase.wal.WAL; -import org.apache.zookeeper.KeeperException; - -import com.google.protobuf.Service; /** * Services provided by {@link HRegionServer} @@ -54,134 +40,6 @@ public interface RegionServerServices extends OnlineRegions, FavoredNodesForRegi */ boolean isStopping(); - /** @return the WAL for a particular region. Pass null for getting the - * default (common) WAL */ - WAL getWAL(HRegionInfo regionInfo) throws IOException; - - /** @return the List of WALs that are used by this server - * Doesn't include the meta WAL - */ - List getWALs() throws IOException; - - /** - * @return Implementation of {@link CompactionRequestor} or null. - */ - CompactionRequestor getCompactionRequester(); - - /** - * @return Implementation of {@link FlushRequester} or null. - */ - FlushRequester getFlushRequester(); - - /** - * @return the RegionServerAccounting for this Region Server - */ - RegionServerAccounting getRegionServerAccounting(); - - /** - * @return RegionServer's instance of {@link RegionServerRpcQuotaManager} - */ - RegionServerRpcQuotaManager getRegionServerRpcQuotaManager(); - - /** - * @return RegionServer's instance of {@link SecureBulkLoadManager} - */ - SecureBulkLoadManager getSecureBulkLoadManager(); - - /** - * @return RegionServer's instance of {@link RegionServerSpaceQuotaManager} - */ - RegionServerSpaceQuotaManager getRegionServerSpaceQuotaManager(); - - /** - * Context for postOpenDeployTasks(). - */ - class PostOpenDeployContext { - private final Region region; - private final long masterSystemTime; - - @InterfaceAudience.Private - public PostOpenDeployContext(Region region, long masterSystemTime) { - this.region = region; - this.masterSystemTime = masterSystemTime; - } - public Region getRegion() { - return region; - } - public long getMasterSystemTime() { - return masterSystemTime; - } - } - - /** - * Tasks to perform after region open to complete deploy of region on - * regionserver - * - * @param context the context - * @throws KeeperException - * @throws IOException - */ - void postOpenDeployTasks(final PostOpenDeployContext context) throws KeeperException, IOException; - - /** - * Tasks to perform after region open to complete deploy of region on - * regionserver - * - * @param r Region to open. - * @throws KeeperException - * @throws IOException - * @deprecated use {@link #postOpenDeployTasks(PostOpenDeployContext)} - */ - @Deprecated - void postOpenDeployTasks(final Region r) throws KeeperException, IOException; - - class RegionStateTransitionContext { - private final TransitionCode code; - private final long openSeqNum; - private final long masterSystemTime; - private final HRegionInfo[] hris; - - @InterfaceAudience.Private - public RegionStateTransitionContext(TransitionCode code, long openSeqNum, long masterSystemTime, - HRegionInfo... hris) { - this.code = code; - this.openSeqNum = openSeqNum; - this.masterSystemTime = masterSystemTime; - this.hris = hris; - } - public TransitionCode getCode() { - return code; - } - public long getOpenSeqNum() { - return openSeqNum; - } - public long getMasterSystemTime() { - return masterSystemTime; - } - public HRegionInfo[] getHris() { - return hris; - } - } - - /** - * Notify master that a handler requests to change a region state - */ - boolean reportRegionStateTransition(final RegionStateTransitionContext context); - - /** - * Notify master that a handler requests to change a region state - * @deprecated use {@link #reportRegionStateTransition(RegionStateTransitionContext)} - */ - @Deprecated - boolean reportRegionStateTransition(TransitionCode code, long openSeqNum, HRegionInfo... hris); - - /** - * Notify master that a handler requests to change a region state - * @deprecated use {@link #reportRegionStateTransition(RegionStateTransitionContext)} - */ - @Deprecated - boolean reportRegionStateTransition(TransitionCode code, HRegionInfo... hris); - /** * Returns a reference to the region server's RPC server */ @@ -199,45 +57,15 @@ public interface RegionServerServices extends OnlineRegions, FavoredNodesForRegi FileSystem getFileSystem(); /** - * @return The RegionServer's "Leases" service - */ - Leases getLeases(); - - /** - * @return hbase executor service - */ - ExecutorService getExecutorService(); - - /** * @return set of recovering regions on the hosting region server */ Map getRecoveringRegions(); /** - * Only required for "old" log replay; if it's removed, remove this. - * @return The RegionServer's NonceManager - */ - public ServerNonceManager getNonceManager(); - - /** * @return all the online tables in this RS */ Set getOnlineTables(); - - /** - * Registers a new protocol buffer {@link Service} subclass as a coprocessor endpoint to be - * available for handling - * @param service the {@code Service} subclass instance to expose as a coprocessor endpoint - * @return {@code true} if the registration was successful, {@code false} - */ - boolean registerService(Service service); - - /** - * @return heap memory manager instance - */ - HeapMemoryManager getHeapMemoryManager(); - /** * @return the max compaction pressure of all stores on this regionserver. The value should be * greater than or equal to 0.0, and any value greater than 1.0 means we enter the @@ -247,36 +75,11 @@ public interface RegionServerServices extends OnlineRegions, FavoredNodesForRegi double getCompactionPressure(); /** - * @return the controller to avoid flush too fast - */ - ThroughputController getFlushThroughputController(); - - /** * @return the flush pressure of all stores on this regionserver. The value should be greater than * or equal to 0.0, and any value greater than 1.0 means we enter the emergency state that * global memstore size already exceeds lower limit. */ @Deprecated + // TODO? double getFlushPressure(); - - /** - * @return the metrics tracker for the region server - */ - MetricsRegionServer getMetrics(); - - /** - * Master based locks on namespaces/tables/regions. - */ - EntityLock regionLock(List regionInfos, String description, - Abortable abort) throws IOException; - - /** - * Unassign the given region from the current regionserver and assign it randomly. Could still be - * assigned to us. This is used to solve some tough problems for which you need to reset the state - * of a region. For example, if you hit FileNotFound exception and want to refresh the store file - * list. - *

- * See HBASE-17712 for more details. - */ - void unassign(byte[] regionName) throws IOException; } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionUnassigner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionUnassigner.java index 8eb78a2..8d46801 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionUnassigner.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionUnassigner.java @@ -32,13 +32,13 @@ class RegionUnassigner { private static final Log LOG = LogFactory.getLog(RegionUnassigner.class); - private final RegionServerServices rsServices; + private final InternalRegionServerServices rsServices; private final HRegionInfo regionInfo; private boolean unassigning = false; - RegionUnassigner(RegionServerServices rsServices, HRegionInfo regionInfo) { + RegionUnassigner(InternalRegionServerServices rsServices, HRegionInfo regionInfo) { this.rsServices = rsServices; this.regionInfo = regionInfo; } 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 a2f40b1..7301469 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 @@ -69,9 +69,9 @@ public class SplitLogWorker implements Runnable { // thread pool which executes recovery work private SplitLogWorkerCoordination coordination; private Configuration conf; - private RegionServerServices server; + private InternalRegionServerServices server; - public SplitLogWorker(Server hserver, Configuration conf, RegionServerServices server, + public SplitLogWorker(Server hserver, Configuration conf, InternalRegionServerServices server, TaskExecutor splitTaskExecutor) { this.server = server; this.conf = conf; @@ -83,7 +83,7 @@ public class SplitLogWorker implements Runnable { } public SplitLogWorker(final Server hserver, final Configuration conf, - final RegionServerServices server, final LastSequenceId sequenceIdChecker, + final InternalRegionServerServices server, final LastSequenceId sequenceIdChecker, final WALFactory factory) { this(server, conf, server, new TaskExecutor() { @Override diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java index bd59c53..1d75f08 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java @@ -22,9 +22,11 @@ import java.security.PrivilegedAction; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.classification.InterfaceAudience; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices.RegionStateTransitionContext; import org.apache.hadoop.hbase.security.User; import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode; import org.apache.hadoop.hbase.util.Bytes; @@ -78,7 +80,9 @@ class SplitRequest implements Runnable { // The parent region will be unassigned and the two new regions will be assigned. // hri_a and hri_b objects may not reflect the regions that will be created, those objects // are created just to pass the information to the reportRegionStateTransition(). - if (!server.reportRegionStateTransition(TransitionCode.READY_TO_SPLIT, parent, hri_a, hri_b)) { + RegionStateTransitionContext context = new RegionStateTransitionContext( + TransitionCode.READY_TO_SPLIT, HConstants.NO_SEQNUM, -1, parent, hri_a, hri_b); + if (!server.reportRegionStateTransition(context)) { LOG.error("Unable to ask master to split " + parent.getRegionNameAsString()); } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java index 11301d8..a82b741 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java @@ -22,9 +22,7 @@ package org.apache.hadoop.hbase.regionserver; import java.io.IOException; import java.io.InterruptedIOException; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.NavigableSet; import java.util.concurrent.CountDownLatch; import java.util.concurrent.locks.ReentrantLock; @@ -209,7 +207,8 @@ public class StoreScanner extends NonReversedNonLazyKeyValueScanner this.cellsPerHeartbeatCheck = scanInfo.getCellsPerTimeoutCheck(); // Parallel seeking is on if the config allows and more there is more than one store file. if (this.store != null && this.store.getStorefilesCount() > 1) { - RegionServerServices rsService = ((HStore) store).getHRegion().getRegionServerServices(); + InternalRegionServerServices rsService = ((HStore) store).getHRegion() + .getRegionServerServices(); if (rsService != null && scanInfo.isParallelSeekEnabled()) { this.parallelSeekEnabled = true; this.executor = rsService.getExecutorService(); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseMetaHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseMetaHandler.java index 70e5283..5dd3142 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseMetaHandler.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseMetaHandler.java @@ -22,7 +22,7 @@ import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.executor.EventType; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; /** * Handles closing of the meta region on a region server. @@ -32,7 +32,7 @@ public class CloseMetaHandler extends CloseRegionHandler { // Called when regionserver determines its to go down; not master orchestrated public CloseMetaHandler(final Server server, - final RegionServerServices rsServices, + final InternalRegionServerServices rsServices, final HRegionInfo regionInfo, final boolean abort) { super(server, rsServices, regionInfo, abort, EventType.M_RS_CLOSE_META, null); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseRegionHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseRegionHandler.java index 3ecc750..256993e 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseRegionHandler.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseRegionHandler.java @@ -23,6 +23,7 @@ import java.io.IOException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.classification.InterfaceAudience; +import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; @@ -30,7 +31,8 @@ import org.apache.hadoop.hbase.executor.EventHandler; import org.apache.hadoop.hbase.executor.EventType; import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode; import org.apache.hadoop.hbase.regionserver.HRegion; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices.RegionStateTransitionContext; /** * Handles closing of a region on a region server. @@ -44,7 +46,7 @@ public class CloseRegionHandler extends EventHandler { // have a running queue of user regions to close? private static final Log LOG = LogFactory.getLog(CloseRegionHandler.class); - private final RegionServerServices rsServices; + private final InternalRegionServerServices rsServices; private final HRegionInfo regionInfo; // If true, the hosting server is aborting. Region close process is different @@ -61,7 +63,7 @@ public class CloseRegionHandler extends EventHandler { * @param destination */ public CloseRegionHandler(final Server server, - final RegionServerServices rsServices, + final InternalRegionServerServices rsServices, final HRegionInfo regionInfo, final boolean abort, ServerName destination) { this(server, rsServices, regionInfo, abort, @@ -69,7 +71,7 @@ public class CloseRegionHandler extends EventHandler { } protected CloseRegionHandler(final Server server, - final RegionServerServices rsServices, HRegionInfo regionInfo, + final InternalRegionServerServices rsServices, HRegionInfo regionInfo, boolean abort, EventType eventType, ServerName destination) { super(server, eventType); this.server = server; @@ -116,7 +118,9 @@ public class CloseRegionHandler extends EventHandler { } this.rsServices.removeFromOnlineRegions(region, destination); - rsServices.reportRegionStateTransition(TransitionCode.CLOSED, regionInfo); + RegionStateTransitionContext context = new RegionStateTransitionContext( + TransitionCode.CLOSED, HConstants.NO_SEQNUM, -1, regionInfo); + rsServices.reportRegionStateTransition(context); // Done! Region is closed on this RS LOG.debug("Closed " + region.getRegionInfo().getRegionNameAsString()); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenMetaHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenMetaHandler.java index e49b164..d5a936c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenMetaHandler.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenMetaHandler.java @@ -23,7 +23,7 @@ import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.executor.EventType; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; /** * Handles opening of a meta region on a region server. @@ -33,7 +33,7 @@ import org.apache.hadoop.hbase.regionserver.RegionServerServices; @InterfaceAudience.Private public class OpenMetaHandler extends OpenRegionHandler { public OpenMetaHandler(final Server server, - final RegionServerServices rsServices, HRegionInfo regionInfo, + final InternalRegionServerServices rsServices, HRegionInfo regionInfo, final HTableDescriptor htd, long masterSystemTime) { super(server, rsServices, regionInfo, htd, masterSystemTime, EventType.M_RS_OPEN_META); } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenPriorityRegionHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenPriorityRegionHandler.java index 83d4d3f..39a5f36 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenPriorityRegionHandler.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenPriorityRegionHandler.java @@ -24,7 +24,7 @@ import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.executor.EventType; import org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; /** * Handles opening of a high priority region on a region server. @@ -33,7 +33,7 @@ import org.apache.hadoop.hbase.regionserver.RegionServerServices; */ @InterfaceAudience.Private public class OpenPriorityRegionHandler extends OpenRegionHandler { - public OpenPriorityRegionHandler(Server server, RegionServerServices rsServices, + public OpenPriorityRegionHandler(Server server, InternalRegionServerServices rsServices, HRegionInfo regionInfo, HTableDescriptor htd, long masterSystemTime) { super(server, rsServices, regionInfo, htd, masterSystemTime, EventType.M_RS_OPEN_PRIORITY_REGION); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java index 8369100..96ff850 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java @@ -23,18 +23,21 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.hadoop.hbase.classification.InterfaceAudience; +import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.Server; +import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.executor.EventHandler; import org.apache.hadoop.hbase.executor.EventType; -import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode; import org.apache.hadoop.hbase.regionserver.HRegion; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices.PostOpenDeployContext; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices.RegionStateTransitionContext; import org.apache.hadoop.hbase.regionserver.Region; import org.apache.hadoop.hbase.regionserver.RegionServerAccounting; import org.apache.hadoop.hbase.regionserver.RegionServerServices; -import org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext; +import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode; import org.apache.hadoop.hbase.util.CancelableProgressable; /** * Handles opening of a region on a region server. @@ -45,20 +48,20 @@ import org.apache.hadoop.hbase.util.CancelableProgressable; public class OpenRegionHandler extends EventHandler { private static final Log LOG = LogFactory.getLog(OpenRegionHandler.class); - protected final RegionServerServices rsServices; + protected final InternalRegionServerServices rsServices; private final HRegionInfo regionInfo; private final HTableDescriptor htd; private final long masterSystemTime; public OpenRegionHandler(final Server server, - final RegionServerServices rsServices, HRegionInfo regionInfo, + final InternalRegionServerServices rsServices, HRegionInfo regionInfo, HTableDescriptor htd, long masterSystemTime) { this(server, rsServices, regionInfo, htd, masterSystemTime, EventType.M_RS_OPEN_REGION); } protected OpenRegionHandler(final Server server, - final RegionServerServices rsServices, final HRegionInfo regionInfo, + final InternalRegionServerServices rsServices, final HRegionInfo regionInfo, final HTableDescriptor htd, long masterSystemTime, EventType eventType) { super(server, eventType); this.rsServices = rsServices; @@ -159,7 +162,9 @@ public class OpenRegionHandler extends EventHandler { cleanupFailedOpen(region); } } finally { - rsServices.reportRegionStateTransition(TransitionCode.FAILED_OPEN, regionInfo); + RegionStateTransitionContext context = new RegionStateTransitionContext( + TransitionCode.FAILED_OPEN, HConstants.NO_SEQNUM, -1, regionInfo); + rsServices.reportRegionStateTransition(context); } } @@ -224,13 +229,14 @@ public class OpenRegionHandler extends EventHandler { static class PostOpenDeployTasksThread extends Thread { private Throwable exception = null; private final Server server; - private final RegionServerServices services; + private final InternalRegionServerServices services; private final HRegion region; private final AtomicBoolean signaller; private final long masterSystemTime; PostOpenDeployTasksThread(final HRegion region, final Server server, - final RegionServerServices services, final AtomicBoolean signaller, long masterSystemTime) { + final InternalRegionServerServices services, final AtomicBoolean signaller, + long masterSystemTime) { super("PostOpenDeployTasks:" + region.getRegionInfo().getEncodedName()); this.setDaemon(true); this.server = server; @@ -243,7 +249,8 @@ public class OpenRegionHandler extends EventHandler { @Override public void run() { try { - this.services.postOpenDeployTasks(new PostOpenDeployContext(region, masterSystemTime)); + PostOpenDeployContext context = new PostOpenDeployContext(region, masterSystemTime); + this.services.postOpenDeployTasks(context); } catch (Throwable e) { String msg = "Exception running postOpenDeployTasks; region=" + this.region.getRegionInfo().getEncodedName(); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.java index a11844d..b480bdd 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.java @@ -52,8 +52,8 @@ import org.apache.hadoop.hbase.procedure.Subprocedure; import org.apache.hadoop.hbase.procedure.SubprocedureFactory; import org.apache.hadoop.hbase.procedure.ZKProcedureMemberRpcs; import org.apache.hadoop.hbase.regionserver.HRegionServer; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.Region; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription; import org.apache.hadoop.hbase.snapshot.SnapshotCreationException; import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher; @@ -96,7 +96,7 @@ public class RegionServerSnapshotManager extends RegionServerProcedureManager { /** Default amount of time to check for errors while regions finish snapshotting */ private static final long SNAPSHOT_REQUEST_WAKE_MILLIS_DEFAULT = 500; - private RegionServerServices rss; + private InternalRegionServerServices rss; private ProcedureMemberRpcs memberRpcs; private ProcedureMember member; @@ -390,7 +390,7 @@ public class RegionServerSnapshotManager extends RegionServerProcedureManager { * @throws KeeperException if the zookeeper cluster cannot be reached */ @Override - public void initialize(RegionServerServices rss) throws KeeperException { + public void initialize(InternalRegionServerServices rss) throws KeeperException { this.rss = rss; ZooKeeperWatcher zkw = rss.getZooKeeper(); this.memberRpcs = new ZKProcedureMemberRpcs(zkw, diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java index 5c8b29b..2a74d38 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java @@ -95,6 +95,7 @@ import org.apache.hadoop.hbase.regionserver.ChunkCreator; import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.regionserver.HRegionServer; import org.apache.hadoop.hbase.regionserver.HStore; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.InternalScanner; import org.apache.hadoop.hbase.regionserver.MemStoreLABImpl; import org.apache.hadoop.hbase.regionserver.Region; @@ -2666,7 +2667,8 @@ public class HBaseTestingUtility extends HBaseCommonTestingUtility { * Create a stubbed out RegionServerService, mainly for getting FS. * This version is used by TestOpenRegionHandler */ - public RegionServerServices createMockRegionServerService(ServerName name) throws IOException { + public InternalRegionServerServices createMockRegionServerService(ServerName name) + throws IOException { final MockRegionServerServices rss = new MockRegionServerServices(getZooKeeperWatcher(), name); rss.setFileSystem(getTestFileSystem()); return rss; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java index a99345b..9796e76 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java @@ -37,17 +37,16 @@ import org.apache.hadoop.hbase.executor.ExecutorService; import org.apache.hadoop.hbase.fs.HFileSystem; import org.apache.hadoop.hbase.ipc.RpcServerInterface; import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos; -import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode; import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager; import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager; import org.apache.hadoop.hbase.regionserver.CompactionRequestor; import org.apache.hadoop.hbase.regionserver.FlushRequester; import org.apache.hadoop.hbase.regionserver.HeapMemoryManager; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.Leases; import org.apache.hadoop.hbase.regionserver.MetricsRegionServer; import org.apache.hadoop.hbase.regionserver.Region; import org.apache.hadoop.hbase.regionserver.RegionServerAccounting; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager; import org.apache.hadoop.hbase.regionserver.ServerNonceManager; import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController; @@ -62,7 +61,7 @@ import com.google.protobuf.Service; /** * Basic mock region server services. Should only be instantiated by HBaseTestingUtility.b */ -public class MockRegionServerServices implements RegionServerServices { +public class MockRegionServerServices implements InternalRegionServerServices { protected static final Log LOG = LogFactory.getLog(MockRegionServerServices.class); private final Map regions = new HashMap<>(); private final ConcurrentSkipListMap rit = @@ -125,11 +124,6 @@ public class MockRegionServerServices implements RegionServerServices { } @Override - public void postOpenDeployTasks(Region r) throws KeeperException, IOException { - addToOnlineRegions(r); - } - - @Override public void postOpenDeployTasks(PostOpenDeployContext context) throws KeeperException, IOException { addToOnlineRegions(context.getRegion()); @@ -285,18 +279,6 @@ public class MockRegionServerServices implements RegionServerServices { } @Override - public boolean reportRegionStateTransition(TransitionCode code, long openSeqNum, - HRegionInfo... hris) { - return false; - } - - @Override - public boolean reportRegionStateTransition(TransitionCode code, - HRegionInfo... hris) { - return false; - } - - @Override public boolean reportRegionStateTransition(RegionStateTransitionContext context) { return false; } @@ -338,22 +320,23 @@ public class MockRegionServerServices implements RegionServerServices { } @Override - public EntityLock regionLock(List regionInfos, String description, Abortable abort) - throws IOException { + public SecureBulkLoadManager getSecureBulkLoadManager() { return null; } @Override - public SecureBulkLoadManager getSecureBulkLoadManager() { + public RegionServerSpaceQuotaManager getRegionServerSpaceQuotaManager() { return null; } @Override - public void unassign(byte[] regionName) throws IOException { + public EntityLock regionLock(List regionInfos, String description, Abortable abort) + throws IOException { + return null; } @Override - public RegionServerSpaceQuotaManager getRegionServerSpaceQuotaManager() { - return null; + public void unassign(byte[] regionName) throws IOException { + } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestIOFencing.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestIOFencing.java index 7640138..31a586f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestIOFencing.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestIOFencing.java @@ -39,8 +39,8 @@ import org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy; import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.regionserver.HRegionServer; import org.apache.hadoop.hbase.regionserver.HStore; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.Region; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.regionserver.Store; import org.apache.hadoop.hbase.regionserver.StoreFile; import org.apache.hadoop.hbase.regionserver.compactions.CompactionContext; @@ -98,7 +98,7 @@ public class TestIOFencing { @SuppressWarnings("deprecation") public CompactionBlockerRegion(Path tableDir, WAL log, FileSystem fs, Configuration confParam, HRegionInfo info, - HTableDescriptor htd, RegionServerServices rsServices) { + HTableDescriptor htd, InternalRegionServerServices rsServices) { super(tableDir, log, fs, confParam, info, htd, rsServices); } @@ -158,7 +158,7 @@ public class TestIOFencing { public BlockCompactionsInPrepRegion(Path tableDir, WAL log, FileSystem fs, Configuration confParam, HRegionInfo info, - HTableDescriptor htd, RegionServerServices rsServices) { + HTableDescriptor htd, InternalRegionServerServices rsServices) { super(tableDir, log, fs, confParam, info, htd, rsServices); } @Override @@ -181,7 +181,7 @@ public class TestIOFencing { public static class BlockCompactionsInCompletionRegion extends CompactionBlockerRegion { public BlockCompactionsInCompletionRegion(Path tableDir, WAL log, FileSystem fs, Configuration confParam, HRegionInfo info, - HTableDescriptor htd, RegionServerServices rsServices) { + HTableDescriptor htd, InternalRegionServerServices rsServices) { super(tableDir, log, fs, confParam, info, htd, rsServices); } @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.java index fc56ebd..4f1ca21 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.java @@ -46,8 +46,8 @@ import org.apache.hadoop.hbase.master.cleaner.BaseHFileCleanerDelegate; import org.apache.hadoop.hbase.master.cleaner.HFileCleaner; import org.apache.hadoop.hbase.regionserver.CompactedHFilesDischarger; import org.apache.hadoop.hbase.regionserver.HRegion; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.Region; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.regionserver.Store; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.testclassification.MiscTests; @@ -82,7 +82,7 @@ public class TestZooKeeperTableArchiveClient { private static ZKTableArchiveClient archivingClient; private final List toCleanup = new ArrayList<>(); private static ClusterConnection CONNECTION; - private static RegionServerServices rss; + private static InternalRegionServerServices rss; /** * Setup the config for the cluster @@ -97,7 +97,7 @@ public class TestZooKeeperTableArchiveClient { ZooKeeperWatcher watcher = UTIL.getZooKeeperWatcher(); String archivingZNode = ZKTableArchiveClient.getArchiveZNode(UTIL.getConfiguration(), watcher); ZKUtil.createWithParents(watcher, archivingZNode); - rss = mock(RegionServerServices.class); + rss = mock(InternalRegionServerServices.class); } private static void setupConf(Configuration conf) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java index c508b02..1e69d91 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java @@ -53,10 +53,8 @@ import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp; import org.apache.hadoop.hbase.io.FSDataInputStreamWrapper; import org.apache.hadoop.hbase.io.Reference; import org.apache.hadoop.hbase.io.hfile.CacheConfig; -import org.apache.hadoop.hbase.regionserver.HStoreFile; import org.apache.hadoop.hbase.regionserver.InternalScanner; import org.apache.hadoop.hbase.regionserver.KeyValueScanner; -import org.apache.hadoop.hbase.regionserver.Leases; import org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress; import org.apache.hadoop.hbase.regionserver.Region; import org.apache.hadoop.hbase.regionserver.Region.Operation; @@ -142,12 +140,6 @@ public class SimpleRegionObserver implements RegionObserver { @Override public void start(CoprocessorEnvironment e) throws IOException { - // this only makes sure that leases and locks are available to coprocessors - // from external packages - RegionCoprocessorEnvironment re = (RegionCoprocessorEnvironment)e; - Leases leases = re.getRegionServerServices().getLeases(); - leases.createLease(re.getRegion().getRegionInfo().getRegionNameAsString(), 2000, null); - leases.cancelLease(re.getRegion().getRegionInfo().getRegionNameAsString()); } @Override diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorConfiguration.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorConfiguration.java index fb2f20c..63ef7fe 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorConfiguration.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorConfiguration.java @@ -35,9 +35,9 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.master.MasterCoprocessorHost; import org.apache.hadoop.hbase.master.MasterServices; import org.apache.hadoop.hbase.regionserver.HRegion; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost; import org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.testclassification.CoprocessorTests; import org.apache.hadoop.hbase.testclassification.SmallTests; import org.junit.Test; @@ -100,7 +100,7 @@ public class TestCoprocessorConfiguration { HRegion region = mock(HRegion.class); when(region.getRegionInfo()).thenReturn(REGIONINFO); when(region.getTableDesc()).thenReturn(TABLEDESC); - RegionServerServices rsServices = mock(RegionServerServices.class); + InternalRegionServerServices rsServices = mock(InternalRegionServerServices.class); systemCoprocessorLoaded.set(false); tableCoprocessorLoaded.set(false); new RegionCoprocessorHost(region, rsServices, conf); @@ -116,7 +116,7 @@ public class TestCoprocessorConfiguration { @Test public void testRegionServerCoprocessorHostDefaults() throws Exception { Configuration conf = new Configuration(CONF); - RegionServerServices rsServices = mock(RegionServerServices.class); + InternalRegionServerServices rsServices = mock(InternalRegionServerServices.class); systemCoprocessorLoaded.set(false); new RegionServerCoprocessorHost(rsServices, conf); assertEquals("System coprocessors loading default was not honored", @@ -142,7 +142,7 @@ public class TestCoprocessorConfiguration { HRegion region = mock(HRegion.class); when(region.getRegionInfo()).thenReturn(REGIONINFO); when(region.getTableDesc()).thenReturn(TABLEDESC); - RegionServerServices rsServices = mock(RegionServerServices.class); + InternalRegionServerServices rsServices = mock(InternalRegionServerServices.class); systemCoprocessorLoaded.set(false); tableCoprocessorLoaded.set(false); new RegionCoprocessorHost(region, rsServices, conf); @@ -160,7 +160,7 @@ public class TestCoprocessorConfiguration { HRegion region = mock(HRegion.class); when(region.getRegionInfo()).thenReturn(REGIONINFO); when(region.getTableDesc()).thenReturn(TABLEDESC); - RegionServerServices rsServices = mock(RegionServerServices.class); + InternalRegionServerServices rsServices = mock(InternalRegionServerServices.class); systemCoprocessorLoaded.set(false); tableCoprocessorLoaded.set(false); new RegionCoprocessorHost(region, rsServices, conf); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverScannerOpenHook.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverScannerOpenHook.java index b99087d..0a19fb2 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverScannerOpenHook.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverScannerOpenHook.java @@ -23,7 +23,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import java.io.IOException; -import java.util.Collections; import java.util.List; import java.util.NavigableSet; import java.util.concurrent.CountDownLatch; @@ -50,12 +49,12 @@ import org.apache.hadoop.hbase.filter.FilterBase; import org.apache.hadoop.hbase.regionserver.ChunkCreator; import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.regionserver.HRegionServer; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.InternalScanner; import org.apache.hadoop.hbase.regionserver.KeyValueScanner; import org.apache.hadoop.hbase.regionserver.MemStoreLABImpl; import org.apache.hadoop.hbase.regionserver.Region; import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.regionserver.ScanType; import org.apache.hadoop.hbase.regionserver.Store; import org.apache.hadoop.hbase.regionserver.StoreScanner; @@ -228,7 +227,7 @@ public class TestRegionObserverScannerOpenHook { @SuppressWarnings("deprecation") public CompactionCompletionNotifyingRegion(Path tableDir, WAL log, FileSystem fs, Configuration confParam, HRegionInfo info, - HTableDescriptor htd, RegionServerServices rsServices) { + HTableDescriptor htd, InternalRegionServerServices rsServices) { super(tableDir, log, fs, confParam, info, htd, rsServices); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java index 7ac7571..5bcac3a 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java @@ -112,11 +112,11 @@ import org.apache.hadoop.hbase.regionserver.CompactionRequestor; import org.apache.hadoop.hbase.regionserver.FlushRequester; import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.regionserver.HeapMemoryManager; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.Leases; import org.apache.hadoop.hbase.regionserver.MetricsRegionServer; import org.apache.hadoop.hbase.regionserver.Region; import org.apache.hadoop.hbase.regionserver.RegionServerAccounting; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager; import org.apache.hadoop.hbase.regionserver.ServerNonceManager; import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController; @@ -137,7 +137,7 @@ import org.apache.zookeeper.KeeperException; * store that the get pulls from. */ class MockRegionServer implements AdminProtos.AdminService.BlockingInterface, -ClientProtos.ClientService.BlockingInterface, RegionServerServices { +ClientProtos.ClientService.BlockingInterface, InternalRegionServerServices { private final ServerName sn; private final ZooKeeperWatcher zkw; private final Configuration conf; @@ -342,11 +342,6 @@ ClientProtos.ClientService.BlockingInterface, RegionServerServices { } @Override - public void postOpenDeployTasks(Region r) throws KeeperException, IOException { - // TODO Auto-generated method stub - } - - @Override public void postOpenDeployTasks(PostOpenDeployContext context) throws KeeperException, IOException { // TODO Auto-generated method stub @@ -624,17 +619,6 @@ ClientProtos.ClientService.BlockingInterface, RegionServerServices { } @Override - public boolean reportRegionStateTransition(TransitionCode code, HRegionInfo... hris) { - return false; - } - - @Override - public boolean reportRegionStateTransition(TransitionCode code, long openSeqNum, - HRegionInfo... hris) { - return false; - } - - @Override public boolean reportRegionStateTransition(RegionStateTransitionContext context) { return false; } @@ -713,10 +697,6 @@ ClientProtos.ClientService.BlockingInterface, RegionServerServices { } @Override - public void unassign(byte[] regionName) throws IOException { - } - - @Override public RegionServerSpaceQuotaManager getRegionServerSpaceQuotaManager() { return null; } @@ -737,7 +717,10 @@ ClientProtos.ClientService.BlockingInterface, RegionServerServices { @Override public MergeRegionsResponse mergeRegions(RpcController controller, MergeRegionsRequest request) throws ServiceException { - // TODO Auto-generated method stub return null; } + + @Override + public void unassign(byte[] regionName) throws IOException { + } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/SimpleRSProcedureManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/SimpleRSProcedureManager.java index 58efa87..13719cb 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/SimpleRSProcedureManager.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/SimpleRSProcedureManager.java @@ -34,7 +34,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Abortable; import org.apache.hadoop.hbase.DaemonThreadFactory; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher; import org.apache.hadoop.hbase.errorhandling.ForeignException; import org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher; @@ -44,12 +44,12 @@ public class SimpleRSProcedureManager extends RegionServerProcedureManager { private static final Log LOG = LogFactory.getLog(SimpleRSProcedureManager.class); - private RegionServerServices rss; + private InternalRegionServerServices rss; private ProcedureMemberRpcs memberRpcs; private ProcedureMember member; @Override - public void initialize(RegionServerServices rss) throws KeeperException { + public void initialize(InternalRegionServerServices rss) throws KeeperException { this.rss = rss; ZooKeeperWatcher zkw = rss.getZooKeeper(); this.memberRpcs = new ZKProcedureMemberRpcs(zkw, getProcedureSignature()); @@ -197,10 +197,10 @@ public class SimpleRSProcedureManager extends RegionServerProcedureManager { } public class SimpleSubprocedure extends Subprocedure { - private final RegionServerServices rss; + private final InternalRegionServerServices rss; private final SimpleSubprocedurePool taskManager; - public SimpleSubprocedure(RegionServerServices rss, ProcedureMember member, + public SimpleSubprocedure(InternalRegionServerServices rss, ProcedureMember member, ForeignExceptionDispatcher errorListener, SimpleSubprocedurePool taskManager, String name) { super(member, name, errorListener, 500, 60000); LOG.info("Constructing a SimpleSubprocedure."); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java index ef3ce06..4840867 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java @@ -660,7 +660,8 @@ public class TestAtomicOperation { public static class MockHRegion extends HRegion { public MockHRegion(Path tableDir, WAL log, FileSystem fs, Configuration conf, - final HRegionInfo regionInfo, final HTableDescriptor htd, RegionServerServices rsServices) { + final HRegionInfo regionInfo, final HTableDescriptor htd, + InternalRegionServerServices rsServices) { super(tableDir, log, fs, conf, regionInfo, htd, rsServices); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionArchiveConcurrentClose.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionArchiveConcurrentClose.java index d68f07e..fb7887c 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionArchiveConcurrentClose.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionArchiveConcurrentClose.java @@ -90,7 +90,7 @@ public class TestCompactionArchiveConcurrentClose { htd.addFamily(new HColumnDescriptor(fam)); HRegionInfo info = new HRegionInfo(tableName, null, null, false); Region region = initHRegion(htd, info); - RegionServerServices rss = mock(RegionServerServices.class); + InternalRegionServerServices rss = mock(InternalRegionServerServices.class); List regions = new ArrayList<>(); regions.add(region); when(rss.getOnlineRegions()).thenReturn(regions); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionArchiveIOException.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionArchiveIOException.java index 7fb7f21..b2b8341 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionArchiveIOException.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactionArchiveIOException.java @@ -98,7 +98,7 @@ public class TestCompactionArchiveIOException { htd.addFamily(new HColumnDescriptor(fam)); HRegionInfo info = new HRegionInfo(tableName, null, null, false); final HRegion region = initHRegion(htd, info); - RegionServerServices rss = mock(RegionServerServices.class); + InternalRegionServerServices rss = mock(InternalRegionServerServices.class); List regions = new ArrayList<>(); regions.add(region); when(rss.getOnlineRegions()).thenReturn(regions); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestFailedAppendAndSync.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestFailedAppendAndSync.java index 24e850d..7d0d828 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestFailedAppendAndSync.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestFailedAppendAndSync.java @@ -162,7 +162,7 @@ public class TestFailedAppendAndSync { when(server.getConfiguration()).thenReturn(CONF); when(server.isStopped()).thenReturn(false); when(server.isAborted()).thenReturn(false); - RegionServerServices services = mock(RegionServerServices.class); + InternalRegionServerServices services = mock(InternalRegionServerServices.class); // OK. Now I have my mocked up Server and RegionServerServices and my dodgy WAL, go ahead with // the test. FileSystem fs = FileSystem.get(CONF); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java index 4f46c88..4c55223 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java @@ -5687,7 +5687,8 @@ public class TestHRegion { @Test public void testOpenRegionWrittenToWAL() throws Exception { final ServerName serverName = ServerName.valueOf(name.getMethodName(), 100, 42); - final RegionServerServices rss = spy(TEST_UTIL.createMockRegionServerService(serverName)); + final InternalRegionServerServices rss = spy( + TEST_UTIL.createMockRegionServerService(serverName)); HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(name.getMethodName())); htd.addFamily(new HColumnDescriptor(fam1)); @@ -5757,7 +5758,7 @@ public class TestHRegion { static class HRegionWithSeqId extends HRegion { public HRegionWithSeqId(final Path tableDir, final WAL wal, final FileSystem fs, final Configuration confParam, final HRegionInfo regionInfo, - final HTableDescriptor htd, final RegionServerServices rsServices) { + final HTableDescriptor htd, final InternalRegionServerServices rsServices) { super(tableDir, wal, fs, confParam, regionInfo, htd, rsServices); } @Override @@ -5790,7 +5791,8 @@ public class TestHRegion { public void testOpenRegionWrittenToWALForLogReplay() throws Exception { // similar to the above test but with distributed log replay final ServerName serverName = ServerName.valueOf(name.getMethodName(), 100, 42); - final RegionServerServices rss = spy(TEST_UTIL.createMockRegionServerService(serverName)); + final InternalRegionServerServices rss = spy( + TEST_UTIL.createMockRegionServerService(serverName)); HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(name.getMethodName())); htd.addFamily(new HColumnDescriptor(fam1)); @@ -5899,7 +5901,8 @@ public class TestHRegion { @Test public void testCloseRegionWrittenToWAL() throws Exception { final ServerName serverName = ServerName.valueOf("testCloseRegionWrittenToWAL", 100, 42); - final RegionServerServices rss = spy(TEST_UTIL.createMockRegionServerService(serverName)); + final InternalRegionServerServices rss = spy( + TEST_UTIL.createMockRegionServerService(serverName)); HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(name.getMethodName())); htd.addFamily(new HColumnDescriptor(fam1)); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java index 5467c3f..9d1d42d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java @@ -129,7 +129,7 @@ public class TestHRegionReplayEvents { private Path rootDir; private HTableDescriptor htd; private long time; - private RegionServerServices rss; + private InternalRegionServerServices rss; private HRegionInfo primaryHri, secondaryHri; private HRegion primaryRegion, secondaryRegion; private WALFactory wals; @@ -167,7 +167,7 @@ public class TestHRegionReplayEvents { walSecondary = wals.getWAL(secondaryHri.getEncodedNameAsBytes(), secondaryHri.getTable().getNamespace()); - rss = mock(RegionServerServices.class); + rss = mock(InternalRegionServerServices.class); when(rss.getServerName()).thenReturn(ServerName.valueOf("foo", 1, 1)); when(rss.getConfiguration()).thenReturn(CONF); when(rss.getRegionServerAccounting()).thenReturn(new RegionServerAccounting(CONF)); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerAbort.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerAbort.java index 784c079..cec66b1 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerAbort.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerAbort.java @@ -192,12 +192,12 @@ public class TestRegionServerAbort { public static class ErrorThrowingHRegion extends HRegion { public ErrorThrowingHRegion(Path tableDir, WAL wal, FileSystem fs, Configuration confParam, HRegionInfo regionInfo, HTableDescriptor htd, - RegionServerServices rsServices) { + InternalRegionServerServices rsServices) { super(tableDir, wal, fs, confParam, regionInfo, htd, rsServices); } public ErrorThrowingHRegion(HRegionFileSystem fs, WAL wal, Configuration confParam, - HTableDescriptor htd, RegionServerServices rsServices) { + HTableDescriptor htd, InternalRegionServerServices rsServices) { super(fs, wal, confParam, htd, rsServices); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.java index 89f7589..a9ad8cd 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.java @@ -102,7 +102,7 @@ public class TestRegionSplitPolicy { IncreasingToUpperBoundRegionSplitPolicy.class.getName()); // Now make it so the mock region has a RegionServerService that will // return 'online regions'. - RegionServerServices rss = Mockito.mock(RegionServerServices.class); + InternalRegionServerServices rss = Mockito.mock(InternalRegionServerServices.class); final List regions = new ArrayList<>(); Mockito.when(rss.getOnlineRegions(TABLENAME)).thenReturn(regions); Mockito.when(mockRegion.getRegionServerServices()).thenReturn(rss); @@ -161,7 +161,7 @@ public class TestRegionSplitPolicy { conf.setLong("hbase.busy.policy.minAge", 1000000L); conf.setFloat("hbase.busy.policy.blockedRequests", 0.1f); - RegionServerServices rss = Mockito.mock(RegionServerServices.class); + InternalRegionServerServices rss = Mockito.mock(InternalRegionServerServices.class); final List regions = new ArrayList<>(); Mockito.when(rss.getOnlineRegions(TABLENAME)).thenReturn(regions); Mockito.when(mockRegion.getRegionServerServices()).thenReturn(rss); 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 bf3f1e0..de710d4 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 @@ -445,12 +445,12 @@ public class TestScannerHeartbeatMessages { private static volatile boolean sleepBetweenColumnFamilies = false; public HeartbeatHRegion(Path tableDir, WAL wal, FileSystem fs, Configuration confParam, - HRegionInfo regionInfo, HTableDescriptor htd, RegionServerServices rsServices) { + HRegionInfo regionInfo, HTableDescriptor htd, InternalRegionServerServices rsServices) { super(tableDir, wal, fs, confParam, regionInfo, htd, rsServices); } public HeartbeatHRegion(HRegionFileSystem fs, WAL wal, Configuration confParam, - HTableDescriptor htd, RegionServerServices rsServices) { + HTableDescriptor htd, InternalRegionServerServices rsServices) { super(fs, wal, confParam, htd, rsServices); } 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 18df013..a226f73 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 @@ -239,7 +239,7 @@ public class TestSplitLogWorker { SplitLogCounters.resetCounters(); final String TATAS = "tatas"; final ServerName RS = ServerName.valueOf("rs,1,1"); - RegionServerServices mockedRS = getRegionServer(RS); + InternalRegionServerServices mockedRS = getRegionServer(RS); zkw.getRecoverableZooKeeper().create(ZKSplitLog.getEncodedNodeName(zkw, TATAS), new SplitLogTask.Unassigned(ServerName.valueOf("mgr,1,1"), this.mode).toByteArray(), Ids.OPEN_ACL_UNSAFE, @@ -279,8 +279,8 @@ public class TestSplitLogWorker { zkw.getRecoverableZooKeeper().create(ZKSplitLog.getEncodedNodeName(zkw, TRFT), new SplitLogTask.Unassigned(MANAGER, this.mode).toByteArray(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); - RegionServerServices mockedRS1 = getRegionServer(SVR1); - RegionServerServices mockedRS2 = getRegionServer(SVR2); + InternalRegionServerServices mockedRS1 = getRegionServer(SVR1); + InternalRegionServerServices mockedRS2 = getRegionServer(SVR2); SplitLogWorker slw1 = new SplitLogWorker(ds, TEST_UTIL.getConfiguration(), mockedRS1, neverEndingTask); SplitLogWorker slw2 = @@ -309,7 +309,7 @@ public class TestSplitLogWorker { SplitLogCounters.resetCounters(); final ServerName SRV = ServerName.valueOf("tpt_svr,1,1"); final String PATH = ZKSplitLog.getEncodedNodeName(zkw, "tpt_task"); - RegionServerServices mockedRS = getRegionServer(SRV); + InternalRegionServerServices mockedRS = getRegionServer(SRV); SplitLogWorker slw = new SplitLogWorker(ds, TEST_UTIL.getConfiguration(), mockedRS, neverEndingTask); slw.start(); @@ -342,7 +342,7 @@ public class TestSplitLogWorker { SplitLogCounters.resetCounters(); final ServerName SRV = ServerName.valueOf("tmt_svr,1,1"); final String PATH1 = ZKSplitLog.getEncodedNodeName(zkw, "tmt_task"); - RegionServerServices mockedRS = getRegionServer(SRV); + InternalRegionServerServices mockedRS = getRegionServer(SRV); SplitLogWorker slw = new SplitLogWorker(ds, TEST_UTIL.getConfiguration(), mockedRS, neverEndingTask); slw.start(); @@ -385,7 +385,7 @@ public class TestSplitLogWorker { LOG.info("testRescan"); SplitLogCounters.resetCounters(); final ServerName SRV = ServerName.valueOf("svr,1,1"); - RegionServerServices mockedRS = getRegionServer(SRV); + InternalRegionServerServices mockedRS = getRegionServer(SRV); slw = new SplitLogWorker(ds, TEST_UTIL.getConfiguration(), mockedRS, neverEndingTask); slw.start(); Thread.yield(); // let the worker start @@ -441,7 +441,7 @@ public class TestSplitLogWorker { final int maxTasks = 3; Configuration testConf = HBaseConfiguration.create(TEST_UTIL.getConfiguration()); testConf.setInt("hbase.regionserver.wal.max.splitters", maxTasks); - RegionServerServices mockedRS = getRegionServer(RS); + InternalRegionServerServices mockedRS = getRegionServer(RS); for (int i = 0; i < maxTasks; i++) { zkw.getRecoverableZooKeeper().create(ZKSplitLog.getEncodedNodeName(zkw, TATAS + i), new SplitLogTask.Unassigned(ServerName.valueOf("mgr,1,1"), this.mode).toByteArray(), @@ -477,7 +477,7 @@ public class TestSplitLogWorker { final int maxTasks = 3; Configuration testConf = HBaseConfiguration.create(TEST_UTIL.getConfiguration()); testConf.setInt("hbase.regionserver.wal.max.splitters", maxTasks); - RegionServerServices mockedRS = getRegionServer(RS); + InternalRegionServerServices mockedRS = getRegionServer(RS); // create two RS nodes String rsPath = ZKUtil.joinZNode(zkw.znodePaths.rsZNode, RS.getServerName()); @@ -514,9 +514,9 @@ public class TestSplitLogWorker { * @param server * @return */ - private RegionServerServices getRegionServer(ServerName name) { + private InternalRegionServerServices getRegionServer(ServerName name) { - RegionServerServices mockedServer = mock(RegionServerServices.class); + InternalRegionServerServices mockedServer = mock(InternalRegionServerServices.class); when(mockedServer.getConfiguration()).thenReturn(TEST_UTIL.getConfiguration()); when(mockedServer.getServerName()).thenReturn(name); when(mockedServer.getZooKeeper()).thenReturn(zkw); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java index 51260a6..0c217ec 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java @@ -202,7 +202,7 @@ public class TestWALLockup { Mockito.when(server.getConfiguration()).thenReturn(CONF); Mockito.when(server.isStopped()).thenReturn(false); Mockito.when(server.isAborted()).thenReturn(false); - RegionServerServices services = Mockito.mock(RegionServerServices.class); + InternalRegionServerServices services = Mockito.mock(InternalRegionServerServices.class); // OK. Now I have my mocked up Server & RegionServerServices and dodgy WAL, go ahead with test. FileSystem fs = FileSystem.get(CONF); @@ -372,7 +372,7 @@ public class TestWALLockup { // Mocked up server and regionserver services. Needed below. Server server = new DummyServer(CONF, ServerName.valueOf( "hostname1.example.org", 1234, 1L).toString()); - RegionServerServices services = Mockito.mock(RegionServerServices.class); + InternalRegionServerServices services = Mockito.mock(InternalRegionServerServices.class); CONF.setLong("hbase.regionserver.hlog.sync.timeout", 10000); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCompactedHFilesDischarger.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCompactedHFilesDischarger.java index a71e766..dacefa2 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCompactedHFilesDischarger.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCompactedHFilesDischarger.java @@ -44,9 +44,9 @@ import org.apache.hadoop.hbase.regionserver.CompactedHFilesDischarger; import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.regionserver.HStore; import org.apache.hadoop.hbase.regionserver.HStoreFile; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.Region; import org.apache.hadoop.hbase.regionserver.RegionScanner; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.regionserver.Store; import org.apache.hadoop.hbase.regionserver.StoreFile; import org.apache.hadoop.hbase.testclassification.MediumTests; @@ -67,7 +67,7 @@ public class TestCompactedHFilesDischarger { private static CountDownLatch latch = new CountDownLatch(3); private static AtomicInteger counter = new AtomicInteger(0); private static AtomicInteger scanCompletedCounter = new AtomicInteger(0); - private RegionServerServices rss; + private InternalRegionServerServices rss; @Before public void setUp() throws Exception { @@ -77,7 +77,7 @@ public class TestCompactedHFilesDischarger { HRegionInfo info = new HRegionInfo(tableName, null, null, false); Path path = testUtil.getDataTestDir(getClass().getSimpleName()); region = HBaseTestingUtility.createRegionAndWAL(info, path, testUtil.getConfiguration(), htd); - rss = mock(RegionServerServices.class); + rss = mock(InternalRegionServerServices.class); List regions = new ArrayList<>(1); regions.add(region); when(rss.getOnlineRegions()).thenReturn(regions); 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 be725fe..5a5e566 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 @@ -59,9 +59,7 @@ import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Table; -import org.apache.hadoop.hbase.master.HMaster; import org.apache.hadoop.hbase.monitoring.MonitoredTask; -import org.apache.hadoop.hbase.regionserver.CompactingMemStore; import org.apache.hadoop.hbase.shaded.protobuf.generated.ZooKeeperProtos.SplitLogTask.RecoveryMode; import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine; import org.apache.hadoop.hbase.regionserver.DefaultStoreFlusher; @@ -70,12 +68,12 @@ import org.apache.hadoop.hbase.regionserver.FlushRequester; import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.regionserver.HRegionServer; import org.apache.hadoop.hbase.regionserver.HStore; +import org.apache.hadoop.hbase.regionserver.InternalRegionServerServices; import org.apache.hadoop.hbase.regionserver.MemStoreSnapshot; import org.apache.hadoop.hbase.regionserver.MemstoreSize; import org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl; import org.apache.hadoop.hbase.regionserver.Region; import org.apache.hadoop.hbase.regionserver.RegionScanner; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.regionserver.Store; import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController; import org.apache.hadoop.hbase.security.User; @@ -670,7 +668,7 @@ public abstract class AbstractTestWALReplay { // of the families during the load of edits so its seqid is not same as // others to test we do right thing when different seqids. WAL wal = createWAL(this.conf, hbaseRootDir, logName); - RegionServerServices rsServices = Mockito.mock(RegionServerServices.class); + InternalRegionServerServices rsServices = Mockito.mock(InternalRegionServerServices.class); Mockito.doReturn(false).when(rsServices).isAborted(); when(rsServices.getServerName()).thenReturn(ServerName.valueOf("foo", 10, 10)); Configuration customConf = new Configuration(this.conf);