diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionFileSystem.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionFileSystem.java index 7e22a51ab9fa..dd26f1ca9cc1 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionFileSystem.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionFileSystem.java @@ -703,9 +703,9 @@ public Path splitStoreFile(RegionInfo hri, String familyName, HStoreFile f, byte // If it is outside the range, return directly. f.initReader(); try { - Cell splitKey = PrivateCellUtil.createFirstOnRow(splitRow); if (top) { //check if larger than last key. + Cell splitKey = PrivateCellUtil.createFirstOnRow(splitRow); Optional lastKey = f.getLastKey(); // If lastKey is null means storefile is empty. if (!lastKey.isPresent()) { @@ -716,6 +716,7 @@ public Path splitStoreFile(RegionInfo hri, String familyName, HStoreFile f, byte } } else { //check if smaller than first key + Cell splitKey = PrivateCellUtil.createLastOnRow(splitRow); Optional firstKey = f.getFirstKey(); // If firstKey is null means storefile is empty. if (!firstKey.isPresent()) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.java index c2c010a42fe4..97fa2c006f87 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.java @@ -159,11 +159,6 @@ public static boolean waitForAssignment(AssignmentManager am, RegionInfo regionI public static void insertData(final HBaseTestingUtility UTIL, final TableName tableName, int rowCount, int startRowNum, String... cfs) throws IOException { - insertData(UTIL, tableName, rowCount, startRowNum, false, cfs); - } - - public static void insertData(final HBaseTestingUtil UTIL, final TableName tableName, - int rowCount, int startRowNum, boolean flushOnce, String... cfs) throws IOException { Table t = UTIL.getConnection().getTable(tableName); Put p; for (int i = 0; i < rowCount / 2; i++) { @@ -177,12 +172,9 @@ public static void insertData(final HBaseTestingUtil UTIL, final TableName table p.addColumn(Bytes.toBytes(cf), Bytes.toBytes("q"), Bytes.toBytes(i)); } t.put(p); - if (i % 5 == 0 && !flushOnce) { + if (i % 5 == 0) { UTIL.getAdmin().flush(tableName); } } - if (flushOnce) { - UTIL.getAdmin().flush(tableName); - } } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionSplit.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionSplit.java index 6e264da687c5..a64795aaa3f5 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionSplit.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionSplit.java @@ -19,9 +19,7 @@ import static org.apache.hadoop.hbase.master.assignment.AssignmentTestingUtil.insertData; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; - import java.util.List; import java.util.Map; import org.apache.hadoop.conf.Configuration; @@ -41,7 +39,6 @@ import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.JVMClusterUtil; - import org.junit.After; import org.junit.AfterClass; import org.junit.Before; @@ -160,54 +157,6 @@ public void testSplitTableRegion() throws Exception { regionInfoMap.get(tableRegions.get(1).getRegionInfo())); } - @Test - public void testSplitStoreFiles() throws Exception { - final TableName tableName = TableName.valueOf(name.getMethodName()); - final ProcedureExecutor procExec = getMasterProcedureExecutor(); - - RegionInfo[] regions = MasterProcedureTestingUtility.createTable(procExec, tableName, - null, columnFamilyName); - // flush the memstore - insertData(UTIL, tableName, rowCount, startRowNum, true, columnFamilyName); - - // assert the hfile count of the table - int storeFilesCountSum = 0; - for(HRegion region : UTIL.getHBaseCluster().getRegions(tableName)){ - storeFilesCountSum += region.getStore(Bytes.toBytes(columnFamilyName)).getStorefiles().size(); - } - assertEquals(1, storeFilesCountSum); - - // split at the start row - byte[] splitKey = Bytes.toBytes("" + startRowNum); - - assertNotNull("Not able to find a splittable region", regions); - assertEquals("Not able to find a splittable region", 1, regions.length); - - // Split region of the table - long procId = procExec.submitProcedure( - new SplitTableRegionProcedure(procExec.getEnvironment(), regions[0], splitKey)); - // Wait the completion - ProcedureTestingUtility.waitProcedure(procExec, procId); - ProcedureTestingUtility.assertProcNotFailed(procExec, procId); - - assertEquals("Not able to split table", - 2, UTIL.getHBaseCluster().getRegions(tableName).size()); - - // assert sum of the hfiles of all regions - int childStoreFilesSum = 0; - for(HRegion region : UTIL.getHBaseCluster().getRegions(tableName)){ - childStoreFilesSum += region.getStore(Bytes.toBytes(columnFamilyName)).getStorefiles().size(); - } - assertEquals(1, childStoreFilesSum); - - List tableRegions = UTIL.getHBaseCluster().getRegions(tableName); - assertEquals("Table region not correct.", 2, tableRegions.size()); - Map regionInfoMap = UTIL.getHBaseCluster().getMaster() - .getAssignmentManager().getRegionStates().getRegionAssignments(); - assertEquals(regionInfoMap.get(tableRegions.get(0).getRegionInfo()), - regionInfoMap.get(tableRegions.get(1).getRegionInfo())); - } - private ProcedureExecutor getMasterProcedureExecutor() { return UTIL.getHBaseCluster().getMaster().getMasterProcedureExecutor(); }