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();
   }