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
Modifier and TypeClassDescriptionclass
(package private) static class
We use the FlushTableSubprocedurePool, a class specific thread pool instead ofExecutorService
. -
Field Summary
Modifier and TypeFieldDescriptionprivate static final String
private static final int
static final int
static final String
private static final long
static final String
static final long
static final String
private static final org.slf4j.Logger
private ProcedureMember
private ProcedureMemberRpcs
private RegionServerServices
-
Constructor Summary
ConstructorDescriptionRegionServerFlushTableProcedureManager
(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.void
Initialize this region server flush procedure manager Uses a zookeeper based member controller.void
start()
Start accepting flush table requests.void
stop
(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:
start
in classRegionServerProcedureManager
-
stop
Close this and all running tasks- Specified by:
stop
in 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.- Parameters:
table
- table to flushfamilies
- column families within a table- 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:
initialize
in classRegionServerProcedureManager
- Parameters:
rss
- region server- Throws:
org.apache.zookeeper.KeeperException
- if the zookeeper cannot be reached
-
getProcedureSignature
Description copied from class:ProcedureManager
Return 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:
getProcedureSignature
in classProcedureManager
-