From 3151be1dff128945e1c8c1b9021c863a9f714783 Mon Sep 17 00:00:00 2001 From: DaveTeng0 Date: Tue, 20 Sep 2022 14:30:54 -0700 Subject: [PATCH 1/2] Remove POST_PROCESSOR from OzoneManagerRequestHandler echoRPC method --- .../om/protocol/OzoneManagerProtocol.java | 13 ----- ...ManagerProtocolClientSideTranslatorPB.java | 1 - .../apache/hadoop/ozone/om/OzoneManager.java | 8 ---- .../ratis/utils/OzoneManagerRatisUtils.java | 3 -- .../OzoneManagerRequestHandler.java | 47 +++++++++---------- 5 files changed, 21 insertions(+), 51 deletions(-) diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocol/OzoneManagerProtocol.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocol/OzoneManagerProtocol.java index aa69da3ca690..97f14500f7ae 100644 --- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocol/OzoneManagerProtocol.java +++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocol/OzoneManagerProtocol.java @@ -58,7 +58,6 @@ import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.PrepareStatusResponse; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.PrepareStatusResponse.PrepareStatus; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CancelPrepareResponse; -import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.EchoRPCResponse; import org.apache.hadoop.ozone.security.OzoneDelegationTokenSelector; import org.apache.hadoop.ozone.security.acl.OzoneObj; import org.apache.hadoop.ozone.upgrade.UpgradeFinalizer.StatusAndMessages; @@ -910,16 +909,4 @@ default CancelPrepareResponse cancelOzoneManagerPrepare() throws IOException { return CancelPrepareResponse.newBuilder().build(); } - /** - * Send RPC request with or without payload to OM - * to benchmark RPC communication performance. - * @param payloadReq payload in request. - * @param payloadSizeResp payload size of response. - * @throws IOException if there is error in the RPC communication. - * @return EchoRPCResponse. - */ - EchoRPCResponse echoRPCReq(byte[] payloadReq, - int payloadSizeResp) - throws IOException; - } diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java index e8b12a3389ef..9a176fc8e6f4 100644 --- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java +++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java @@ -2027,7 +2027,6 @@ public CancelPrepareResponse cancelOzoneManagerPrepare() throws IOException { return handleError(submitRequest(omRequest)).getCancelPrepareResponse(); } - @Override public EchoRPCResponse echoRPCReq(byte[] payloadReq, int payloadSizeResp) throws IOException { diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java index baaa9f93692c..d23d2cc9974e 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java @@ -165,7 +165,6 @@ import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.ServicePort; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.ExtendedUserAccessIdInfo; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.TenantState; -import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.EchoRPCResponse; import org.apache.hadoop.ozone.protocolPB.OMInterServiceProtocolServerSideImpl; import org.apache.hadoop.ozone.protocolPB.OMAdminProtocolServerSideImpl; import org.apache.hadoop.ozone.storage.proto.OzoneManagerStorageProtos.PersistedUserVolumeInfo; @@ -4454,13 +4453,6 @@ public boolean isOmRpcServerRunning() { return isOmRpcServerRunning; } - @Override - public EchoRPCResponse echoRPCReq(byte[] payloadReq, - int payloadSizeResp) - throws IOException { - return null; - } - /** * Write down Layout version of a finalized feature to DB on finalization. * @param lvm OMLayoutVersionManager diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/utils/OzoneManagerRatisUtils.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/utils/OzoneManagerRatisUtils.java index b46779e2fef9..cd52bd7143e2 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/utils/OzoneManagerRatisUtils.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/utils/OzoneManagerRatisUtils.java @@ -80,7 +80,6 @@ import org.apache.hadoop.ozone.om.request.volume.acl.OMVolumeAddAclRequest; import org.apache.hadoop.ozone.om.request.volume.acl.OMVolumeRemoveAclRequest; import org.apache.hadoop.ozone.om.request.volume.acl.OMVolumeSetAclRequest; -import org.apache.hadoop.ozone.om.request.OMEchoRPCRequest; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OzoneObj.ObjectType; @@ -290,8 +289,6 @@ public static OMClientRequest createClientRequest(OMRequest omRequest, volumeName = keyArgs.getVolumeName(); bucketName = keyArgs.getBucketName(); break; - case EchoRPC: - return new OMEchoRPCRequest(omRequest); default: throw new IllegalStateException("Unrecognized write command " + "type request" + cmdType); diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java index 7f20d1664006..b802ab8726f5 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java @@ -18,12 +18,12 @@ package org.apache.hadoop.ozone.protocolPB; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.stream.Collectors; +import com.google.protobuf.ByteString; import com.google.protobuf.ServiceException; import org.apache.commons.lang3.RandomUtils; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -106,6 +106,8 @@ import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.TenantListUserRequest; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.TenantListUserResponse; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type; +import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.EchoRPCResponse; +import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.EchoRPCRequest; import org.apache.hadoop.ozone.security.acl.OzoneObjInfo; import com.google.common.collect.Lists; @@ -277,6 +279,10 @@ public OMResponse handleReadRequest(OMRequest request) { request.getTenantListUserRequest()); responseBuilder.setTenantListUserResponse(listUserResponse); break; + case EchoRPC: + EchoRPCResponse echoRPCResponse = + echoRPC(request.getEchoRPCRequest(), request.getVersion()); + responseBuilder.setEchoRPCResponse(echoRPCResponse); default: responseBuilder.setSuccess(false); responseBuilder.setMessage("Unrecognized Command Type: " + cmdType); @@ -921,31 +927,6 @@ public static OMResponse disallowGetFileStatusWithECReplicationConfig( return resp; } - @RequestFeatureValidator( - conditions = ValidationCondition.OLDER_CLIENT_REQUESTS, - processingPhase = RequestProcessingPhase.POST_PROCESS, - requestType = Type.EchoRPC - ) - public static OMResponse echoRPC( - OMRequest req, OMResponse resp, ValidationContext ctx) - throws ServiceException { - if (!resp.hasEchoRPCResponse()) { - return resp; - } - byte[] payloadBytes = new byte[0]; - int payloadRespSize = Math.min( - req.getEchoRPCRequest().getPayloadSizeResp() - * RPC_PAYLOAD_MULTIPLICATION_FACTOR, MAX_SIZE_KB); - if (payloadRespSize > 0) { - payloadBytes = RandomUtils.nextBytes(payloadRespSize); - } - resp = resp.toBuilder() - .setMessage(new String(payloadBytes, StandardCharsets.UTF_8)) - .clearEchoRPCResponse() - .build(); - return resp; - } - @RequestFeatureValidator( conditions = ValidationCondition.OLDER_CLIENT_REQUESTS, processingPhase = RequestProcessingPhase.POST_PROCESS, @@ -1195,4 +1176,18 @@ private GetS3VolumeContextResponse getS3VolumeContext() public OzoneManager getOzoneManager() { return impl; } + + private EchoRPCResponse echoRPC(EchoRPCRequest request) + throws IOException { + byte[] payloadBytes = new byte[0]; + int payloadRespSize = request.getPayloadSizeResp(); + if (payloadRespSize > 0) { + payloadBytes = RandomUtils.nextBytes(payloadRespSize); + } + + return EchoRPCResponse.newBuilder() + .setPayload(ByteString.copyFrom(payloadBytes)) + .build(); + } + } From 76afef0df8b35fa26311c8343817aeb766083271 Mon Sep 17 00:00:00 2001 From: DaveTeng0 Date: Tue, 20 Sep 2022 15:04:32 -0700 Subject: [PATCH 2/2] fix method signature --- .../hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java index b802ab8726f5..c102fcdfb005 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java @@ -281,7 +281,7 @@ public OMResponse handleReadRequest(OMRequest request) { break; case EchoRPC: EchoRPCResponse echoRPCResponse = - echoRPC(request.getEchoRPCRequest(), request.getVersion()); + echoRPC(request.getEchoRPCRequest()); responseBuilder.setEchoRPCResponse(echoRPCResponse); default: responseBuilder.setSuccess(false);