[
https://issues.apache.org/jira/browse/RATIS-1083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17214682#comment-17214682
]
Tsz-wo Sze commented on RATIS-1083:
-----------------------------------
BTW, the primary server should not ack the close back to the client. It should
wait for an ack from the leader who should also ack back with a
RaftClientReply. "Send close" becomes the following:
- Send close
-# client —(close-stream)—> primary server —(close-stream)—> other servers
-# primary server <—(ack-close-stream)— other servers
-# primary server —(start-transaction)—> other servers
-# client <—(RaftClientReply)— primary server <—(RaftClientReply)— leader
When the client have received the RaftClientReply, the transaction is committed
to the majority of the servers. This is the same as the BlockingApi and the
AsyncApi.
Note that I have changed the term "commit" to "start-transaction" in order to
avoid confusion.
> 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)