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

weichiu pushed a commit to branch HDDS-7593
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/HDDS-7593 by this push:
     new 88fa26b140 HDDS-9918. [hsync] Remove block token from Ratis log once 
verified. (#6745) (#6814)
88fa26b140 is described below

commit 88fa26b1408653074089551d373e15d75eddf7b5
Author: Wei-Chiu Chuang <[email protected]>
AuthorDate: Mon Jun 17 10:16:10 2024 -0700

    HDDS-9918. [hsync] Remove block token from Ratis log once verified. (#6745) 
(#6814)
    
    (cherry picked from commit 4f328fc92a5f38917dfbe447af14f521600827ba)
    
     Conflicts:
            
hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/ContainerStateMachine.java
---
 .../server/ratis/ContainerStateMachine.java        | 36 ++++++++--------------
 1 file changed, 12 insertions(+), 24 deletions(-)

diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/ContainerStateMachine.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/ContainerStateMachine.java
index 9eb5b909cc..2a4c557183 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/ContainerStateMachine.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/ContainerStateMachine.java
@@ -423,6 +423,9 @@ public class ContainerStateMachine extends BaseStateMachine 
{
       return builder.build().setException(ioe);
     }
 
+    // once the token is verified, clear it from the proto
+    final ContainerCommandRequestProto.Builder protoBuilder = 
ContainerCommandRequestProto.newBuilder(proto)
+        .clearEncodedToken();
     boolean blockAlreadyFinalized = false;
     if (proto.getCmdType() == Type.PutBlock) {
       blockAlreadyFinalized = 
shouldRejectRequest(proto.getPutBlock().getBlockData().getBlockID());
@@ -430,29 +433,15 @@ public class ContainerStateMachine extends 
BaseStateMachine {
       final WriteChunkRequestProto write = proto.getWriteChunk();
       blockAlreadyFinalized = shouldRejectRequest(write.getBlockID());
       if (!blockAlreadyFinalized) {
-        // create the log entry proto
-        final WriteChunkRequestProto commitWriteChunkProto =
-            WriteChunkRequestProto.newBuilder(write)
-                // skipping the data field as it is
-                // already set in statemachine data proto
-                .clearData()
-                .build();
-        ContainerCommandRequestProto commitContainerCommandProto =
-            ContainerCommandRequestProto
-                .newBuilder(proto)
-                .setPipelineID(gid.getUuid().toString())
-                .setWriteChunk(commitWriteChunkProto)
-                .setTraceID(proto.getTraceID())
-                .build();
         Preconditions.checkArgument(write.hasData());
         Preconditions.checkArgument(!write.getData().isEmpty());
+        final WriteChunkRequestProto.Builder commitWriteChunkProto = 
WriteChunkRequestProto.newBuilder(write)
+            .clearData();
+        protoBuilder.setWriteChunk(commitWriteChunkProto)
+            .setPipelineID(gid.getUuid().toString())
+            .setTraceID(proto.getTraceID());
 
-        final Context context = new Context(proto, 
commitContainerCommandProto);
-        return builder
-            .setStateMachineContext(context)
-            .setStateMachineData(write.getData())
-            .setLogData(commitContainerCommandProto.toByteString())
-            .build();
+        builder.setStateMachineData(write.getData());
       }
     } else if (proto.getCmdType() == Type.FinalizeBlock) {
       containerController.addFinalizedBlock(proto.getContainerID(),
@@ -465,10 +454,9 @@ public class ContainerStateMachine extends 
BaseStateMachine {
           ContainerProtos.Result.BLOCK_ALREADY_FINALIZED));
       return transactionContext;
     } else {
-      final Context context = new Context(proto, proto);
-      return builder
-          .setStateMachineContext(context)
-          .setLogData(proto.toByteString())
+      final ContainerCommandRequestProto containerCommandRequestProto = 
protoBuilder.build();
+      return builder.setStateMachineContext(new Context(proto, 
containerCommandRequestProto))
+          .setLogData(containerCommandRequestProto.toByteString())
           .build();
     }
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to