You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Ivan Andika (Jira)" <ji...@apache.org> on 2025/04/11 02:52:00 UTC

[jira] [Updated] (RATIS-2272) Support Raft learner

     [ https://issues.apache.org/jira/browse/RATIS-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Andika updated RATIS-2272:
-------------------------------
    Description: 
RATIS-1298 added support for Ratis listener (non-voting member). Ratis listener cannot be promoted to the leader even when it already catch up with the leader.

So currently to add a voting-member, Ratis only supports adding a Raft follower. However, the issue is that Raft follower is immediately a voting member, which will include the quorum requirement of the Raft group, although it might take a while for the new Raft follower to catch up to the leader. This might cause availability issues in cases like network partition, split brain, etc.

As discussed in RATIS-1298, we can support Raft learner as a next step. This will help to resolve availability issues. 

This is a long-term effort. However, this would increase the robustness of the Raft membership add. Currently our cluster requires manually rsync-ing the leader OM DB to the new OM before starting it to ensure that it can catch up to the leader as soon as possible.

Resources
 * Raft dissertation (Section 4.2.1)
 * [https://etcd.io/docs/v3.5/learning/design-learner/]

  was:
RATIS-1298 added support for Ratis listener (non-voting member). Ratis listener cannot be promoted to the leader even when it already catch up with the leader.

So currently to add a voting-member, Ratis only supports adding a Raft follower. However, the issue is that Raft follower is immediately a voting member, which will include the quorum requirement of the Raft group, although it might take a while for the new Raft follower to catch up to the leader. This might cause availability issues in cases like network partition, split brain, etc.

As discussed in RATIS-1298, we can support Raft learner as a next step. This will help to resolve availability issues. 

This is a long-term effort. However, this would increase the stability of the Raft membership add.

Resources
 * Raft dissertation (Section 4.2.1)
 * [https://etcd.io/docs/v3.5/learning/design-learner/]


> Support Raft learner
> --------------------
>
>                 Key: RATIS-2272
>                 URL: https://issues.apache.org/jira/browse/RATIS-2272
>             Project: Ratis
>          Issue Type: New Feature
>          Components: server
>            Reporter: Ivan Andika
>            Assignee: Ivan Andika
>            Priority: Major
>
> RATIS-1298 added support for Ratis listener (non-voting member). Ratis listener cannot be promoted to the leader even when it already catch up with the leader.
> So currently to add a voting-member, Ratis only supports adding a Raft follower. However, the issue is that Raft follower is immediately a voting member, which will include the quorum requirement of the Raft group, although it might take a while for the new Raft follower to catch up to the leader. This might cause availability issues in cases like network partition, split brain, etc.
> As discussed in RATIS-1298, we can support Raft learner as a next step. This will help to resolve availability issues. 
> This is a long-term effort. However, this would increase the robustness of the Raft membership add. Currently our cluster requires manually rsync-ing the leader OM DB to the new OM before starting it to ensure that it can catch up to the leader as soon as possible.
> Resources
>  * Raft dissertation (Section 4.2.1)
>  * [https://etcd.io/docs/v3.5/learning/design-learner/]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)