Package org.apache.hadoop.hbase.mttr
Class IntegrationTestMTTR
java.lang.Object
org.apache.hadoop.hbase.mttr.IntegrationTestMTTR
Integration test that should benchmark how fast HBase can recover from failures. This test starts
different threads:
- Load Test Tool.
This runs so that all RegionServers will have some load and WALs will be full. - Scan thread.
This thread runs a very short scan over and over again recording how log it takes to respond. The longest response is assumed to be the time it took to recover. - Put thread.
This thread just like the scan thread except it does a very small put. - Admin thread.
This thread will continually go to the master to try and get the cluster status. Just like the put and scan threads, the time to respond is recorded. - Chaos Monkey thread.
This thread runs a ChaosMonkey.Action.
- Restart the RegionServer holding meta.
- Move the Regions of meta.
- Restart the RegionServer holding the table the scan and put threads are targeting.
- Move the Regions of the table used by the scan and put threads.
- Restart the master.
-
Nested Class Summary
Modifier and TypeClassDescription(package private) static class
(package private) static class
Callable that will keep going to the master for cluster status.static class
Callable used to make sure the cluster has some load on it.(package private) static class
Callable that will keep putting small amounts of data into a table until the future supplied returns.(package private) static class
Callable that will keep scanning for small amounts of data until the supplied future returns.(package private) static class
Base class for actions that need to record the time needed to recover from a failure.private static class
Class to store results of TimingCallable. -
Field Summary
Modifier and TypeFieldDescriptionprivate static ExecutorService
Executor for test threads.private static final byte[]
Constants.private static org.apache.hadoop.hbase.TableName
private static LoadTestTool
The load test tool used to create load and make sure that WALs aren't empty.private static final org.slf4j.Logger
private static Action
private static Action
private static Action
private static Action
private static Action
All of the chaos monkey actions used.private static final long
private static final String
private static long
private static org.apache.hadoop.hbase.TableName
Configurable table names.private static IntegrationTestingUtility
Util to get at the cluster. -
Constructor Summary
-
Method Summary
-
Field Details
-
FAMILY
Constants. -
LOG
-
sleepTime
-
SLEEP_TIME_KEY
- See Also:
-
SLEEP_TIME_DEFAULT
- See Also:
-
tableName
Configurable table names. -
loadTableName
-
util
Util to get at the cluster. -
executorService
Executor for test threads. -
restartRSAction
All of the chaos monkey actions used. -
restartMetaAction
-
moveMetaRegionsAction
-
moveRegionAction
-
restartMasterAction
-
loadTool
The load test tool used to create load and make sure that WALs aren't empty.
-
-
Constructor Details
-
IntegrationTestMTTR
public IntegrationTestMTTR()
-
-
Method Details
-
setUp
- Throws:
Exception
-
setupActions
- Throws:
IOException
-
setupTables
- Throws:
IOException
-
after
- Throws:
IOException
-
tablesOnMaster
-
testRestartRsHoldingTable
- Throws:
Exception
-
testKillRsHoldingMeta
- Throws:
Exception
-
testMoveMeta
- Throws:
Exception
-
testMoveRegion
- Throws:
Exception
-
testRestartMaster
- Throws:
Exception
-
run
- Throws:
Exception
-