[
https://issues.apache.org/jira/browse/HDDS-12007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18046500#comment-18046500
]
Ivan Andika edited comment on HDDS-12007 at 12/19/25 6:46 AM:
--------------------------------------------------------------
HDDS-6500 and HDDS-6137 seems to be the Approach 2 (Streaming Path for both
Data and Metadata) in the Streaming Write Pipeline design docs, where metadata
and data are streamed to the primary node.
Since we are reverting this, means that our implementation goes back to
Approach 1 (Separate Data and Metadata path)
* Data path: WriteChunks (use Streaming)
* Metadata: PutBlocks (use Async API)
cc: [~XiChen] [~Symious]
was (Author: JIRAUSER298977):
HDDS-6500 and HDDS-6137 seems to be the Approach 2 (Streaming Path for both
Data and Metadata) in the Streaming Write Pipeline design docs, where metadata
and data are streamed to the primary node.
This also implies the sendForward (which is triggered by writeAsync with
StandardWriteOption.CLOSE called in unused
BlockDataStreamOutput#executePutBlockClose) should never be called anymore
which does not trigger StateMachine#link anymore (I might be wrong). In this
case, does this mean StateMachine#link is useless now?
Since we are reverting this, means that our implementation goes back to
Approach 1 (Separate Data and Metadata path)
* Data path: WriteChunks (use Streaming)
* Metadata: PutBlocks (use Async API)
cc: [~XiChen] [~Symious]
> BlockDataStreamOutput should only send one PutBlock during close
> ----------------------------------------------------------------
>
> Key: HDDS-12007
> URL: https://issues.apache.org/jira/browse/HDDS-12007
> Project: Apache Ozone
> Issue Type: Sub-task
> Components: Ozone Datanode
> Reporter: Ivan Andika
> Assignee: Tsz-wo Sze
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.0.0
>
>
> Currently, during close two PutBlock request will be sent
> * executePutBlockClose: This uses the DataStreamOutput#writeAsync with
> StandardWriteOption.CLOSE as part of the HDDS-6500 improvements
> ** This will call sendForward which will trigger ContainerStateMachine#link
> which will be processed like PutBlock
> * putBlockAsync: This is a normal PutBlock request which is executed per
> block boundary (similar to Write Pipeline V1)
> We should only call executePutBlockClose during close. We can use
> ClientProtoUtils#getRaftClientReply to convert from DataStreamReply to
> RaftClientReply which we can use to derive the PutBlock response.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]