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

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


The following commit(s) were added to refs/heads/branch-3 by this push:
     new fadaae13107 HBASE-29323 Use Priority Handler for all 
RegionServerStatus rpc at Master (#6994)
fadaae13107 is described below

commit fadaae13107d774de711236a3e32df2fe8905426
Author: Umesh <[email protected]>
AuthorDate: Mon May 19 11:34:59 2025 +0530

    HBASE-29323 Use Priority Handler for all RegionServerStatus rpc at Master 
(#6994)
    
    Co-authored-by: ukumawat <[email protected]>
    
    Signed-off-by: Duo Zhang <[email protected]>
    Signed-off-by: Nihal Jain <[email protected]>
    Signed-off-by: Viraj Jasani <[email protected]>
    Reviewed-by: Aman Poonia <[email protected]>
    
    (cherry picked from commit d187378517dd7f275a8dcc048580cfe0e02b9663)
---
 .../MasterAnnotationReadingPriorityFunction.java   |  4 +--
 .../hadoop/hbase/master/MasterRpcServices.java     |  6 ++--
 .../hadoop/hbase/master/TestMasterQosFunction.java | 32 +++++++++++++++++++++-
 3 files changed, 35 insertions(+), 7 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterAnnotationReadingPriorityFunction.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterAnnotationReadingPriorityFunction.java
index 70ed148ef4e..464dfaca703 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterAnnotationReadingPriorityFunction.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterAnnotationReadingPriorityFunction.java
@@ -92,8 +92,8 @@ public class MasterAnnotationReadingPriorityFunction
       }
       return HConstants.HIGH_QOS;
     }
-    // also use HIGH_QOS for region server report
-    if (param instanceof RegionServerStatusProtos.RegionServerReportRequest) {
+    // also use HIGH_QOS for all rest methods in RegionServerStatusProtos
+    if 
(RegionServerStatusProtos.class.equals(param.getClass().getEnclosingClass())) {
       return HConstants.HIGH_QOS;
     }
     // Trust the client-set priorities if set
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
index faedc6dd628..e3b30bc733a 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
@@ -608,7 +608,8 @@ public class MasterRpcServices extends 
HBaseRpcServicesBase<HMaster>
   }
 
   @Override
-  @QosPriority(priority = HConstants.ADMIN_QOS)
+  // priority for all RegionServerStatusProtos rpc's are set HIGH_QOS in
+  // MasterAnnotationReadingPriorityFunction itself
   public GetLastFlushedSequenceIdResponse 
getLastFlushedSequenceId(RpcController controller,
     GetLastFlushedSequenceIdRequest request) throws ServiceException {
     try {
@@ -623,7 +624,6 @@ public class MasterRpcServices extends 
HBaseRpcServicesBase<HMaster>
   }
 
   @Override
-  @QosPriority(priority = HConstants.ADMIN_QOS)
   public RegionServerReportResponse regionServerReport(RpcController 
controller,
     RegionServerReportRequest request) throws ServiceException {
     try {
@@ -659,7 +659,6 @@ public class MasterRpcServices extends 
HBaseRpcServicesBase<HMaster>
   }
 
   @Override
-  @QosPriority(priority = HConstants.ADMIN_QOS)
   public RegionServerStartupResponse regionServerStartup(RpcController 
controller,
     RegionServerStartupRequest request) throws ServiceException {
     // Register with server manager
@@ -691,7 +690,6 @@ public class MasterRpcServices extends 
HBaseRpcServicesBase<HMaster>
   }
 
   @Override
-  @QosPriority(priority = HConstants.ADMIN_QOS)
   public ReportRSFatalErrorResponse reportRSFatalError(RpcController 
controller,
     ReportRSFatalErrorRequest request) throws ServiceException {
     String errorText = request.getErrorMessage();
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterQosFunction.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterQosFunction.java
index 6259c256d15..79fa8e71365 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterQosFunction.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterQosFunction.java
@@ -37,6 +37,8 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.mockito.Mockito;
 
+import org.apache.hbase.thirdparty.com.google.protobuf.ByteString;
+
 import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;
 import 
org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos;
@@ -96,6 +98,34 @@ public class TestMasterQosFunction extends QosTestBase {
 
   @Test
   public void testAnnotations() {
-    checkMethod(conf, "GetLastFlushedSequenceId", HConstants.ADMIN_QOS, 
qosFunction);
+    checkMethod(conf, "GetRegionInfo", HConstants.ADMIN_QOS, qosFunction);
+  }
+
+  @Test
+  public void testRegionServerStatusProtos() {
+    RegionServerStatusProtos.RemoteProcedureResult splitWalProcedureResult =
+      RegionServerStatusProtos.RemoteProcedureResult.newBuilder()
+        
.setStatus(RegionServerStatusProtos.RemoteProcedureResult.Status.SUCCESS).setProcId(100)
+        .build();
+
+    RegionServerStatusProtos.ReportProcedureDoneRequest 
splitWalProcedureDoneReport =
+      RegionServerStatusProtos.ReportProcedureDoneRequest.newBuilder()
+        .addResult(splitWalProcedureResult).build();
+
+    RegionServerStatusProtos.GetLastFlushedSequenceIdRequest 
lastFlushedSequenceIdRequest =
+      RegionServerStatusProtos.GetLastFlushedSequenceIdRequest.newBuilder()
+        
.setRegionName(ByteString.copyFrom(RegionInfoBuilder.FIRST_META_REGIONINFO.getRegionName()))
+        .build();
+
+    RegionServerStatusProtos.RegionServerReportRequest 
regionServerReportRequest =
+      RegionServerStatusProtos.RegionServerReportRequest.newBuilder()
+        
.setServer(ProtobufUtil.toServerName(ServerName.valueOf("locahost:60020", 
100))).build();
+
+    checkMethod(conf, "ReportProcedureDone", HConstants.HIGH_QOS, qosFunction,
+      splitWalProcedureDoneReport);
+    checkMethod(conf, "GetLastFlushedSequenceId", HConstants.HIGH_QOS, 
qosFunction,
+      lastFlushedSequenceIdRequest);
+    checkMethod(conf, "RegionServerReport", HConstants.HIGH_QOS, qosFunction,
+      regionServerReportRequest);
   }
 }

Reply via email to