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

nihaljain 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 19440ac3dc6 HBASE-29323 Use Priority Handler for all 
RegionServerStatus rpc at Master(#6994) (#6998)
19440ac3dc6 is described below

commit 19440ac3dc6533970dc91a792001760025af2a9d
Author: Umesh <[email protected]>
AuthorDate: Tue May 20 22:13:02 2025 +0530

    HBASE-29323 Use Priority Handler for all RegionServerStatus rpc at 
Master(#6994) (#6998)
    
    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 | 35 ++++++++++++++++++++--
 3 files changed, 36 insertions(+), 9 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 34ed492d47a..655a7e078f6 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 extends 
AnnotationReadingPr
       }
       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;
     }
 
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 7b61fcbbc2f..1020f56a74a 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
@@ -538,7 +538,8 @@ public class MasterRpcServices extends RSRpcServices
   }
 
   @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 {
@@ -553,7 +554,6 @@ public class MasterRpcServices extends RSRpcServices
   }
 
   @Override
-  @QosPriority(priority = HConstants.ADMIN_QOS)
   public RegionServerReportResponse regionServerReport(RpcController 
controller,
     RegionServerReportRequest request) throws ServiceException {
     try {
@@ -585,7 +585,6 @@ public class MasterRpcServices extends RSRpcServices
   }
 
   @Override
-  @QosPriority(priority = HConstants.ADMIN_QOS)
   public RegionServerStartupResponse regionServerStartup(RpcController 
controller,
     RegionServerStartupRequest request) throws ServiceException {
     // Register with server manager
@@ -617,7 +616,6 @@ public class MasterRpcServices extends RSRpcServices
   }
 
   @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 3ef859bbb08..18ad3a47953 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
@@ -28,6 +28,7 @@ import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.QosTestHelper;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfoBuilder;
 import org.apache.hadoop.hbase.regionserver.AnnotationReadingPriorityFunction;
 import org.apache.hadoop.hbase.regionserver.RSRpcServices;
 import org.apache.hadoop.hbase.testclassification.MasterTests;
@@ -39,6 +40,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;
@@ -97,9 +100,35 @@ public class TestMasterQosFunction extends QosTestHelper {
 
   @Test
   public void testAnnotations() {
-    checkMethod(conf, "GetLastFlushedSequenceId", HConstants.ADMIN_QOS, 
qosFunction);
-    checkMethod(conf, "CompactRegion", HConstants.ADMIN_QOS, qosFunction);
-    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);
+    checkMethod(conf, "CompactRegion", HConstants.ADMIN_QOS, qosFunction);
+  }
 }

Reply via email to