HBASE-10314 Add Chaos Monkey that doesn't touch the master
This commit is contained in:
parent
dc20ab3bc9
commit
9d50488f20
|
@ -67,12 +67,14 @@ public abstract class MonkeyFactory {
|
|||
public static final String SLOW_DETERMINISTIC = "slowDeterministic";
|
||||
public static final String UNBALANCE = "unbalance";
|
||||
public static final String SERVER_KILLING = "serverKilling";
|
||||
public static final String STRESS_AM = "stressAM";
|
||||
|
||||
public static Map<String, MonkeyFactory> FACTORIES = ImmutableMap.<String,MonkeyFactory>builder()
|
||||
.put(CALM, new CalmMonkeyFactory())
|
||||
.put(SLOW_DETERMINISTIC, new SlowDeterministicMonkeyFactory())
|
||||
.put(UNBALANCE, new UnbalanceMonkeyFactory())
|
||||
.put(SERVER_KILLING, new ServerKillingMonkeyFactory())
|
||||
.put(STRESS_AM, new StressAssignmentManagerMonkeyFactory())
|
||||
.build();
|
||||
|
||||
public static MonkeyFactory getFactory(String factoryName) {
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
package org.apache.hadoop.hbase.chaos.factories;
|
||||
|
||||
import org.apache.hadoop.hbase.chaos.actions.Action;
|
||||
import org.apache.hadoop.hbase.chaos.actions.AddColumnAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.BatchRestartRsAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.CompactRandomRegionOfTableAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.CompactTableAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.DumpClusterStatusAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.FlushRandomRegionOfTableAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.FlushTableAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.MergeRandomAdjacentRegionsOfTableAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.MoveRandomRegionOfTableAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.MoveRegionsOfTableAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.RemoveColumnAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.RestartRandomRsAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.RestartRsHoldingMetaAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.RollingBatchRestartRsAction;
|
||||
import org.apache.hadoop.hbase.chaos.actions.SplitRandomRegionOfTableAction;
|
||||
import org.apache.hadoop.hbase.chaos.monkies.ChaosMonkey;
|
||||
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
|
||||
import org.apache.hadoop.hbase.chaos.policies.CompositeSequentialPolicy;
|
||||
import org.apache.hadoop.hbase.chaos.policies.DoActionsOncePolicy;
|
||||
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
|
||||
|
||||
public class StressAssignmentManagerMonkeyFactory extends MonkeyFactory {
|
||||
@Override
|
||||
public ChaosMonkey build() {
|
||||
|
||||
// Actions that could slow down region movement.
|
||||
// These could also get regions stuck if there are issues.
|
||||
Action[] actions1 = new Action[] {
|
||||
new CompactTableAction(tableName, 0.5f),
|
||||
new CompactRandomRegionOfTableAction(tableName, 0.6f),
|
||||
new FlushTableAction(tableName),
|
||||
new FlushRandomRegionOfTableAction(tableName)
|
||||
};
|
||||
|
||||
Action[] actions2 = new Action[] {
|
||||
new SplitRandomRegionOfTableAction(tableName),
|
||||
new MergeRandomAdjacentRegionsOfTableAction(tableName),
|
||||
new AddColumnAction(tableName),
|
||||
new RemoveColumnAction(tableName, columnFamilies),
|
||||
new MoveRegionsOfTableAction(800, 1600, tableName),
|
||||
new MoveRandomRegionOfTableAction(800, tableName),
|
||||
new RestartRandomRsAction(60000),
|
||||
new BatchRestartRsAction(5000, 0.5f),
|
||||
new RollingBatchRestartRsAction(5000, 1.0f),
|
||||
new RestartRsHoldingMetaAction(35000)
|
||||
};
|
||||
|
||||
// Action to log more info for debugging
|
||||
Action[] actions3 = new Action[] {
|
||||
new DumpClusterStatusAction()
|
||||
};
|
||||
|
||||
return new PolicyBasedChaosMonkey(util,
|
||||
new PeriodicRandomActionPolicy(90 * 1000, actions1),
|
||||
new CompositeSequentialPolicy(
|
||||
new DoActionsOncePolicy(90 * 1000, actions2),
|
||||
new PeriodicRandomActionPolicy(90 * 1000, actions2)),
|
||||
new PeriodicRandomActionPolicy(90 * 1000, actions3)
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue