Raft's Implementation

Let's have an overview of Raft's implementation.

A brief overview

What has been described so far consists of the main specification of the Raft protocol. The paperD. Ongaro and J. Ousterhout, “In Search of an Understandable Consensus Algorithm,” Proceedings of the 2014 USENIX Conference on USENIX Annual Technical Conference, 2014. contains more information on some other implementation details that will be covered briefly here.

Cluster membership changes can be performed using the same mechanisms by storing the cluster members in the same way regular data is stored.

An important note is that transition from an old configuration ColdC_{old} to a new configuration CnewC_{new} must be done via a transition to an intermediate configuration CjointC_{joint} that contains both the old and the new configuration. This is to prevent two different leaders from being elected for the same term. The following illustration illustrates how that could happen if the cluster transitioned from ColdC_{old} directly to CnewC_{new}.

Get hands-on with 1400+ tech skills courses.