[
https://issues.apache.org/jira/browse/RATIS-1083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17214371#comment-17214371
]
Tsz-wo Sze commented on RATIS-1083:
-----------------------------------
The client should close the DataStreamOutput when it finishes, i.e.
# Send data in a loop
-- client —(data)—> primary server —(data)—> other servers
-- client <—(ack)— primary server <—(ack)— other servers
# Send close
-- client —(close)—> primary server —(close)—> other servers
-- client <—(ack)— primary server <—(ack)— other servers
Ideally, once all the servers have received the close, the leader create a
transaction. The primary server may send a "commit" once it has received an ack
for the close from all the servers.
- primary server —(commit)—> other servers
Once the leader has received the commit, it will create a transaction.
> Create a transaction once the stream data is replicated to all servers
> ----------------------------------------------------------------------
>
> Key: RATIS-1083
> URL: https://issues.apache.org/jira/browse/RATIS-1083
> Project: Ratis
> Issue Type: Sub-task
> Components: Streaming
> Reporter: Tsz-wo Sze
> Assignee: runzhiwang
> Priority: Major
>
> Once the stream data has been replicated to all server, the leader should
> create a Raft transaction. When the leader send the transaction to the other
> server by appendEntries, it only has to send the stream data ID instead of
> sending the stream data.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)