This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit a27c317a300b3f2834fb45b58787745d55bc91bf
Author: Duo Zhang <zhang...@apache.org>
AuthorDate: Mon May 6 15:11:48 2024 +0800

    HBASE-28480 Remove deprecated methods in RegionCoprocessorHost for 3.0.0 
(#5873)
    
    Signed-off-by: Yi Mei <me...@apache.org>
    (cherry picked from commit 708882c6512a7b3f863ec17731bb0eba004039d1)
---
 .../hadoop/hbase/coprocessor/RegionObserver.java   | 19 +--------
 .../apache/hadoop/hbase/regionserver/HRegion.java  | 13 ------
 .../hadoop/hbase/regionserver/RSRpcServices.java   | 20 ---------
 .../hbase/regionserver/RegionCoprocessorHost.java  | 38 ++---------------
 .../coprocessor/SampleRegionWALCoprocessor.java    | 48 +++++++++-------------
 .../hbase/coprocessor/SimpleRegionObserver.java    | 36 ----------------
 .../coprocessor/TestRegionObserverInterface.java   | 45 ++------------------
 .../hadoop/hbase/coprocessor/TestWALObserver.java  |  5 +--
 8 files changed, 30 insertions(+), 194 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
index 018826644ac..21cabcec1f8 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
@@ -502,8 +502,9 @@ public interface RegionObserver {
    * @param byteNow  - timestamp bytes
    * @param get      - the get formed using the current cell's row. Note that 
the get does not
    *                 specify the family and qualifier
-   * @deprecated Since hbase-2.0.0. No replacement. To be removed in 
hbase-3.0.0 and replaced with
+   * @deprecated Since hbase-2.0.0. No replacement. To be removed in 
hbase-4.0.0 and replaced with
    *             something that doesn't expose IntefaceAudience.Private 
classes.
+   *             VisibilityController still needs this, need to change the 
logic there first.
    */
   @Deprecated
   default void 
prePrepareTimeStampForDeleteVersion(ObserverContext<RegionCoprocessorEnvironment>
 c,
@@ -1403,22 +1404,6 @@ public interface RegionObserver {
     RegionInfo info, Path edits) throws IOException {
   }
 
-  /**
-   * Called before a {@link WALEdit} replayed for this region.
-   * @param ctx the environment provided by the region server
-   */
-  default void preWALRestore(ObserverContext<? extends 
RegionCoprocessorEnvironment> ctx,
-    RegionInfo info, WALKey logKey, WALEdit logEdit) throws IOException {
-  }
-
-  /**
-   * Called after a {@link WALEdit} replayed for this region.
-   * @param ctx the environment provided by the region server
-   */
-  default void postWALRestore(ObserverContext<? extends 
RegionCoprocessorEnvironment> ctx,
-    RegionInfo info, WALKey logKey, WALEdit logEdit) throws IOException {
-  }
-
   /**
    * Called before bulkLoadHFile. Users can create a StoreFile instance to 
access the contents of a
    * HFile.
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index ae4045b1216..c55090d3a75 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -5656,15 +5656,6 @@ public class HRegion implements HeapSize, 
PropagatingConfigurationObserver, Regi
           currentReplaySeqId =
             (key.getOrigLogSeqNum() > 0) ? key.getOrigLogSeqNum() : 
currentEditSeqId;
 
-          // Start coprocessor replay here. The coprocessor is for each WALEdit
-          // instead of a KeyValue.
-          if (coprocessorHost != null) {
-            status.setStatus("Running pre-WAL-restore hook in coprocessors");
-            if (coprocessorHost.preWALRestore(this.getRegionInfo(), key, val)) 
{
-              // if bypass this wal entry, ignore it ...
-              continue;
-            }
-          }
           boolean checkRowWithinBoundary = false;
           // Check this edit is for this region.
           if (
@@ -5733,10 +5724,6 @@ public class HRegion implements HeapSize, 
PropagatingConfigurationObserver, Regi
             internalFlushcache(null, currentEditSeqId, stores.values(), 
status, false,
               FlushLifeCycleTracker.DUMMY);
           }
-
-          if (coprocessorHost != null) {
-            coprocessorHost.postWALRestore(this.getRegionInfo(), key, val);
-          }
         }
 
         if (coprocessorHost != null) {
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
index a2b9a93263d..babaa56170a 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
@@ -2089,7 +2089,6 @@ public class RSRpcServices extends 
HBaseRpcServicesBase<HRegionServer>
         ServerRegionReplicaUtil.isDefaultReplica(region.getRegionInfo())
           ? region.getCoprocessorHost()
           : null; // do not invoke coprocessors if this is a secondary region 
replica
-      List<Pair<WALKey, WALEdit>> walEntries = new ArrayList<>();
 
       // Skip adding the edits to WAL if this is a secondary region replica
       boolean isPrimary = 
RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());
@@ -2111,18 +2110,6 @@ public class RSRpcServices extends 
HBaseRpcServicesBase<HRegionServer>
         Pair<WALKey, WALEdit> walEntry = (coprocessorHost == null) ? null : 
new Pair<>();
         List<MutationReplay> edits =
           WALSplitUtil.getMutationsFromWALEntry(entry, cells, walEntry, 
durability);
-        if (coprocessorHost != null) {
-          // Start coprocessor replay here. The coprocessor is for each 
WALEdit instead of a
-          // KeyValue.
-          if (
-            coprocessorHost.preWALRestore(region.getRegionInfo(), 
walEntry.getFirst(),
-              walEntry.getSecond())
-          ) {
-            // if bypass this log entry, ignore it ...
-            continue;
-          }
-          walEntries.add(walEntry);
-        }
         if (edits != null && !edits.isEmpty()) {
           // HBASE-17924
           // sort to improve lock efficiency
@@ -2145,13 +2132,6 @@ public class RSRpcServices extends 
HBaseRpcServicesBase<HRegionServer>
       if (wal != null) {
         wal.sync();
       }
-
-      if (coprocessorHost != null) {
-        for (Pair<WALKey, WALEdit> entry : walEntries) {
-          coprocessorHost.postWALRestore(region.getRegionInfo(), 
entry.getFirst(),
-            entry.getSecond());
-        }
-      }
       return ReplicateWALEntryResponse.newBuilder().build();
     } catch (IOException ie) {
       throw new ServiceException(ie);
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
index ef84ca31f1d..398c596b63f 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
@@ -909,8 +909,9 @@ public class RegionCoprocessorHost
    * @param get      - the get that could be used Note that the get only does 
not specify the family
    *                 and qualifier that should be used
    * @return true if default processing should be bypassed
-   * @deprecated In hbase-2.0.0. Will be removed in hbase-3.0.0. Added 
explicitly for a single
-   *             Coprocessor for its needs only. Will be removed.
+   * @deprecated In hbase-2.0.0. Will be removed in hbase-4.0.0. Added 
explicitly for a single
+   *             Coprocessor for its needs only. Will be removed. 
VisibilityController still needs
+   *             this, need to change the logic there first.
    */
   @Deprecated
   public boolean prePrepareTimeStampForDeleteVersion(final Mutation mutation, 
final Cell kv,
@@ -1386,39 +1387,6 @@ public class RegionCoprocessorHost
     });
   }
 
-  /**
-   * Supports Coprocessor 'bypass'.
-   * @return true if default behavior should be bypassed, false otherwise
-   * @deprecated Since hbase-2.0.0. No replacement. To be removed in 
hbase-3.0.0 and replaced with
-   *             something that doesn't expose IntefaceAudience.Private 
classes.
-   */
-  @Deprecated
-  public boolean preWALRestore(final RegionInfo info, final WALKey logKey, 
final WALEdit logEdit)
-    throws IOException {
-    return execOperation(
-      coprocEnvironments.isEmpty() ? null : new 
RegionObserverOperationWithoutResult(true) {
-        @Override
-        public void call(RegionObserver observer) throws IOException {
-          observer.preWALRestore(this, info, logKey, logEdit);
-        }
-      });
-  }
-
-  /**
-   * @deprecated Since hbase-2.0.0. No replacement. To be removed in 
hbase-3.0.0 and replaced with
-   *             something that doesn't expose IntefaceAudience.Private 
classes.
-   */
-  @Deprecated
-  public void postWALRestore(final RegionInfo info, final WALKey logKey, final 
WALEdit logEdit)
-    throws IOException {
-    execOperation(coprocEnvironments.isEmpty() ? null : new 
RegionObserverOperationWithoutResult() {
-      @Override
-      public void call(RegionObserver observer) throws IOException {
-        observer.postWALRestore(this, info, logKey, logEdit);
-      }
-    });
-  }
-
   /**
    * @param familyPaths pairs of { CF, file path } submitted for bulk load
    */
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SampleRegionWALCoprocessor.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SampleRegionWALCoprocessor.java
index 65c42a8250d..17ab26c6a58 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SampleRegionWALCoprocessor.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SampleRegionWALCoprocessor.java
@@ -53,10 +53,10 @@ public class SampleRegionWALCoprocessor
 
   private boolean preWALWriteCalled = false;
   private boolean postWALWriteCalled = false;
-  private boolean preWALRestoreCalled = false;
-  private boolean postWALRestoreCalled = false;
   private boolean preWALRollCalled = false;
   private boolean postWALRollCalled = false;
+  private boolean preReplayWALsCalled = false;
+  private boolean postReplayWALsCalled = false;
 
   /**
    * Set values: with a table name, a column name which will be ignored, and a 
column name which
@@ -74,8 +74,6 @@ public class SampleRegionWALCoprocessor
     this.changedQualifier = chq;
     preWALWriteCalled = false;
     postWALWriteCalled = false;
-    preWALRestoreCalled = false;
-    postWALRestoreCalled = false;
     preWALRollCalled = false;
     postWALRollCalled = false;
   }
@@ -132,15 +130,6 @@ public class SampleRegionWALCoprocessor
     }
   }
 
-  /**
-   * Triggered before {@link org.apache.hadoop.hbase.regionserver.HRegion} 
when WAL is Restoreed.
-   */
-  @Override
-  public void preWALRestore(ObserverContext<? extends 
RegionCoprocessorEnvironment> env,
-    RegionInfo info, WALKey logKey, WALEdit logEdit) throws IOException {
-    preWALRestoreCalled = true;
-  }
-
   @Override
   public void preWALRoll(ObserverContext<? extends WALCoprocessorEnvironment> 
ctx, Path oldPath,
     Path newPath) throws IOException {
@@ -153,13 +142,16 @@ public class SampleRegionWALCoprocessor
     postWALRollCalled = true;
   }
 
-  /**
-   * Triggered after {@link org.apache.hadoop.hbase.regionserver.HRegion} when 
WAL is Restoreed.
-   */
   @Override
-  public void postWALRestore(ObserverContext<? extends 
RegionCoprocessorEnvironment> env,
-    RegionInfo info, WALKey logKey, WALEdit logEdit) throws IOException {
-    postWALRestoreCalled = true;
+  public void preReplayWALs(ObserverContext<? extends 
RegionCoprocessorEnvironment> ctx,
+    RegionInfo info, Path edits) throws IOException {
+    preReplayWALsCalled = true;
+  }
+
+  @Override
+  public void postReplayWALs(ObserverContext<? extends 
RegionCoprocessorEnvironment> ctx,
+    RegionInfo info, Path edits) throws IOException {
+    postReplayWALsCalled = true;
   }
 
   public boolean isPreWALWriteCalled() {
@@ -170,16 +162,6 @@ public class SampleRegionWALCoprocessor
     return postWALWriteCalled;
   }
 
-  public boolean isPreWALRestoreCalled() {
-    LOG.debug(SampleRegionWALCoprocessor.class.getName() + 
".isPreWALRestoreCalled is called.");
-    return preWALRestoreCalled;
-  }
-
-  public boolean isPostWALRestoreCalled() {
-    LOG.debug(SampleRegionWALCoprocessor.class.getName() + 
".isPostWALRestoreCalled is called.");
-    return postWALRestoreCalled;
-  }
-
   public boolean isPreWALRollCalled() {
     return preWALRollCalled;
   }
@@ -187,4 +169,12 @@ public class SampleRegionWALCoprocessor
   public boolean isPostWALRollCalled() {
     return postWALRollCalled;
   }
+
+  public boolean isPreReplayWALsCalled() {
+    return preReplayWALsCalled;
+  }
+
+  public boolean isPostReplayWALsCalled() {
+    return postReplayWALsCalled;
+  }
 }
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java
index be54f320ef7..62f65d6d614 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java
@@ -128,8 +128,6 @@ public class SimpleRegionObserver implements 
RegionCoprocessor, RegionObserver {
   final AtomicInteger ctPostBatchMutate = new AtomicInteger(0);
   final AtomicInteger ctPreReplayWALs = new AtomicInteger(0);
   final AtomicInteger ctPostReplayWALs = new AtomicInteger(0);
-  final AtomicInteger ctPreWALRestore = new AtomicInteger(0);
-  final AtomicInteger ctPostWALRestore = new AtomicInteger(0);
   final AtomicInteger ctPreStoreFileReaderOpen = new AtomicInteger(0);
   final AtomicInteger ctPostStoreFileReaderOpen = new AtomicInteger(0);
   final AtomicInteger ctPostBatchMutateIndispensably = new AtomicInteger(0);
@@ -683,24 +681,6 @@ public class SimpleRegionObserver implements 
RegionCoprocessor, RegionObserver {
     ctPostReplayWALs.incrementAndGet();
   }
 
-  @Override
-  public void preWALRestore(ObserverContext<? extends 
RegionCoprocessorEnvironment> env,
-    RegionInfo info, WALKey logKey, WALEdit logEdit) throws IOException {
-    String tableName = logKey.getTableName().getNameAsString();
-    if (tableName.equals(TABLE_SKIPPED)) {
-      // skip recovery of TABLE_SKIPPED for testing purpose
-      env.bypass();
-      return;
-    }
-    ctPreWALRestore.incrementAndGet();
-  }
-
-  @Override
-  public void postWALRestore(ObserverContext<? extends 
RegionCoprocessorEnvironment> env,
-    RegionInfo info, WALKey logKey, WALEdit logEdit) throws IOException {
-    ctPostWALRestore.incrementAndGet();
-  }
-
   @Override
   public StoreFileReader 
preStoreFileReaderOpen(ObserverContext<RegionCoprocessorEnvironment> ctx,
     FileSystem fs, Path p, FSDataInputStreamWrapper in, long size, CacheConfig 
cacheConf,
@@ -915,14 +895,6 @@ public class SimpleRegionObserver implements 
RegionCoprocessor, RegionObserver {
     return ctPostReplayWALs.get() > 0;
   }
 
-  public boolean hadPreWALRestore() {
-    return ctPreWALRestore.get() > 0;
-  }
-
-  public boolean hadPostWALRestore() {
-    return ctPostWALRestore.get() > 0;
-  }
-
   public boolean wasScannerNextCalled() {
     return ctPreScannerNext.get() > 0 && ctPostScannerNext.get() > 0;
   }
@@ -1035,14 +1007,6 @@ public class SimpleRegionObserver implements 
RegionCoprocessor, RegionObserver {
     return ctPostReplayWALs.get();
   }
 
-  public int getCtPreWALRestore() {
-    return ctPreWALRestore.get();
-  }
-
-  public int getCtPostWALRestore() {
-    return ctPostWALRestore.get();
-  }
-
   public int getCtPreWALAppend() {
     return ctPreWALAppend.get();
   }
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverInterface.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverInterface.java
index 36e3ef1e0ff..3787acbbf25 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverInterface.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverInterface.java
@@ -767,9 +767,8 @@ public class TestRegionObserverInterface {
         tableName, new Boolean[] { false, false, true, true, true, true, false 
});
 
       verifyMethodResult(SimpleRegionObserver.class,
-        new String[] { "getCtPreReplayWALs", "getCtPostReplayWALs", 
"getCtPreWALRestore",
-          "getCtPostWALRestore", "getCtPrePut", "getCtPostPut" },
-        tableName, new Integer[] { 0, 0, 0, 0, 2, 2 });
+        new String[] { "getCtPreReplayWALs", "getCtPostReplayWALs", 
"getCtPrePut", "getCtPostPut" },
+        tableName, new Integer[] { 0, 0, 2, 2 });
 
       cluster.killRegionServer(rs1.getRegionServer().getServerName());
       Threads.sleep(1000); // Let the kill soak in.
@@ -777,50 +776,14 @@ public class TestRegionObserverInterface {
       LOG.info("All regions assigned");
 
       verifyMethodResult(SimpleRegionObserver.class,
-        new String[] { "getCtPreReplayWALs", "getCtPostReplayWALs", 
"getCtPreWALRestore",
-          "getCtPostWALRestore", "getCtPrePut", "getCtPostPut" },
-        tableName, new Integer[] { 1, 1, 2, 2, 0, 0 });
+        new String[] { "getCtPreReplayWALs", "getCtPostReplayWALs", 
"getCtPrePut", "getCtPostPut" },
+        tableName, new Integer[] { 1, 1, 0, 0 });
     } finally {
       util.deleteTable(tableName);
       table.close();
     }
   }
 
-  @Test
-  public void testPreWALRestoreSkip() throws Exception {
-    LOG.info(TestRegionObserverInterface.class.getName() + "." + 
name.getMethodName());
-    TableName tableName = 
TableName.valueOf(SimpleRegionObserver.TABLE_SKIPPED);
-    Table table = util.createTable(tableName, new byte[][] { A, B, C });
-
-    try (RegionLocator locator = 
util.getConnection().getRegionLocator(tableName)) {
-      JVMClusterUtil.RegionServerThread rs1 = cluster.startRegionServer();
-      ServerName sn2 = rs1.getRegionServer().getServerName();
-      String regEN = 
locator.getAllRegionLocations().get(0).getRegion().getEncodedName();
-
-      util.getAdmin().move(Bytes.toBytes(regEN), sn2);
-      while 
(!sn2.equals(locator.getAllRegionLocations().get(0).getServerName())) {
-        Thread.sleep(100);
-      }
-
-      Put put = new Put(ROW);
-      put.addColumn(A, A, A);
-      put.addColumn(B, B, B);
-      put.addColumn(C, C, C);
-      table.put(put);
-
-      cluster.killRegionServer(rs1.getRegionServer().getServerName());
-      Threads.sleep(20000); // just to be sure that the kill has fully started.
-      util.waitUntilAllRegionsAssigned(tableName);
-    }
-
-    verifyMethodResult(SimpleRegionObserver.class,
-      new String[] { "getCtPreWALRestore", "getCtPostWALRestore", }, tableName,
-      new Integer[] { 0, 0 });
-
-    util.deleteTable(tableName);
-    table.close();
-  }
-
   // called from testPreWALAppendIsWrittenToWAL
   private void testPreWALAppendHook(Table table, TableName tableName) throws 
IOException {
     int expectedCalls = 0;
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java
index be80d92bf57..105c57b55ea 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java
@@ -355,10 +355,9 @@ public class TestWALObserver {
 
         SampleRegionWALCoprocessor cp2 =
           
region.getCoprocessorHost().findCoprocessor(SampleRegionWALCoprocessor.class);
-        // TODO: asserting here is problematic.
         assertNotNull(cp2);
-        assertTrue(cp2.isPreWALRestoreCalled());
-        assertTrue(cp2.isPostWALRestoreCalled());
+        assertTrue(cp2.isPreReplayWALsCalled());
+        assertTrue(cp2.isPostReplayWALsCalled());
         region.close();
         wals2.close();
         return null;

Reply via email to