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