HBASE-14723 Fix IT tests split too many times

This commit is contained in:
Elliott Clark 2015-10-30 09:14:14 -07:00
parent f3af7b642c
commit 3578f643c7

View File

@ -21,15 +21,28 @@ import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Admin;
import java.io.IOException;
import java.util.concurrent.ThreadLocalRandom;
public class SplitAllRegionOfTableAction extends Action { public class SplitAllRegionOfTableAction extends Action {
private static final int DEFAULT_MAX_SPLITS = 3;
private static final String MAX_SPLIT_KEY = "hbase.chaosmonkey.action.maxFullTableSplits";
private final TableName tableName; private final TableName tableName;
private int maxFullTableSplits = DEFAULT_MAX_SPLITS;
private int splits = 0;
public SplitAllRegionOfTableAction(TableName tableName) { public SplitAllRegionOfTableAction(TableName tableName) {
this.tableName = tableName; this.tableName = tableName;
} }
public void init(ActionContext context) throws IOException {
super.init(context);
this.maxFullTableSplits = getConf().getInt(MAX_SPLIT_KEY, DEFAULT_MAX_SPLITS);
}
@Override @Override
public void perform() throws Exception { public void perform() throws Exception {
HBaseTestingUtility util = context.getHBaseIntegrationTestingUtility(); HBaseTestingUtility util = context.getHBaseIntegrationTestingUtility();
@ -38,7 +51,16 @@ public class SplitAllRegionOfTableAction extends Action {
if (context.isStopping()) { if (context.isStopping()) {
return; return;
} }
LOG.info("Performing action: Split all regions of " + tableName);
admin.split(tableName);
// Don't always split. This should allow splitting of a full table later in the run
if (ThreadLocalRandom.current().nextDouble()
< (((double) splits) / ((double) maxFullTableSplits)) / ((double) 2)) {
splits++;
LOG.info("Performing action: Split all regions of " + tableName);
admin.split(tableName);
} else {
LOG.info("Skipping split of all regions.");
}
} }
} }