HBASE-9757 Reenable fast region move in SlowDeterministicMonkey
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1541811 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5a7fa744f8
commit
5583310bb1
|
@ -60,7 +60,7 @@ public class ChangeEncodingAction extends Action {
|
||||||
|
|
||||||
LOG.debug("Performing action: Changing encodings on " + tableNameString);
|
LOG.debug("Performing action: Changing encodings on " + tableNameString);
|
||||||
// possible DataBlockEncoding id's
|
// possible DataBlockEncoding id's
|
||||||
int[] possibleIds = {0, 2, 3, 4, 6};
|
int[] possibleIds = {0, 2, 3, 4/*, 6*/};
|
||||||
for (HColumnDescriptor descriptor : columnDescriptors) {
|
for (HColumnDescriptor descriptor : columnDescriptors) {
|
||||||
short id = (short) possibleIds[random.nextInt(possibleIds.length)];
|
short id = (short) possibleIds[random.nextInt(possibleIds.length)];
|
||||||
descriptor.setDataBlockEncoding(DataBlockEncoding.getEncodingById(id));
|
descriptor.setDataBlockEncoding(DataBlockEncoding.getEncodingById(id));
|
||||||
|
|
|
@ -55,7 +55,8 @@ public class SlowDeterministicMonkeyFactory extends MonkeyFactory {
|
||||||
new CompactTableAction(tableName, 0.5f),
|
new CompactTableAction(tableName, 0.5f),
|
||||||
new CompactRandomRegionOfTableAction(tableName, 0.6f),
|
new CompactRandomRegionOfTableAction(tableName, 0.6f),
|
||||||
new FlushTableAction(tableName),
|
new FlushTableAction(tableName),
|
||||||
new FlushRandomRegionOfTableAction(tableName)
|
new FlushRandomRegionOfTableAction(tableName),
|
||||||
|
new MoveRandomRegionOfTableAction(tableName)
|
||||||
};
|
};
|
||||||
|
|
||||||
// Actions such as split/merge/snapshot.
|
// Actions such as split/merge/snapshot.
|
||||||
|
@ -73,13 +74,13 @@ public class SlowDeterministicMonkeyFactory extends MonkeyFactory {
|
||||||
|
|
||||||
// Destructive actions to mess things around.
|
// Destructive actions to mess things around.
|
||||||
Action[] actions3 = new Action[] {
|
Action[] actions3 = new Action[] {
|
||||||
new MoveRegionsOfTableAction(20000, tableName),
|
new MoveRegionsOfTableAction(800, tableName),
|
||||||
new MoveRandomRegionOfTableAction(20000, tableName),
|
new MoveRandomRegionOfTableAction(800, tableName),
|
||||||
new RestartRandomRsAction(60000),
|
new RestartRandomRsAction(60000),
|
||||||
new BatchRestartRsAction(60000, 0.5f),
|
new BatchRestartRsAction(5000, 0.5f),
|
||||||
new RestartActiveMasterAction(5000),
|
new RestartActiveMasterAction(5000),
|
||||||
new RollingBatchRestartRsAction(5000, 1.0f),
|
new RollingBatchRestartRsAction(5000, 1.0f),
|
||||||
new RestartRsHoldingMetaAction(35000),
|
new RestartRsHoldingMetaAction(35000)
|
||||||
};
|
};
|
||||||
|
|
||||||
// Action to log more info for debugging
|
// Action to log more info for debugging
|
||||||
|
|
|
@ -48,7 +48,6 @@ import org.apache.hadoop.hbase.IntegrationTestBase;
|
||||||
import org.apache.hadoop.hbase.IntegrationTestingUtility;
|
import org.apache.hadoop.hbase.IntegrationTestingUtility;
|
||||||
import org.apache.hadoop.hbase.IntegrationTests;
|
import org.apache.hadoop.hbase.IntegrationTests;
|
||||||
import org.apache.hadoop.hbase.TableName;
|
import org.apache.hadoop.hbase.TableName;
|
||||||
import org.apache.hadoop.hbase.chaos.monkies.CalmChaosMonkey;
|
|
||||||
import org.apache.hadoop.hbase.client.Get;
|
import org.apache.hadoop.hbase.client.Get;
|
||||||
import org.apache.hadoop.hbase.client.HBaseAdmin;
|
import org.apache.hadoop.hbase.client.HBaseAdmin;
|
||||||
import org.apache.hadoop.hbase.client.HConnection;
|
import org.apache.hadoop.hbase.client.HConnection;
|
||||||
|
@ -65,7 +64,6 @@ import org.apache.hadoop.hbase.mapreduce.TableMapper;
|
||||||
import org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl;
|
import org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl;
|
||||||
import org.apache.hadoop.hbase.util.AbstractHBaseTool;
|
import org.apache.hadoop.hbase.util.AbstractHBaseTool;
|
||||||
import org.apache.hadoop.hbase.util.Bytes;
|
import org.apache.hadoop.hbase.util.Bytes;
|
||||||
import org.apache.hadoop.hbase.util.HBaseFsck;
|
|
||||||
import org.apache.hadoop.io.BytesWritable;
|
import org.apache.hadoop.io.BytesWritable;
|
||||||
import org.apache.hadoop.io.NullWritable;
|
import org.apache.hadoop.io.NullWritable;
|
||||||
import org.apache.hadoop.io.Text;
|
import org.apache.hadoop.io.Text;
|
||||||
|
@ -754,7 +752,7 @@ public class IntegrationTestBigLinkedList extends IntegrationTestBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean runVerify(String outputDir,
|
protected void runVerify(String outputDir,
|
||||||
int numReducers, long expectedNumNodes) throws Exception {
|
int numReducers, long expectedNumNodes) throws Exception {
|
||||||
Path outputPath = new Path(outputDir);
|
Path outputPath = new Path(outputDir);
|
||||||
UUID uuid = UUID.randomUUID(); //create a random UUID.
|
UUID uuid = UUID.randomUUID(); //create a random UUID.
|
||||||
|
@ -768,19 +766,10 @@ public class IntegrationTestBigLinkedList extends IntegrationTestBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!verify.verify(expectedNumNodes)) {
|
if (!verify.verify(expectedNumNodes)) {
|
||||||
try {
|
throw new RuntimeException("Verify.verify failed");
|
||||||
HBaseFsck fsck = new HBaseFsck(getConf());
|
|
||||||
HBaseFsck.setDisplayFullReport();
|
|
||||||
fsck.connect();
|
|
||||||
fsck.onlineHbck();
|
|
||||||
} catch (Throwable t) {
|
|
||||||
LOG.error("Failed to run hbck", t);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG.info("Verify finished with succees. Total nodes=" + expectedNumNodes);
|
LOG.info("Verify finished with succees. Total nodes=" + expectedNumNodes);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -810,17 +799,7 @@ public class IntegrationTestBigLinkedList extends IntegrationTestBase {
|
||||||
runGenerator(numMappers, numNodes, outputDir, width, wrapMuplitplier);
|
runGenerator(numMappers, numNodes, outputDir, width, wrapMuplitplier);
|
||||||
expectedNumNodes += numMappers * numNodes;
|
expectedNumNodes += numMappers * numNodes;
|
||||||
|
|
||||||
if (!runVerify(outputDir, numReducers, expectedNumNodes)) {
|
runVerify(outputDir, numReducers, expectedNumNodes);
|
||||||
if (it.monkey != null && !(it.monkey instanceof CalmChaosMonkey)) {
|
|
||||||
LOG.info("Verify.verify failed, let's stop CM and verify again");
|
|
||||||
it.cleanUpMonkey("Stop monkey before verify again after verify failed");
|
|
||||||
if (!runVerify(outputDir, numReducers, expectedNumNodes)) {
|
|
||||||
LOG.info("Verify.verify failed even without CM, verify one more");
|
|
||||||
runVerify(outputDir, numReducers, expectedNumNodes);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
throw new RuntimeException("Verify.verify failed");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue