@Override public void perform() throws Exception { HBaseTestingUtility util = context.getHBaseIntegrationTestingUtility(); Admin admin = util.getAdmin(); // Don't try the split if we're stopping if (context.isStopping()) { return; } // 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."); } } }
private List<HRegionLocation> splitTable(final Table t) throws IOException, InterruptedException { // Split this table in two. Admin admin = TEST_UTIL.getAdmin(); admin.split(t.getName()); admin.close(); List<HRegionLocation> regions = waitOnSplit(t); assertTrue(regions.size() > 1); return regions; }
@Test public void testSplitShouldNotHappenIfSplitIsDisabledForTable() throws Exception { final TableName tableName = TableName.valueOf(name.getMethodName()); HTableDescriptor htd = new HTableDescriptor(tableName); htd.addFamily(new HColumnDescriptor("f")); htd.setRegionSplitPolicyClassName(DisabledRegionSplitPolicy.class.getName()); Table table = TEST_UTIL.createTable(htd, null); for(int i = 0; i < 10; i++) { Put p = new Put(Bytes.toBytes("row"+i)); byte[] q1 = Bytes.toBytes("q1"); byte[] v1 = Bytes.toBytes("v1"); p.addColumn(Bytes.toBytes("f"), q1, v1); table.put(p); } this.admin.flush(tableName); try { this.admin.split(tableName, Bytes.toBytes("row5")); Threads.sleep(10000); } catch (Exception e) { // Nothing to do. } // Split should not happen. List<RegionInfo> allRegions = MetaTableAccessor.getTableRegions( this.admin.getConnection(), tableName, true); assertEquals(1, allRegions.size()); }
private void splitRegion(final RegionInfo regionInfo) throws IOException { byte[][] splitPoints = Bytes.split(regionInfo.getStartKey(), regionInfo.getEndKey(), 1); admin.split(regionInfo.getTable(), splitPoints[1]); }
protected final void splitRegion(RegionInfo regionInfo) throws IOException { byte[][] splitPoints = Bytes.split(regionInfo.getStartKey(), regionInfo.getEndKey(), 1); admin.split(regionInfo.getTable(), splitPoints[1]); }
for (byte[] splitPoint : SPLIT_KEYS) { int oldRegionCount = admin.getRegions(TABLE_NAME).size(); admin.split(TABLE_NAME, splitPoint); TEST_UTIL.waitFor(30000, new ExplainingPredicate<Exception>() { @Override
@Test public void testRestoreSnapshot() throws Exception { String nsp = prefix + "_testRestoreSnapshot"; NamespaceDescriptor nspDesc = NamespaceDescriptor.create(nsp) .addConfiguration(TableNamespaceManager.KEY_MAX_REGIONS, "10").build(); ADMIN.createNamespace(nspDesc); assertNotNull("Namespace descriptor found null.", ADMIN.getNamespaceDescriptor(nsp)); TableName tableName1 = TableName.valueOf(nsp + TableName.NAMESPACE_DELIM + "table1"); HTableDescriptor tableDescOne = new HTableDescriptor(tableName1); HColumnDescriptor fam1 = new HColumnDescriptor("fam1"); tableDescOne.addFamily(fam1); ADMIN.createTable(tableDescOne, Bytes.toBytes("AAA"), Bytes.toBytes("ZZZ"), 4); NamespaceTableAndRegionInfo nstate = getNamespaceState(nsp); assertEquals("Intial region count should be 4.", 4, nstate.getRegionCount()); String snapshot = "snapshot_testRestoreSnapshot"; ADMIN.snapshot(snapshot, tableName1); List<HRegionInfo> regions = ADMIN.getTableRegions(tableName1); Collections.sort(regions); ADMIN.split(tableName1, Bytes.toBytes("JJJ")); Thread.sleep(2000); assertEquals("Total regions count should be 5.", 5, nstate.getRegionCount()); ADMIN.disableTable(tableName1); ADMIN.restoreSnapshot(snapshot); assertEquals("Total regions count should be 4 after restore.", 4, nstate.getRegionCount()); ADMIN.enableTable(tableName1); ADMIN.deleteSnapshot(snapshot); }
@Test public void testSplitFlushCompactUnknownTable() throws InterruptedException { final TableName unknowntable = TableName.valueOf(name.getMethodName()); Exception exception = null; try { this.admin.compact(unknowntable); } catch (IOException e) { exception = e; } assertTrue(exception instanceof TableNotFoundException); exception = null; try { this.admin.flush(unknowntable); } catch (IOException e) { exception = e; } assertTrue(exception instanceof TableNotFoundException); exception = null; try { this.admin.split(unknowntable); } catch (IOException e) { exception = e; } assertTrue(exception instanceof TableNotFoundException); }
TEST_UTIL.getAdmin().split(TABLENAME);
admin.split(tableName); TEST_UTIL.waitFor(60000, new Waiter.Predicate<Exception>() { @Override
@Test public void testSplitSwitch() throws Exception { final TableName tableName = TableName.valueOf(name.getMethodName()); Table t = TEST_UTIL.createTable(tableName, FAMILY); TEST_UTIL.loadTable(t, FAMILY, false); RegionLocator locator = TEST_UTIL.getConnection().getRegionLocator(t.getName()); int originalCount = locator.getAllRegionLocations().size(); Admin admin = TEST_UTIL.getAdmin(); initSwitchStatus(admin); boolean[] results = admin.setSplitOrMergeEnabled(false, false, MasterSwitchType.SPLIT); assertEquals(1, results.length); assertTrue(results[0]); admin.split(t.getName()); int count = admin.getTableRegions(tableName).size(); assertTrue(originalCount == count); results = admin.setSplitOrMergeEnabled(true, false, MasterSwitchType.SPLIT); assertEquals(1, results.length); assertFalse(results[0]); admin.split(t.getName()); while ((count = admin.getTableRegions(tableName).size()) == originalCount) { Threads.sleep(1); } count = admin.getTableRegions(tableName).size(); assertTrue(originalCount < count); admin.close(); }
region.flush(true); LOG.info("About to SPLIT on " + Bytes.toString(ROW1)); TEST_UTIL.getAdmin().split(tableName, ROW1);
int originalCount = admin.getTableRegions(tableName).size(); initSwitchStatus(admin); admin.split(t.getName()); int postSplitCount = -1; while ((postSplitCount = admin.getTableRegions(tableName).size()) == originalCount) {
Admin admin = UTIL.getAdmin(); try { admin.split(TEST_TABLE);
private void splitAndTruncate(TableName tableName, RegionInfo[] regions, int regionReplication) throws IOException, InterruptedException { // split a region UTIL.getAdmin().split(tableName, new byte[] { '0' }); // wait until split really happens UTIL.waitFor(60000, () -> UTIL.getAdmin().getRegions(tableName).size() > regions.length * regionReplication); // disable the table UTIL.getAdmin().disableTable(tableName); // truncate the table ProcedureExecutor<MasterProcedureEnv> procExec = getMasterProcedureExecutor(); long procId = ProcedureTestingUtility.submitAndWait(procExec, new TruncateTableProcedure(procExec.getEnvironment(), tableName, true)); ProcedureTestingUtility.assertProcNotFailed(procExec, procId); UTIL.waitUntilAllRegionsAssigned(tableName); // confirm that we have the correct number of regions assertEquals((regions.length + 1) * regionReplication, UTIL.getAdmin().getRegions(tableName).size()); } }
UTIL.getAdmin().createTable(td, new byte[][] { Bytes.toBytes(1) }); UTIL.waitTableAvailable(tableName); UTIL.getAdmin().split(tableName, Bytes.toBytes(2)); UTIL.waitFor(30000, new ExplainingPredicate<Exception>() {
admin.split(tableName, splitPoint);
admin.split(tableName, Bytes.toBytes("eee")); TestTableSnapshotScanner.blockUntilSplitFinished(UTIL, tableName, 2);
admin.split(tableName, Bytes.toBytes("eee")); blockUntilSplitFinished(UTIL, tableName, 2);
HTU.getAdmin().split(table.getName(), Bytes.toBytes(1)); int count = 0; while (true) {