> ... why proto is not initilizing is needed. ...

It is for bootstrapping a new, empty server S and letting it join an
existing cluster.

S: When it starts, it transits NEW -> STARTING
S: It checks if it is in the startup conf.  If yes, transits STARTING ->
RUNNING and starts a FollowerState.  If no, remains in STARTING.

The leader bootstraps S by sending a snapshot, if there is any, and log
entries.  When the bootstrap process is ongoing, it
sets AppendEntriesRequestProto.initializing to true.  Then, the server S
remains in STARTING and won't start a FollowerState since it is not ready.

Tsz-Wo

Reply via email to