This is an automated email from the ASF dual-hosted git repository.

Apache9 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 67a4377c344 HBASE-30046 Make minHFileSize and jitter configurable in 
DecreaseMaxHFileSizeAction (#8319)
67a4377c344 is described below

commit 67a4377c3445e16312113c756455c241492cde57
Author: Duo Zhang <[email protected]>
AuthorDate: Tue Jun 9 22:57:33 2026 +0800

    HBASE-30046 Make minHFileSize and jitter configurable in 
DecreaseMaxHFileSizeAction (#8319)
    
    Signed-off-by: Peng Lu <[email protected]>
    Reviewed-by: Jinhyuk Kim <[email protected]>
---
 .../chaos/actions/DecreaseMaxHFileSizeAction.java  |  14 +-
 ...ConfigurableSlowDeterministicMonkeyFactory.java |   2 +-
 .../chaos/factories/DataIssuesMonkeyFactory.java   |  11 --
 .../factories/DistributedIssuesMonkeyFactory.java  |  54 ------
 .../factories/MasterKillingMonkeyFactory.java      |  19 --
 .../chaos/factories/MobNoKillMonkeyFactory.java    |  30 ++--
 .../MobSlowDeterministicMonkeyFactory.java         |  71 --------
 .../hbase/chaos/factories/MonkeyConstants.java     |   4 +
 .../hbase/chaos/factories/MonkeyFactory.java       | 193 ++++++++++++++++++++-
 .../ServerAndDependenciesKillingMonkeyFactory.java |  50 +-----
 .../factories/ServerKillingMonkeyFactory.java      |  34 +---
 .../factories/SlowDeterministicMonkeyFactory.java  |  93 +---------
 .../StressAssignmentManagerMonkeyFactory.java      |  45 ++---
 .../chaos/factories/UnbalanceMonkeyFactory.java    |  27 ---
 14 files changed, 236 insertions(+), 411 deletions(-)

diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DecreaseMaxHFileSizeAction.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DecreaseMaxHFileSizeAction.java
index 1162af3ce3b..74aa67ae240 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DecreaseMaxHFileSizeAction.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DecreaseMaxHFileSizeAction.java
@@ -28,16 +28,20 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class DecreaseMaxHFileSizeAction extends Action {
-  private static final Logger LOG = 
LoggerFactory.getLogger(DecreaseMaxHFileSizeAction.class);
 
-  private static final long minFileSize = 1024 * 1024 * 1024L;
+  private static final Logger LOG = 
LoggerFactory.getLogger(DecreaseMaxHFileSizeAction.class);
 
   private final long sleepTime;
+  private final long minHFileSize;
+  private final float hfileSizeJitter;
   private final TableName tableName;
   private Admin admin;
 
-  public DecreaseMaxHFileSizeAction(long sleepTime, TableName tableName) {
+  public DecreaseMaxHFileSizeAction(long sleepTime, long minHFileSize, float 
hfileSizeJitter,
+    TableName tableName) {
     this.sleepTime = sleepTime;
+    this.minHFileSize = minHFileSize;
+    this.hfileSizeJitter = hfileSizeJitter;
     this.tableName = tableName;
   }
 
@@ -72,7 +76,9 @@ public class DecreaseMaxHFileSizeAction extends Action {
 
     // We don't want to go too far below 1gb.
     // So go to about 1gb +/- 512 on each side.
-    newValue = Math.max(minFileSize, newValue) - (512 - 
ThreadLocalRandom.current().nextInt(1024));
+    newValue = Math.max(minHFileSize, newValue);
+    newValue +=
+      newValue * ThreadLocalRandom.current().nextDouble(-hfileSizeJitter, 
hfileSizeJitter);
 
     // Change the table descriptor.
     TableDescriptor modifiedTable =
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ConfigurableSlowDeterministicMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ConfigurableSlowDeterministicMonkeyFactory.java
index e71c0465629..360706c8ebb 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ConfigurableSlowDeterministicMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ConfigurableSlowDeterministicMonkeyFactory.java
@@ -87,7 +87,7 @@ public class ConfigurableSlowDeterministicMonkeyFactory 
extends SlowDeterministi
       .toArray(String[]::new);
     LOG.info("About to instantiate action class: {}; With constructor params: 
{}", className,
       params);
-    Class<? extends Action> actionClass = (Class<? extends Action>) 
Class.forName(className);
+    Class<? extends Action> actionClass = 
Class.forName(className).asSubclass(Action.class);
     Constructor<? extends Action>[] constructors =
       (Constructor<? extends Action>[]) actionClass.getDeclaredConstructors();
     for (Constructor<? extends Action> c : constructors) {
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DataIssuesMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DataIssuesMonkeyFactory.java
index a778da120e1..ef0d777f37a 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DataIssuesMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DataIssuesMonkeyFactory.java
@@ -51,15 +51,4 @@ public class DataIssuesMonkeyFactory extends MonkeyFactory {
       new PeriodicRandomActionPolicy(action1Period, actions1),
       new PeriodicRandomActionPolicy(action2Period, actions2));
   }
-
-  private void loadProperties() {
-    action1Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION1_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD + ""));
-    action2Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION2_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION2_PERIOD + ""));
-    chanceToAct = 
Float.parseFloat(this.properties.getProperty(MonkeyConstants.DATA_ISSUE_CHANCE,
-      MonkeyConstants.DEFAULT_DATA_ISSUE_CHANCE + ""));
-  }
 }
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DistributedIssuesMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DistributedIssuesMonkeyFactory.java
index 4a6191079c0..fcb24e74012 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DistributedIssuesMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DistributedIssuesMonkeyFactory.java
@@ -36,21 +36,6 @@ import 
org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
  */
 public class DistributedIssuesMonkeyFactory extends MonkeyFactory {
 
-  private long action1Period;
-  private long action2Period;
-
-  private long cpuLoadDuration;
-  private long cpuLoadProcesses;
-  private long networkIssueTimeout;
-  private long networkIssueDuration;
-  private float networkIssueRation;
-  private long networkIssueDelay;
-  private String networkIssueInterface;
-  private long fillDiskTimeout;
-  private String fillDiskPath;
-  private long fillDiskFileSize;
-  private long fillDiskIssueduration;
-
   @Override
   public ChaosMonkey build() {
     loadProperties();
@@ -77,43 +62,4 @@ public class DistributedIssuesMonkeyFactory extends 
MonkeyFactory {
       new PeriodicRandomActionPolicy(action1Period, actions1),
       new PeriodicRandomActionPolicy(action2Period, actions2));
   }
-
-  private void loadProperties() {
-    action1Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION1_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD + ""));
-    action2Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION2_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION2_PERIOD + ""));
-    cpuLoadDuration = 
Long.parseLong(this.properties.getProperty(MonkeyConstants.CPU_LOAD_DURATION,
-      MonkeyConstants.DEFAULT_CPU_LOAD_DURATION + ""));
-    cpuLoadProcesses =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.CPU_LOAD_PROCESSES,
-        MonkeyConstants.DEFAULT_CPU_LOAD_PROCESSES + ""));
-    networkIssueTimeout =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.NETWORK_ISSUE_COMMAND_TIMEOUT,
-        MonkeyConstants.DEFAULT_NETWORK_ISSUE_COMMAND_TIMEOUT + ""));
-    networkIssueDuration =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.NETWORK_ISSUE_DURATION,
-        MonkeyConstants.DEFAULT_NETWORK_ISSUE_DURATION + ""));
-    networkIssueRation =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.NETWORK_ISSUE_RATIO,
-        MonkeyConstants.DEFAULT_NETWORK_ISSUE_RATIO + ""));
-    networkIssueDelay =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.NETWORK_ISSUE_DELAY,
-        MonkeyConstants.DEFAULT_NETWORK_ISSUE_DELAY + ""));
-    networkIssueInterface = 
this.properties.getProperty(MonkeyConstants.NETWORK_ISSUE_INTERFACE,
-      MonkeyConstants.DEFAULT_NETWORK_ISSUE_INTERFACE + "");
-    fillDiskTimeout =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.FILL_DISK_COMMAND_TIMEOUT,
-        MonkeyConstants.DEFAULT_FILL_DISK_COMMAND_TIMEOUT + ""));
-    fillDiskPath = this.properties.getProperty(MonkeyConstants.FILL_DISK_PATH,
-      MonkeyConstants.DEFAULT_FILL_DISK_PATH + "");
-    fillDiskFileSize =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.FILL_DISK_FILE_SIZE,
-        MonkeyConstants.DEFAULT_FILL_DISK_FILE_SIZE + ""));
-    fillDiskIssueduration =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.FILL_DISK_ISSUE_DURATION,
-        MonkeyConstants.DEFAULT_FILL_DISK_ISSUE_DURATION + ""));
-  }
 }
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java
index dc9865e7392..9056f6eefac 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java
@@ -30,11 +30,6 @@ import 
org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
  */
 public class MasterKillingMonkeyFactory extends MonkeyFactory {
 
-  private long action1Period;
-  private long action2Period;
-
-  private long restartActiveMasterSleepTime;
-
   @Override
   public ChaosMonkey build() {
     loadProperties();
@@ -50,18 +45,4 @@ public class MasterKillingMonkeyFactory extends 
MonkeyFactory {
       new PeriodicRandomActionPolicy(action1Period, actions1),
       new PeriodicRandomActionPolicy(action2Period, actions2));
   }
-
-  private void loadProperties() {
-
-    action1Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION1_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD + ""));
-    action2Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION2_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION2_PERIOD + ""));
-    restartActiveMasterSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_ACTIVE_MASTER_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_ACTIVE_MASTER_SLEEP_TIME + ""));
-  }
-
 }
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java
index b08e94b7b8c..0221f980357 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java
@@ -46,33 +46,29 @@ import 
org.apache.hadoop.hbase.chaos.policies.TwoConcurrentActionPolicy;
 public class MobNoKillMonkeyFactory extends MonkeyFactory {
   @Override
   public ChaosMonkey build() {
-    Action[] actions1 = new Action[] {
-      new CompactMobAction(tableName, 
MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD),
-      new CompactTableAction(tableName, 
MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD),
-      new CompactRandomRegionOfTableAction(tableName,
-        MonkeyConstants.DEFAULT_COMPACT_RANDOM_REGION_RATIO),
+    loadProperties();
+    Action[] actions1 = new Action[] { new CompactMobAction(tableName, 
action1Period),
+      new CompactTableAction(tableName, action1Period),
+      new CompactRandomRegionOfTableAction(tableName, 
compactRandomRegionRatio),
       new FlushTableAction(tableName), new 
FlushRandomRegionOfTableAction(tableName),
       new MoveRandomRegionOfTableAction(tableName) };
 
     Action[] actions2 = new Action[] { new 
SplitRandomRegionOfTableAction(tableName),
       new MergeRandomAdjacentRegionsOfTableAction(tableName),
-      new SnapshotTableAction(tableName, 
MonkeyConstants.DEFAULT_SNAPSHOT_TABLE_TTL),
-      new AddColumnAction(tableName), new RemoveColumnAction(tableName, 
columnFamilies),
-      new ChangeEncodingAction(tableName), new 
ChangeCompressionAction(tableName),
-      new ChangeBloomFilterAction(tableName), new 
ChangeVersionsAction(tableName) };
+      new SnapshotTableAction(tableName, snapshotTableTtl), 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), };
+      new MoveRegionsOfTableAction(moveRegionsSleepTime, moveRegionsMaxTime, 
tableName),
+      new MoveRandomRegionOfTableAction(restartActiveMasterSleepTime, 
tableName) };
 
     Action[] actions4 = new Action[] { new DumpClusterStatusAction() };
 
     return new PolicyBasedChaosMonkey(properties, 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));
+      new TwoConcurrentActionPolicy(action1Period, actions1, actions2),
+      new PeriodicRandomActionPolicy(action2Period, actions3),
+      new PeriodicRandomActionPolicy(action4Period, actions4));
   }
 }
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java
index ef8c307fad8..47dc7f127d9 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java
@@ -51,27 +51,8 @@ import 
org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
  */
 public class MobSlowDeterministicMonkeyFactory extends MonkeyFactory {
 
-  private long action1Period;
-  private long action2Period;
-  private long action3Period;
-  private long action4Period;
-  private long moveRegionsMaxTime;
-  private long moveRegionsSleepTime;
-  private long moveRandomRegionSleepTime;
-  private long restartRandomRSSleepTime;
-  private long batchRestartRSSleepTime;
-  private float batchRestartRSRatio;
-  private long restartActiveMasterSleepTime;
-  private long rollingBatchRestartRSSleepTime;
-  private float rollingBatchRestartRSRatio;
-  private long restartRsHoldingMetaSleepTime;
-  private float compactTableRatio;
-  private float compactRandomRegionRatio;
-  private long snapshotTableTtl;
-
   @Override
   public ChaosMonkey build() {
-
     loadProperties();
     // Actions such as compact/flush a table/region,
     // move one region around. They are not so destructive,
@@ -112,56 +93,4 @@ public class MobSlowDeterministicMonkeyFactory extends 
MonkeyFactory {
         new PeriodicRandomActionPolicy(action3Period, actions3)),
       new PeriodicRandomActionPolicy(action4Period, actions4));
   }
-
-  private void loadProperties() {
-
-    action1Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION1_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD + ""));
-    action2Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION2_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION2_PERIOD + ""));
-    action3Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.COMPOSITE_ACTION3_PERIOD,
-        MonkeyConstants.DEFAULT_COMPOSITE_ACTION3_PERIOD + ""));
-    action4Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION4_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION4_PERIOD + ""));
-    moveRegionsMaxTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.MOVE_REGIONS_MAX_TIME,
-        MonkeyConstants.DEFAULT_MOVE_REGIONS_MAX_TIME + ""));
-    moveRegionsSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.MOVE_REGIONS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_MOVE_REGIONS_SLEEP_TIME + ""));
-    moveRandomRegionSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.MOVE_RANDOM_REGION_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_MOVE_RANDOM_REGION_SLEEP_TIME + ""));
-    restartRandomRSSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_RANDOM_RS_SLEEP_TIME + ""));
-    batchRestartRSSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.BATCH_RESTART_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_BATCH_RESTART_RS_SLEEP_TIME + ""));
-    restartActiveMasterSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_ACTIVE_MASTER_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_ACTIVE_MASTER_SLEEP_TIME + ""));
-    rollingBatchRestartRSSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_RESTART_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_RESTART_RS_SLEEP_TIME + ""));
-    rollingBatchRestartRSRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_RESTART_RS_RATIO,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_RESTART_RS_RATIO + ""));
-    restartRsHoldingMetaSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RS_HOLDING_META_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_RS_HOLDING_META_SLEEP_TIME + ""));
-    compactTableRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.COMPACT_TABLE_ACTION_RATIO,
-        MonkeyConstants.DEFAULT_COMPACT_TABLE_ACTION_RATIO + ""));
-    compactRandomRegionRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.COMPACT_RANDOM_REGION_RATIO,
-        MonkeyConstants.DEFAULT_COMPACT_RANDOM_REGION_RATIO + ""));
-    snapshotTableTtl =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.SNAPSHOT_TABLE_TTL,
-        MonkeyConstants.DEFAULT_SNAPSHOT_TABLE_TTL + ""));
-  }
 }
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java
index 3fda0844729..031b8059350 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java
@@ -46,6 +46,8 @@ public interface MonkeyConstants {
   String UNBALANCE_WAIT_AFTER_BALANCE_MS = 
"unbalance.action.wait.after.period";
   String UNBALANCE_KILL_META_RS = "unbalance.action.kill.meta.rs";
   String DECREASE_HFILE_SIZE_SLEEP_TIME = "decrease.hfile.size.sleep.time";
+  String DECREASE_HFILE_SIZE_MIN_HFILE_SIZE = 
"decrease.hfile.size.min.hfile.size";
+  String DECREASE_HFILE_SIZE_HFILE_SIZE_JITTER = 
"decrease.hfile.size.hfile.size.jitter";
   String RESTART_RANDOM_RS_EXCEPTION_SLEEP_TIME = 
"restart.random.rs.exception.sleep.time";
   String RESTART_ACTIVE_NAMENODE_SLEEP_TIME = 
"restart.active.namenode.sleep.time";
   String RESTART_RANDOM_DATANODE_SLEEP_TIME = 
"restart.random.datanode.sleep.time";
@@ -99,6 +101,8 @@ public interface MonkeyConstants {
   long DEFAULT_UNBALANCE_WAIT_AFTER_BALANCE_MS = 5 * 1000;
   boolean DEFAULT_UNBALANCE_KILL_META_RS = true;
   long DEFAULT_DECREASE_HFILE_SIZE_SLEEP_TIME = 30 * 1000;
+  long DEFAULT_DECREASE_HFILE_SIZE_MIN_HFILE_SIZE = 1024L * 1024 * 1024;
+  float DEFAULT_DECREASE_HFILE_SIZE_HFILE_SIZE_JITTER = 0.001f;
 
   long DEFAULT_RESTART_RANDOM_RS_EXCEPTION_SLEEP_TIME = 
TimeUnit.MILLISECONDS.toMillis(60000);
   long DEFAULT_RESTART_ACTIVE_NAMENODE_SLEEP_TIME = 
TimeUnit.MILLISECONDS.toMillis(60000);
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java
index b35234dbd19..b4d47ed0a36 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java
@@ -40,6 +40,58 @@ public abstract class MonkeyFactory {
   protected IntegrationTestingUtility util;
   protected Properties properties = new Properties();
 
+  protected long action1Period;
+  protected long action2Period;
+  protected long action3Period;
+  protected long action4Period;
+  protected long moveRegionsMaxTime;
+  protected long moveRegionsSleepTime;
+  protected long moveRandomRegionSleepTime;
+  protected long restartRandomRSSleepTime;
+  protected long batchRestartRSSleepTime;
+  protected float batchRestartRSRatio;
+  protected long restartActiveMasterSleepTime;
+  protected long rollingBatchRestartRSSleepTime;
+  protected float rollingBatchRestartRSRatio;
+  protected long restartRsHoldingMetaSleepTime;
+  protected float compactTableRatio;
+  protected float compactRandomRegionRatio;
+  protected long decreaseHFileSizeSleepTime;
+  protected long decreaseHFileSizeMinHFileSize;
+  protected float decreaseHFileSizeHFileSizeJitter;
+  protected long gracefulRollingRestartTSSLeepTime;
+  protected long rollingBatchSuspendRSSleepTime;
+  protected float rollingBatchSuspendRSRatio;
+  protected long snapshotTableTtl;
+
+  protected long cpuLoadDuration;
+  protected long cpuLoadProcesses;
+  protected long networkIssueTimeout;
+  protected long networkIssueDuration;
+  protected float networkIssueRation;
+  protected long networkIssueDelay;
+  protected String networkIssueInterface;
+  protected long fillDiskTimeout;
+  protected String fillDiskPath;
+  protected long fillDiskFileSize;
+  protected long fillDiskIssueduration;
+
+  protected long restartRandomRsExceptMetaSleepTime;
+  protected long restartActiveNameNodeSleepTime;
+  protected long restartRandomDataNodeSleepTime;
+  protected long restartRandomJournalNodeSleepTime;
+  protected long restartRandomZKNodeSleepTime;
+
+  /**
+   * How often to introduce the chaos. If too frequent, sequence of kills on 
minicluster can cause
+   * test to fail when Put runs out of retries.
+   */
+  protected long chaosEveryMilliSec;
+  protected long waitForUnbalanceMilliSec;
+  protected long waitForKillMilliSec;
+  protected long waitAfterBalanceMilliSec;
+  protected boolean killMetaRs;
+
   public MonkeyFactory setTableName(TableName tableName) {
     this.tableName = tableName;
     return this;
@@ -62,6 +114,141 @@ public abstract class MonkeyFactory {
     return this;
   }
 
+  protected final void loadProperties() {
+    action1Period =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION1_PERIOD,
+        MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD + ""));
+    action2Period =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION2_PERIOD,
+        MonkeyConstants.DEFAULT_PERIODIC_ACTION2_PERIOD + ""));
+    action3Period =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.COMPOSITE_ACTION3_PERIOD,
+        MonkeyConstants.DEFAULT_COMPOSITE_ACTION3_PERIOD + ""));
+    action4Period =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION4_PERIOD,
+        MonkeyConstants.DEFAULT_PERIODIC_ACTION4_PERIOD + ""));
+    moveRegionsMaxTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.MOVE_REGIONS_MAX_TIME,
+        MonkeyConstants.DEFAULT_MOVE_REGIONS_MAX_TIME + ""));
+    moveRegionsSleepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.MOVE_REGIONS_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_MOVE_REGIONS_SLEEP_TIME + ""));
+    moveRandomRegionSleepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.MOVE_RANDOM_REGION_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_MOVE_RANDOM_REGION_SLEEP_TIME + ""));
+    restartRandomRSSleepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_RS_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_RESTART_RANDOM_RS_SLEEP_TIME + ""));
+    batchRestartRSSleepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.BATCH_RESTART_RS_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_BATCH_RESTART_RS_SLEEP_TIME + ""));
+    batchRestartRSRatio =
+      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.BATCH_RESTART_RS_RATIO,
+        MonkeyConstants.DEFAULT_BATCH_RESTART_RS_RATIO + ""));
+    restartActiveMasterSleepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_ACTIVE_MASTER_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_RESTART_ACTIVE_MASTER_SLEEP_TIME + ""));
+    rollingBatchRestartRSSleepTime = Long
+      
.parseLong(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_RESTART_RS_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_ROLLING_BATCH_RESTART_RS_SLEEP_TIME + ""));
+    rollingBatchRestartRSRatio =
+      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_RESTART_RS_RATIO,
+        MonkeyConstants.DEFAULT_ROLLING_BATCH_RESTART_RS_RATIO + ""));
+    restartRsHoldingMetaSleepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RS_HOLDING_META_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_RESTART_RS_HOLDING_META_SLEEP_TIME + ""));
+    compactTableRatio =
+      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.COMPACT_TABLE_ACTION_RATIO,
+        MonkeyConstants.DEFAULT_COMPACT_TABLE_ACTION_RATIO + ""));
+    compactRandomRegionRatio =
+      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.COMPACT_RANDOM_REGION_RATIO,
+        MonkeyConstants.DEFAULT_COMPACT_RANDOM_REGION_RATIO + ""));
+    decreaseHFileSizeSleepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.DECREASE_HFILE_SIZE_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_DECREASE_HFILE_SIZE_SLEEP_TIME + ""));
+    decreaseHFileSizeMinHFileSize =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.DECREASE_HFILE_SIZE_MIN_HFILE_SIZE,
+        MonkeyConstants.DEFAULT_DECREASE_HFILE_SIZE_MIN_HFILE_SIZE + ""));
+    decreaseHFileSizeHFileSizeJitter = Float
+      
.parseFloat(this.properties.getProperty(MonkeyConstants.DECREASE_HFILE_SIZE_HFILE_SIZE_JITTER,
+        MonkeyConstants.DEFAULT_DECREASE_HFILE_SIZE_HFILE_SIZE_JITTER + ""));
+    gracefulRollingRestartTSSLeepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.GRACEFUL_RESTART_RS_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_GRACEFUL_RESTART_RS_SLEEP_TIME + ""));
+    rollingBatchSuspendRSSleepTime = Long
+      
.parseLong(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_SUSPEND_RS_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_ROLLING_BATCH_SUSPEND_RS_SLEEP_TIME + ""));
+    rollingBatchSuspendRSRatio =
+      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_SUSPEND_RS_RATIO,
+        MonkeyConstants.DEFAULT_ROLLING_BATCH_SUSPEND_RS_RATIO + ""));
+    snapshotTableTtl =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.SNAPSHOT_TABLE_TTL,
+        MonkeyConstants.DEFAULT_SNAPSHOT_TABLE_TTL + ""));
+
+    cpuLoadDuration = 
Long.parseLong(this.properties.getProperty(MonkeyConstants.CPU_LOAD_DURATION,
+      MonkeyConstants.DEFAULT_CPU_LOAD_DURATION + ""));
+    cpuLoadProcesses =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.CPU_LOAD_PROCESSES,
+        MonkeyConstants.DEFAULT_CPU_LOAD_PROCESSES + ""));
+    networkIssueTimeout =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.NETWORK_ISSUE_COMMAND_TIMEOUT,
+        MonkeyConstants.DEFAULT_NETWORK_ISSUE_COMMAND_TIMEOUT + ""));
+    networkIssueDuration =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.NETWORK_ISSUE_DURATION,
+        MonkeyConstants.DEFAULT_NETWORK_ISSUE_DURATION + ""));
+    networkIssueRation =
+      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.NETWORK_ISSUE_RATIO,
+        MonkeyConstants.DEFAULT_NETWORK_ISSUE_RATIO + ""));
+    networkIssueDelay =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.NETWORK_ISSUE_DELAY,
+        MonkeyConstants.DEFAULT_NETWORK_ISSUE_DELAY + ""));
+    networkIssueInterface = 
this.properties.getProperty(MonkeyConstants.NETWORK_ISSUE_INTERFACE,
+      MonkeyConstants.DEFAULT_NETWORK_ISSUE_INTERFACE + "");
+    fillDiskTimeout =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.FILL_DISK_COMMAND_TIMEOUT,
+        MonkeyConstants.DEFAULT_FILL_DISK_COMMAND_TIMEOUT + ""));
+    fillDiskPath = this.properties.getProperty(MonkeyConstants.FILL_DISK_PATH,
+      MonkeyConstants.DEFAULT_FILL_DISK_PATH + "");
+    fillDiskFileSize =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.FILL_DISK_FILE_SIZE,
+        MonkeyConstants.DEFAULT_FILL_DISK_FILE_SIZE + ""));
+    fillDiskIssueduration =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.FILL_DISK_ISSUE_DURATION,
+        MonkeyConstants.DEFAULT_FILL_DISK_ISSUE_DURATION + ""));
+
+    restartRandomRsExceptMetaSleepTime = Long
+      
.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_RS_EXCEPTION_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_RESTART_RANDOM_RS_EXCEPTION_SLEEP_TIME + ""));
+    restartActiveNameNodeSleepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_ACTIVE_NAMENODE_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_RESTART_ACTIVE_NAMENODE_SLEEP_TIME + ""));
+    restartRandomDataNodeSleepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_DATANODE_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_RESTART_RANDOM_DATANODE_SLEEP_TIME + ""));
+    restartRandomJournalNodeSleepTime = Long
+      
.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_JOURNALNODE_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_RESTART_RANDOM_JOURNALNODE_SLEEP_TIME + ""));
+    restartRandomZKNodeSleepTime =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_ZKNODE_SLEEP_TIME,
+        MonkeyConstants.DEFAULT_RESTART_RANDOM_ZKNODE_SLEEP_TIME + ""));
+
+    chaosEveryMilliSec =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.UNBALANCE_CHAOS_EVERY_MS,
+        MonkeyConstants.DEFAULT_UNBALANCE_CHAOS_EVERY_MS + ""));
+    waitForUnbalanceMilliSec =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.UNBALANCE_WAIT_FOR_UNBALANCE_MS,
+        MonkeyConstants.DEFAULT_UNBALANCE_WAIT_FOR_UNBALANCE_MS + ""));
+    waitForKillMilliSec =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.UNBALANCE_WAIT_FOR_KILLS_MS,
+        MonkeyConstants.DEFAULT_UNBALANCE_WAIT_FOR_KILLS_MS + ""));
+    waitAfterBalanceMilliSec =
+      
Long.parseLong(this.properties.getProperty(MonkeyConstants.UNBALANCE_WAIT_AFTER_BALANCE_MS,
+        MonkeyConstants.DEFAULT_UNBALANCE_WAIT_AFTER_BALANCE_MS + ""));
+    killMetaRs =
+      
Boolean.parseBoolean(this.properties.getProperty(MonkeyConstants.UNBALANCE_KILL_META_RS,
+        MonkeyConstants.DEFAULT_UNBALANCE_KILL_META_RS + ""));
+  }
+
   public abstract ChaosMonkey build();
 
   public static final String CALM = "calm";
@@ -96,12 +283,12 @@ public abstract class MonkeyFactory {
   public static MonkeyFactory getFactory(String factoryName) {
     MonkeyFactory fact = FACTORIES.get(factoryName);
     if (fact == null && factoryName != null && !factoryName.isEmpty()) {
-      Class klass = null;
+      Class<? extends MonkeyFactory> klass = null;
       try {
-        klass = Class.forName(factoryName);
+        klass = Class.forName(factoryName).asSubclass(MonkeyFactory.class);
         if (klass != null) {
           LOG.info("Instantiating {}", klass.getName());
-          fact = (MonkeyFactory) ReflectionUtils.newInstance(klass);
+          fact = ReflectionUtils.newInstance(klass);
         }
       } catch (Exception e) {
         LOG.error("Error trying to create " + factoryName + " could not load 
it by class name");
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerAndDependenciesKillingMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerAndDependenciesKillingMonkeyFactory.java
index 28dce481314..1c2795d4073 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerAndDependenciesKillingMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerAndDependenciesKillingMonkeyFactory.java
@@ -42,18 +42,6 @@ import 
org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
  */
 public class ServerAndDependenciesKillingMonkeyFactory extends MonkeyFactory {
 
-  private long restartRandomRsExceptMetaSleepTime;
-  private long restartActiveMasterSleepTime;
-  private long rollingBatchRestartRSSleepTime;
-  private long restartActiveNameNodeSleepTime;
-  private long restartRandomDataNodeSleepTime;
-  private long restartRandomJournalNodeSleepTime;
-  private long restartRandomZKNodeSleepTime;
-  private long gracefulRollingRestartTSSLeepTime;
-  private long rollingBatchSuspendRSSleepTime;
-  private float rollingBatchSuspendtRSRatio;
-  private long action1Period;
-
   @Override
   public ChaosMonkey build() {
     loadProperties();
@@ -72,7 +60,7 @@ public class ServerAndDependenciesKillingMonkeyFactory 
extends MonkeyFactory {
       new RestartRandomZKNodeAction(restartRandomZKNodeSleepTime),
       new GracefulRollingRestartRsAction(gracefulRollingRestartTSSLeepTime),
       new RollingBatchSuspendResumeRsAction(rollingBatchSuspendRSSleepTime,
-          rollingBatchSuspendtRSRatio)
+          rollingBatchSuspendRSRatio)
     };
     // @formatter:on
 
@@ -85,40 +73,4 @@ public class ServerAndDependenciesKillingMonkeyFactory 
extends MonkeyFactory {
         new PeriodicRandomActionPolicy(action1Period, actions1)),
       new PeriodicRandomActionPolicy(action1Period, actions2));
   }
-
-  private void loadProperties() {
-    restartRandomRsExceptMetaSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_RS_EXCEPTION_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_RANDOM_RS_EXCEPTION_SLEEP_TIME + ""));
-    restartActiveMasterSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_ACTIVE_MASTER_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_ACTIVE_MASTER_SLEEP_TIME + ""));
-    rollingBatchRestartRSSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_RESTART_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_RESTART_RS_SLEEP_TIME + ""));
-    restartActiveNameNodeSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_ACTIVE_NAMENODE_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_ACTIVE_NAMENODE_SLEEP_TIME + ""));
-    restartRandomDataNodeSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_DATANODE_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_RANDOM_DATANODE_SLEEP_TIME + ""));
-    restartRandomJournalNodeSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_JOURNALNODE_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_RANDOM_JOURNALNODE_SLEEP_TIME + ""));
-    restartRandomZKNodeSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_ZKNODE_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_RANDOM_ZKNODE_SLEEP_TIME + ""));
-    gracefulRollingRestartTSSLeepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.GRACEFUL_RESTART_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_GRACEFUL_RESTART_RS_SLEEP_TIME + ""));
-    rollingBatchSuspendRSSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_SUSPEND_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_SUSPEND_RS_SLEEP_TIME + ""));
-    rollingBatchSuspendtRSRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_SUSPEND_RS_RATIO,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_SUSPEND_RS_RATIO + ""));
-    action1Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION1_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD + ""));
-  }
 }
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java
index 7b58d217040..21b638c6dce 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java
@@ -37,14 +37,6 @@ import 
org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
  */
 public class ServerKillingMonkeyFactory extends MonkeyFactory {
 
-  private long restartRandomRsExceptMetaSleepTime;
-  private long restartActiveMasterSleepTime;
-  private long rollingBatchRestartRSSleepTime;
-  private long gracefulRollingRestartTSSLeepTime;
-  private long rollingBatchSuspendRSSleepTime;
-  private float rollingBatchSuspendtRSRatio;
-  private long action1Period;
-
   @Override
   public ChaosMonkey build() {
     loadProperties();
@@ -59,7 +51,7 @@ public class ServerKillingMonkeyFactory extends MonkeyFactory 
{
       new ForceBalancerAction(),
       new GracefulRollingRestartRsAction(gracefulRollingRestartTSSLeepTime),
       new RollingBatchSuspendResumeRsAction(rollingBatchSuspendRSSleepTime,
-          rollingBatchSuspendtRSRatio)
+          rollingBatchSuspendRSRatio)
     };
     // @formatter:on
 
@@ -71,28 +63,4 @@ public class ServerKillingMonkeyFactory extends 
MonkeyFactory {
         new PeriodicRandomActionPolicy(action1Period, actions1)),
       new PeriodicRandomActionPolicy(action1Period, actions2));
   }
-
-  private void loadProperties() {
-    restartRandomRsExceptMetaSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_RS_EXCEPTION_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_RANDOM_RS_EXCEPTION_SLEEP_TIME + ""));
-    restartActiveMasterSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_ACTIVE_MASTER_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_ACTIVE_MASTER_SLEEP_TIME + ""));
-    rollingBatchRestartRSSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_RESTART_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_RESTART_RS_SLEEP_TIME + ""));
-    gracefulRollingRestartTSSLeepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.GRACEFUL_RESTART_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_GRACEFUL_RESTART_RS_SLEEP_TIME + ""));
-    rollingBatchSuspendRSSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_SUSPEND_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_SUSPEND_RS_SLEEP_TIME + ""));
-    rollingBatchSuspendtRSRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_SUSPEND_RS_RATIO,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_SUSPEND_RS_RATIO + ""));
-    action1Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION1_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD + ""));
-  }
 }
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java
index 56557768343..30ed5741a83 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java
@@ -51,27 +51,6 @@ import 
org.apache.hadoop.hbase.chaos.policies.DoActionsOncePolicy;
 import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
 
 public class SlowDeterministicMonkeyFactory extends MonkeyFactory {
-  private long action1Period;
-  private long action2Period;
-  private long action3Period;
-  private long action4Period;
-  private long moveRegionsMaxTime;
-  private long moveRegionsSleepTime;
-  private long moveRandomRegionSleepTime;
-  private long restartRandomRSSleepTime;
-  private long batchRestartRSSleepTime;
-  private float batchRestartRSRatio;
-  private long restartActiveMasterSleepTime;
-  private long rollingBatchRestartRSSleepTime;
-  private float rollingBatchRestartRSRatio;
-  private long restartRsHoldingMetaSleepTime;
-  private float compactTableRatio;
-  private float compactRandomRegionRatio;
-  private long decreaseHFileSizeSleepTime;
-  private long gracefulRollingRestartTSSLeepTime;
-  private long rollingBatchSuspendRSSleepTime;
-  private float rollingBatchSuspendtRSRatio;
-  private long snapshotTableTtl;
 
   protected Action[] getLightWeightedActions() {
     return new Action[] { new CompactTableAction(tableName, compactTableRatio),
@@ -98,11 +77,12 @@ public class SlowDeterministicMonkeyFactory extends 
MonkeyFactory {
       new RestartActiveMasterAction(restartActiveMasterSleepTime),
       new RollingBatchRestartRsAction(rollingBatchRestartRSSleepTime, 
rollingBatchRestartRSRatio),
       new RestartRsHoldingMetaAction(restartRsHoldingMetaSleepTime),
-      new DecreaseMaxHFileSizeAction(decreaseHFileSizeSleepTime, tableName),
+      new DecreaseMaxHFileSizeAction(decreaseHFileSizeSleepTime, 
decreaseHFileSizeMinHFileSize,
+        decreaseHFileSizeHFileSizeJitter, tableName),
       new SplitAllRegionOfTableAction(tableName),
       new GracefulRollingRestartRsAction(gracefulRollingRestartTSSLeepTime),
       new RollingBatchSuspendResumeRsAction(rollingBatchSuspendRSSleepTime,
-        rollingBatchSuspendtRSRatio) };
+        rollingBatchSuspendRSRatio) };
   }
 
   @Override
@@ -131,71 +111,4 @@ public class SlowDeterministicMonkeyFactory extends 
MonkeyFactory {
         new PeriodicRandomActionPolicy(action3Period, actions3)),
       new PeriodicRandomActionPolicy(action4Period, actions4));
   }
-
-  private void loadProperties() {
-
-    action1Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION1_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION1_PERIOD + ""));
-    action2Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION2_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION2_PERIOD + ""));
-    action3Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.COMPOSITE_ACTION3_PERIOD,
-        MonkeyConstants.DEFAULT_COMPOSITE_ACTION3_PERIOD + ""));
-    action4Period =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.PERIODIC_ACTION4_PERIOD,
-        MonkeyConstants.DEFAULT_PERIODIC_ACTION4_PERIOD + ""));
-    moveRegionsMaxTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.MOVE_REGIONS_MAX_TIME,
-        MonkeyConstants.DEFAULT_MOVE_REGIONS_MAX_TIME + ""));
-    moveRegionsSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.MOVE_REGIONS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_MOVE_REGIONS_SLEEP_TIME + ""));
-    moveRandomRegionSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.MOVE_RANDOM_REGION_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_MOVE_RANDOM_REGION_SLEEP_TIME + ""));
-    restartRandomRSSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RANDOM_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_RANDOM_RS_SLEEP_TIME + ""));
-    batchRestartRSSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.BATCH_RESTART_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_BATCH_RESTART_RS_SLEEP_TIME + ""));
-    batchRestartRSRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.BATCH_RESTART_RS_RATIO,
-        MonkeyConstants.DEFAULT_BATCH_RESTART_RS_RATIO + ""));
-    restartActiveMasterSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_ACTIVE_MASTER_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_ACTIVE_MASTER_SLEEP_TIME + ""));
-    rollingBatchRestartRSSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_RESTART_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_RESTART_RS_SLEEP_TIME + ""));
-    rollingBatchRestartRSRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_RESTART_RS_RATIO,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_RESTART_RS_RATIO + ""));
-    restartRsHoldingMetaSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.RESTART_RS_HOLDING_META_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_RESTART_RS_HOLDING_META_SLEEP_TIME + ""));
-    compactTableRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.COMPACT_TABLE_ACTION_RATIO,
-        MonkeyConstants.DEFAULT_COMPACT_TABLE_ACTION_RATIO + ""));
-    compactRandomRegionRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.COMPACT_RANDOM_REGION_RATIO,
-        MonkeyConstants.DEFAULT_COMPACT_RANDOM_REGION_RATIO + ""));
-    decreaseHFileSizeSleepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.DECREASE_HFILE_SIZE_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_DECREASE_HFILE_SIZE_SLEEP_TIME + ""));
-    gracefulRollingRestartTSSLeepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.GRACEFUL_RESTART_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_GRACEFUL_RESTART_RS_SLEEP_TIME + ""));
-    rollingBatchSuspendRSSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_SUSPEND_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_SUSPEND_RS_SLEEP_TIME + ""));
-    rollingBatchSuspendtRSRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_SUSPEND_RS_RATIO,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_SUSPEND_RS_RATIO + ""));
-    snapshotTableTtl =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.SNAPSHOT_TABLE_TTL,
-        MonkeyConstants.DEFAULT_SNAPSHOT_TABLE_TTL + ""));
-  }
 }
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java
index d066b775004..4ab26d81739 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java
@@ -46,10 +46,6 @@ import 
org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
 
 public class StressAssignmentManagerMonkeyFactory extends MonkeyFactory {
 
-  private long gracefulRollingRestartTSSLeepTime;
-  private long rollingBatchSuspendRSSleepTime;
-  private float rollingBatchSuspendtRSRatio;
-
   @Override
   public ChaosMonkey build() {
     loadProperties();
@@ -63,41 +59,26 @@ public class StressAssignmentManagerMonkeyFactory extends 
MonkeyFactory {
     Action[] actions2 = new Action[] { new 
SplitRandomRegionOfTableAction(tableName),
       new MergeRandomAdjacentRegionsOfTableAction(tableName), new 
AddColumnAction(tableName),
       new RemoveColumnAction(tableName, columnFamilies),
-      new 
MoveRegionsOfTableAction(MonkeyConstants.DEFAULT_MOVE_REGIONS_SLEEP_TIME, 1600,
-        tableName),
-      new 
MoveRandomRegionOfTableAction(MonkeyConstants.DEFAULT_MOVE_RANDOM_REGION_SLEEP_TIME,
-        tableName),
-      new 
RestartRandomRsAction(MonkeyConstants.DEFAULT_RESTART_RANDOM_RS_SLEEP_TIME),
-      new 
BatchRestartRsAction(MonkeyConstants.DEFAULT_BATCH_RESTART_RS_SLEEP_TIME, 0.5f),
-      new 
RollingBatchRestartRsAction(MonkeyConstants.DEFAULT_ROLLING_BATCH_RESTART_RS_SLEEP_TIME,
-        1.0f),
-      new 
RestartRsHoldingMetaAction(MonkeyConstants.DEFAULT_RESTART_RS_HOLDING_META_SLEEP_TIME),
+      new MoveRegionsOfTableAction(moveRegionsSleepTime, 1600, tableName),
+      new MoveRandomRegionOfTableAction(moveRandomRegionSleepTime, tableName),
+      new RestartRandomRsAction(restartRandomRSSleepTime),
+      new BatchRestartRsAction(batchRestartRSSleepTime, 
rollingBatchSuspendRSRatio),
+      new RollingBatchRestartRsAction(rollingBatchRestartRSSleepTime, 
rollingBatchRestartRSRatio),
+      new RestartRsHoldingMetaAction(restartRsHoldingMetaSleepTime),
       new ChangeSplitPolicyAction(tableName), new 
SplitAllRegionOfTableAction(tableName),
-      new 
DecreaseMaxHFileSizeAction(MonkeyConstants.DEFAULT_DECREASE_HFILE_SIZE_SLEEP_TIME,
-        tableName),
+      new DecreaseMaxHFileSizeAction(decreaseHFileSizeSleepTime, 
decreaseHFileSizeMinHFileSize,
+        decreaseHFileSizeHFileSizeJitter, tableName),
       new GracefulRollingRestartRsAction(gracefulRollingRestartTSSLeepTime),
       new RollingBatchSuspendResumeRsAction(rollingBatchSuspendRSSleepTime,
-        rollingBatchSuspendtRSRatio) };
+        rollingBatchSuspendRSRatio) };
 
     // Action to log more info for debugging
     Action[] actions3 = new Action[] { new DumpClusterStatusAction() };
 
     return new PolicyBasedChaosMonkey(properties, util,
-      new PeriodicRandomActionPolicy(90 * 1000, actions1),
-      new CompositeSequentialPolicy(new DoActionsOncePolicy(90 * 1000, 
actions2),
-        new PeriodicRandomActionPolicy(90 * 1000, actions2)),
-      new PeriodicRandomActionPolicy(90 * 1000, actions3));
-  }
-
-  private void loadProperties() {
-    gracefulRollingRestartTSSLeepTime =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.GRACEFUL_RESTART_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_GRACEFUL_RESTART_RS_SLEEP_TIME + ""));
-    rollingBatchSuspendRSSleepTime = Long
-      
.parseLong(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_SUSPEND_RS_SLEEP_TIME,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_SUSPEND_RS_SLEEP_TIME + ""));
-    rollingBatchSuspendtRSRatio =
-      
Float.parseFloat(this.properties.getProperty(MonkeyConstants.ROLLING_BATCH_SUSPEND_RS_RATIO,
-        MonkeyConstants.DEFAULT_ROLLING_BATCH_SUSPEND_RS_RATIO + ""));
+      new PeriodicRandomActionPolicy(action1Period, actions1),
+      new CompositeSequentialPolicy(new DoActionsOncePolicy(action2Period, 
actions2),
+        new PeriodicRandomActionPolicy(action2Period, actions2)),
+      new PeriodicRandomActionPolicy(action3Period, actions3));
   }
 }
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/UnbalanceMonkeyFactory.java
 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/UnbalanceMonkeyFactory.java
index c40bf8c5ffb..a6da87ea5d3 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/UnbalanceMonkeyFactory.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/UnbalanceMonkeyFactory.java
@@ -24,15 +24,6 @@ import 
org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
 import org.apache.hadoop.hbase.chaos.policies.Policy;
 
 public class UnbalanceMonkeyFactory extends MonkeyFactory {
-  /**
-   * How often to introduce the chaos. If too frequent, sequence of kills on 
minicluster can cause
-   * test to fail when Put runs out of retries.
-   */
-  private long chaosEveryMilliSec;
-  private long waitForUnbalanceMilliSec;
-  private long waitForKillMilliSec;
-  private long waitAfterBalanceMilliSec;
-  private boolean killMetaRs;
 
   @Override
   public ChaosMonkey build() {
@@ -43,22 +34,4 @@ public class UnbalanceMonkeyFactory extends MonkeyFactory {
 
     return new PolicyBasedChaosMonkey(properties, util, chaosPolicy);
   }
-
-  private void loadProperties() {
-    chaosEveryMilliSec =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.UNBALANCE_CHAOS_EVERY_MS,
-        MonkeyConstants.DEFAULT_UNBALANCE_CHAOS_EVERY_MS + ""));
-    waitForUnbalanceMilliSec =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.UNBALANCE_WAIT_FOR_UNBALANCE_MS,
-        MonkeyConstants.DEFAULT_UNBALANCE_WAIT_FOR_UNBALANCE_MS + ""));
-    waitForKillMilliSec =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.UNBALANCE_WAIT_FOR_KILLS_MS,
-        MonkeyConstants.DEFAULT_UNBALANCE_WAIT_FOR_KILLS_MS + ""));
-    waitAfterBalanceMilliSec =
-      
Long.parseLong(this.properties.getProperty(MonkeyConstants.UNBALANCE_WAIT_AFTER_BALANCE_MS,
-        MonkeyConstants.DEFAULT_UNBALANCE_WAIT_AFTER_BALANCE_MS + ""));
-    killMetaRs =
-      
Boolean.parseBoolean(this.properties.getProperty(MonkeyConstants.UNBALANCE_KILL_META_RS,
-        MonkeyConstants.DEFAULT_UNBALANCE_KILL_META_RS + ""));
-  }
 }

Reply via email to