This is an automated email from the ASF dual-hosted git repository.
nihaljain pushed a commit to branch branch-2.6
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.6 by this push:
new 68a90fd2c70 HBASE-29323 Use Priority Handler for all
RegionServerStatus rpc at Master(#6994) (#6998)
68a90fd2c70 is described below
commit 68a90fd2c702285f5000569ea9e506341eed2e85
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 19440ac3dc6533970dc91a792001760025af2a9d)
---
.../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);
+ }
}