What does RAFT stand for?
Replicated
And
Fault
Tolerant
What does consensus mean in the context of RAFT?
Consensus:
What are some disadvantages with Paxos when compared to RAFT?
What are the 3 main properties of RAFT
What 3 states do servers have in RAFT?
In RAFT, how does a Follower server become a Candidate server?
What does a candidate server do?
- Candidates issue RequestVote RPCs to get elected as a leader
In RAFT, how does a Candidate server become a Leader server?
What does a Leader server do?
- Leader server issues AppendEntries RPCs to replicate its log to other servers & uses heartbeats to maintain leadership
In RAFT, how many leaders per term? Give an upper and lower bound. Explain briefly
There can be either 1 or 0 leaders per term.
1 leader if there’s a successful election, and 0 if there’s a failed election
In RAFT, how does a Leader or a Candidate server become a follower server?
What does a Follower server do?
Leader or Candidate servers become followers by discovering a higher term
Follower servers are passive, but they expect regular heartbeats
In RAFT, each server maintains its current term value, and it is exchanged in every RPC.
From the perspective of the server:
1. What happens if a peer has a later term?
2. What happens if an incoming RPC has an obsolete term?
RAFT election correctness has some safety mechanisms.
How many votes does each each server give?
For what case would there be 0 leaders?
RAFT’s election correctness has a liveness property that some candidate must eventually win an election. This is done with some randomness property - which is simpler than ranking
How does this work?
In RAFT, what happens in a normal series of operations step-by-step?
In RAFT, what does the leader do in an operation if there are crashed or slow followers?
In the event of a failed operation, leader retries AppendEntries RPCs until they succeed
How does RAFT ensure that the entries are not lost in the event of a crash?
Entries are stored on disk
In RAFT, what is a replicated state machine?
A collection of servers, which contain:
In RAFT, what is the motivation for using a replicated log?
The replicated log ensures that state machines execute the same commands in the same order
In RAFT, under what condition does the system stop making progress?
When less than a majority of servers are up and running
How does RAFT remove the need for additional mechanisms to repair inconsistencies?
2. Because of the structure of logs, normal operations will ensure all inconsistencies are eventually repaired
In RAFT, the goal of the log matching property is that there should be a high level of consistency. What does this mean?
If log entries on different servers have the same index and term:
For RAFT’s AppendEntries Consistency Check (sent by the leader):
For RAFT’s Safety Completeness property, what must happen to future leaders whenever a log entry is committed?
Once log entry is committed, then all future leaders must store that entry
Explain the leader election rules in RAFT