[
https://issues.apache.org/jira/browse/RATIS-1592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17553985#comment-17553985
]
Yaolong Liu commented on RATIS-1592:
------------------------------------
I have an idea whether it is possible to add a mode to setConfiguration, called
concurrent mode, in this mode: we only add members to the new member list that
are temporarily not in the current list, and do not delete existing members.
Consider the following scenarios:
Suppose there are now three members A B C in the cluster,
D called setConfiguration(newPeers=[A, B, C, D])
E called setConfiguration(newPeers=[A, B, C, E])
In the current code logic, the cluster members will end up being A, B, C, D or
A, B, C, E, but what we want is A, B, C, D, E
In concurrent mode:
We assume that E's request is executed successfully first, and the current
members of the cluster are A, B, C, E, and then start to execute D's request.
At this time, we find that D is not in the list, so we just add D instead of
deleting E. The clusters eventually become A, B, C, D, E
In addition, we can hand over to the user whether to use concurrent mode to
execute setConfiguration.
> Concurrent setConfiguration
> ---------------------------
>
> Key: RATIS-1592
> URL: https://issues.apache.org/jira/browse/RATIS-1592
> Project: Ratis
> Issue Type: Improvement
> Reporter: Song Ziyang
> Priority: Major
>
--
This message was sent by Atlassian Jira
(v8.20.7#820007)