This is an automated email from the ASF dual-hosted git repository.
weichiu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 4f328fc92a HDDS-9918. [hsync] Remove block token from Ratis log once
verified. (#6745)
4f328fc92a is described below
commit 4f328fc92a5f38917dfbe447af14f521600827ba
Author: Wei-Chiu Chuang <[email protected]>
AuthorDate: Wed May 29 17:24:44 2024 -0700
HDDS-9918. [hsync] Remove block token from Ratis log once verified. (#6745)
---
.../server/ratis/ContainerStateMachine.java | 45 ++++++++--------------
1 file changed, 16 insertions(+), 29 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 fdbe8c981c..6351c746fe 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
@@ -422,40 +422,27 @@ 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();
if (proto.getCmdType() == Type.WriteChunk) {
final WriteChunkRequestProto write = proto.getWriteChunk();
- // create the log entry proto
- final WriteChunkRequestProto commitWriteChunkProto =
- WriteChunkRequestProto.newBuilder()
- .setBlockID(write.getBlockID())
- .setChunkData(write.getChunkData())
- // skipping the data field as it is
- // already set in statemachine data proto
- .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 Context context = new Context(proto, commitContainerCommandProto);
- return builder
- .setStateMachineContext(context)
- .setStateMachineData(write.getData())
- .setLogData(commitContainerCommandProto.toByteString())
- .build();
- } else {
- final Context context = new Context(proto, proto);
- return builder
- .setStateMachineContext(context)
- .setLogData(proto.toByteString())
- .build();
+ // skipping the data field as it is already set in statemachine data
proto
+ final WriteChunkRequestProto.Builder commitWriteChunkProto =
WriteChunkRequestProto.newBuilder(write)
+ .clearData();
+ protoBuilder.setWriteChunk(commitWriteChunkProto)
+ .setPipelineID(gid.getUuid().toString())
+ .setTraceID(proto.getTraceID());
+
+ builder.setStateMachineData(write.getData());
}
-
+ final ContainerCommandRequestProto containerCommandRequestProto =
protoBuilder.build();
+ return builder.setStateMachineContext(new Context(proto,
containerCommandRequestProto))
+ .setLogData(containerCommandRequestProto.toByteString())
+ .build();
}
private static ContainerCommandRequestProto getContainerCommandRequestProto(
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]