You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ha...@apache.org on 2021/11/08 03:41:14 UTC
[hbase] branch branch-2 updated: Revert "HBASE-25322 Redundant
Reference file in bottom region of split (#3814)"
This is an automated email from the ASF dual-hosted git repository.
haxiaolin pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new ebd89b5 Revert "HBASE-25322 Redundant Reference file in bottom region of split (#3814)"
ebd89b5 is described below
commit ebd89b58ebf7d1e5159dfade529dac098c3f03e9
Author: haxiaolin <ha...@apache.org>
AuthorDate: Mon Nov 8 11:40:43 2021 +0800
Revert "HBASE-25322 Redundant Reference file in bottom region of split (#3814)"
This reverts commit a6edf4417587d0a5d3e1dc5a52ec98d7b7bfe317.
---
.../hbase/regionserver/HRegionFileSystem.java | 3 +-
.../master/assignment/AssignmentTestingUtil.java | 10 +----
.../hbase/master/assignment/TestRegionSplit.java | 51 ----------------------
3 files changed, 3 insertions(+), 61 deletions(-)
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 69d9c8f..5b26f9a 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
@@ -667,9 +667,9 @@ public class HRegionFileSystem {
// 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<Cell> lastKey = f.getLastKey();
// If lastKey is null means storefile is empty.
if (!lastKey.isPresent()) {
@@ -680,6 +680,7 @@ public class HRegionFileSystem {
}
} else {
//check if smaller than first key
+ Cell splitKey = PrivateCellUtil.createLastOnRow(splitRow);
Optional<Cell> 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 c2c010a..97fa2c00 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 final class AssignmentTestingUtil {
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 final class AssignmentTestingUtil {
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 6e264da..a64795a 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 @@ package org.apache.hadoop.hbase.master.assignment;
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.MasterTests;
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 class TestRegionSplit {
regionInfoMap.get(tableRegions.get(1).getRegionInfo()));
}
- @Test
- public void testSplitStoreFiles() throws Exception {
- final TableName tableName = TableName.valueOf(name.getMethodName());
- final ProcedureExecutor<MasterProcedureEnv> 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<HRegion> tableRegions = UTIL.getHBaseCluster().getRegions(tableName);
- assertEquals("Table region not correct.", 2, tableRegions.size());
- Map<RegionInfo, ServerName> regionInfoMap = UTIL.getHBaseCluster().getMaster()
- .getAssignmentManager().getRegionStates().getRegionAssignments();
- assertEquals(regionInfoMap.get(tableRegions.get(0).getRegionInfo()),
- regionInfoMap.get(tableRegions.get(1).getRegionInfo()));
- }
-
private ProcedureExecutor<MasterProcedureEnv> getMasterProcedureExecutor() {
return UTIL.getHBaseCluster().getMaster().getMasterProcedureExecutor();
}