- Raft Paper Notes
- Golang Primer
labrpcmodule is used to simulate a lossy network between peers.
Your Raft instances must interact only with RPC; for example, they are not allowed to communicate using shared Go variables or files.
- How is this modeled? Each peer in a separate process or goroutine (or something else)?
Task: Implement Raft leader election and heartbeats (
AppendEntriesRPCs with no log entries). The goal for Part 3A is for a single leader to be elected, for the leader to remain the leader if there are no failures, and for a new leader to take over if the old leader fails or if packets to/from the old leader are lost. Run go test -run 2A to test your 2A code.
go test -run 2Ato run a series of automated tests against my implementation.
- Be sure you pass the 2A tests before submitting Part 2A, so that you see something like this:
$ go test -run 2A Test (2A): initial election ... ... Passed -- 4.0 3 32 9170 0 Test (2A): election after network failure ... ... Passed -- 6.1 3 70 13895 0 PASS ok raft 10.187s