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 + ""));
- }
}