Class RegionServerFlushTableProcedureManager
java.lang.Object
org.apache.hadoop.hbase.procedure.ProcedureManager
org.apache.hadoop.hbase.procedure.RegionServerProcedureManager
org.apache.hadoop.hbase.procedure.flush.RegionServerFlushTableProcedureManager
@LimitedPrivate("Configuration")
public class RegionServerFlushTableProcedureManager
extends RegionServerProcedureManager
This manager class handles flushing of the regions for table on a
HRegionServer.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass(package private) static classWe use the FlushTableSubprocedurePool, a class specific thread pool instead ofExecutorService. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringprivate static final intstatic final intstatic final Stringprivate static final longstatic final Stringstatic final longstatic final Stringprivate static final org.slf4j.Loggerprivate ProcedureMemberprivate ProcedureMemberRpcsprivate RegionServerServices -
Constructor Summary
ConstructorsConstructorDescriptionRegionServerFlushTableProcedureManager(org.apache.hadoop.conf.Configuration conf, HRegionServer server, ProcedureMemberRpcs memberRpc, ProcedureMember procMember) Exposed for testing. -
Method Summary
Modifier and TypeMethodDescriptionbuildSubprocedure(String table, List<String> families) If in a running state, creates the specified subprocedure to flush table regions.Return the unique signature of the procedure.getRegionsToFlush(String table) Get the list of regions to flush for the table on this server It is possible that if a region moves somewhere between the calls we'll miss the region.voidInitialize this region server flush procedure manager Uses a zookeeper based member controller.voidstart()Start accepting flush table requests.voidstop(boolean force) Close this and all running tasksMethods inherited from class org.apache.hadoop.hbase.procedure.ProcedureManager
equals, hashCode
-
Field Details
-
LOG
-
CONCURENT_FLUSH_TASKS_KEY
- See Also:
-
DEFAULT_CONCURRENT_FLUSH_TASKS
- See Also:
-
FLUSH_REQUEST_THREADS_KEY
- See Also:
-
FLUSH_REQUEST_THREADS_DEFAULT
- See Also:
-
FLUSH_TIMEOUT_MILLIS_KEY
- See Also:
-
FLUSH_TIMEOUT_MILLIS_DEFAULT
- See Also:
-
FLUSH_REQUEST_WAKE_MILLIS_KEY
- See Also:
-
FLUSH_REQUEST_WAKE_MILLIS_DEFAULT
- See Also:
-
rss
-
memberRpcs
-
member
-
-
Constructor Details
-
RegionServerFlushTableProcedureManager
RegionServerFlushTableProcedureManager(org.apache.hadoop.conf.Configuration conf, HRegionServer server, ProcedureMemberRpcs memberRpc, ProcedureMember procMember) Exposed for testing.- Parameters:
conf- HBase configuration.server- region server.memberRpc- use specified memberRpc instanceprocMember- use specified ProcedureMember
-
RegionServerFlushTableProcedureManager
-
-
Method Details
-
start
Start accepting flush table requests.- Specified by:
startin classRegionServerProcedureManager
-
stop
Close this and all running tasks- Specified by:
stopin classRegionServerProcedureManager- Parameters:
force- forcefully stop all running tasks- Throws:
IOException
-
buildSubprocedure
If in a running state, creates the specified subprocedure to flush table regions. Because this gets the local list of regions to flush and not the set the master had, there is a possibility of a race where regions may be missed.- Returns:
- Subprocedure to submit to the ProcedureMember.
-
getRegionsToFlush
Get the list of regions to flush for the table on this server It is possible that if a region moves somewhere between the calls we'll miss the region.- Returns:
- the list of online regions. Empty list is returned if no regions.
- Throws:
IOException
-
initialize
Initialize this region server flush procedure manager Uses a zookeeper based member controller.- Specified by:
initializein classRegionServerProcedureManager- Parameters:
rss- region server- Throws:
org.apache.zookeeper.KeeperException- if the zookeeper cannot be reached
-
getProcedureSignature
Description copied from class:ProcedureManagerReturn the unique signature of the procedure. This signature uniquely identifies the procedure. By default, this signature is the string used in the procedure controller (i.e., the root ZK node name for the procedure)- Specified by:
getProcedureSignaturein classProcedureManager
-