@Override public ChaosMonkey build() { loadProperties(); // Destructive actions to mess things around. Action[] actions1 = new Action[] { new RestartActiveMasterAction(restartActiveMasterSleepTime), }; // Action to log more info for debugging Action[] actions2 = new Action[] { new DumpClusterStatusAction() }; return new PolicyBasedChaosMonkey(util, new PeriodicRandomActionPolicy(action1Period, actions1), new PeriodicRandomActionPolicy(action2Period, actions2)); }
@Override public ChaosMonkey build() { // Destructive actions to mess things around. Cannot run batch restart Action[] actions1 = new Action[] { new RestartRandomRsExceptMetaAction(60000), new RestartActiveMasterAction(5000), new RollingBatchRestartRsExceptMetaAction(5000, 1.0f, 2), //only allow 2 servers to be dead new ForceBalancerAction() }; // Action to log more info for debugging Action[] actions2 = new Action[] { new DumpClusterStatusAction() }; return new PolicyBasedChaosMonkey(util, new CompositeSequentialPolicy( new DoActionsOncePolicy(60 * 1000, actions1), new PeriodicRandomActionPolicy(60 * 1000, actions1)), new PeriodicRandomActionPolicy(60 * 1000, actions2)); }
@Override public ChaosMonkey build() { // Destructive actions to mess things around. Cannot run batch restart. Action[] actions1 = new Action[]{ new RestartRandomRsExceptMetaAction(60000), new RestartActiveMasterAction(5000), new RollingBatchRestartRsExceptMetaAction(5000, 1.0f, 2), // only allow 2 servers to be dead. new ForceBalancerAction(), new RestartRandomDataNodeAction(60000), new RestartRandomZKNodeAction(60000) }; // Action to log more info for debugging Action[] actions2 = new Action[]{ new DumpClusterStatusAction() }; return new PolicyBasedChaosMonkey(util, new CompositeSequentialPolicy( new DoActionsOncePolicy(60 * 1000, actions1), new PeriodicRandomActionPolicy(60 * 1000, actions1)), new PeriodicRandomActionPolicy(60 * 1000, actions2)); }
@Override public ChaosMonkey build() { Action[] actions1 = new Action[] { new CompactTableAction(tableName, MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD), new CompactRandomRegionOfTableAction(tableName, MonkeyConstants.DEFAULT_COMPACT_RANDOM_REGION_RATIO), new FlushTableAction(tableName), new FlushRandomRegionOfTableAction(tableName), new MoveRandomRegionOfTableAction(tableName) }; Action[] actions2 = new Action[] { new SplitRandomRegionOfTableAction(tableName), new MergeRandomAdjacentRegionsOfTableAction(tableName), new SnapshotTableAction(tableName), new AddColumnAction(tableName), new RemoveColumnAction(tableName, columnFamilies), new ChangeEncodingAction(tableName), new ChangeCompressionAction(tableName), new ChangeBloomFilterAction(tableName), new ChangeVersionsAction(tableName) }; Action[] actions3 = new Action[] { new MoveRegionsOfTableAction(MonkeyConstants.DEFAULT_MOVE_REGIONS_SLEEP_TIME, MonkeyConstants.DEFAULT_MOVE_REGIONS_MAX_TIME, tableName), new MoveRandomRegionOfTableAction(MonkeyConstants.DEFAULT_RESTART_ACTIVE_MASTER_SLEEP_TIME, tableName), }; Action[] actions4 = new Action[] { new DumpClusterStatusAction() }; return new PolicyBasedChaosMonkey(util, new TwoConcurrentActionPolicy(MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD, actions1, actions2), new PeriodicRandomActionPolicy(MonkeyConstants.DEFAULT_PERIODIC_ACTION2_PERIOD,actions3), new PeriodicRandomActionPolicy(MonkeyConstants.DEFAULT_PERIODIC_ACTION4_PERIOD,actions4)); }
@Override public ChaosMonkey build() { // Actions such as compact/flush a table/region, // move one region around. They are not so destructive, // can be executed more frequently. Action[] actions1 = new Action[] { new CompactTableAction(tableName, 0.5f), new CompactRandomRegionOfTableAction(tableName, 0.6f), new FlushTableAction(tableName), new FlushRandomRegionOfTableAction(tableName), new MoveRandomRegionOfTableAction(tableName) }; // Actions such as split/merge/snapshot. // They should not cause data loss, or unreliability // such as region stuck in transition. Action[] actions2 = new Action[] { new SplitRandomRegionOfTableAction(tableName), new MergeRandomAdjacentRegionsOfTableAction(tableName), new SnapshotTableAction(tableName), new AddColumnAction(tableName), new RemoveColumnAction(tableName, columnFamilies), new ChangeEncodingAction(tableName), new ChangeCompressionAction(tableName), new ChangeBloomFilterAction(tableName), new ChangeVersionsAction(tableName) }; // Destructive actions to mess things around. Action[] actions3 = new Action[] { new MoveRegionsOfTableAction(800, tableName), new MoveRandomRegionOfTableAction(800, tableName), new RestartRandomRsAction(60000), new BatchRestartRsAction(5000, 0.5f), new RestartActiveMasterAction(5000), new RollingBatchRestartRsAction(5000, 1.0f), new RestartRsHoldingMetaAction(35000) }; // Action to log more info for debugging Action[] actions4 = new Action[] { new DumpClusterStatusAction() }; return new PolicyBasedChaosMonkey(util, new PeriodicRandomActionPolicy(60 * 1000, actions1), new PeriodicRandomActionPolicy(90 * 1000, actions2), new CompositeSequentialPolicy( new DoActionsOncePolicy(150 * 1000, actions3), new PeriodicRandomActionPolicy(150 * 1000, actions3)), new PeriodicRandomActionPolicy(90 * 1000, actions4)); }