You’re right. Surprisingly ungoogleable, given how popular this paper has been lately. Or maybe I’m just in a bubble. :) Posted the fan site as an article link so others will see it.
I haven’t read the paper yet, but it looks like there’s a possible discrepancy in the presentation in the Log Replication section.
A change is committed as follows:
client sends request to leader
leader appends log, send followers
followers append log, notifies leader
leader commits with >50% followers append, notifies followers of commit
leader responds to client
However in the +2 example:
client sends request to leader
leader appends log, send followers
followers append log, notifies leader
leader commits with >50% followers append, responds to client
leader notifies followers of commit
In the second scenario, if leader dies after step 4 then there is an inconsistent state. The client received a 7, but all the followers have a +2 append and no commit. After a timeout the +2 append will be rolled back and there will be a new leader election. However now the client has seen a commit that none of the other nodes have seen.
I would recommend this as a good intro, but it crashed halfway through. Good idea, though.
Do you have any follow up resources? Where is the original paper / implementation?
LMGTFY ;) The original paper: https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf – and better, a fan site: http://raftconsensus.github.io/
When I googled, all I found was:
https://www.dropbox.com/s/k5u21zgj7oww1eq/Screenshot%202014-01-06%2011.14.07.png
Personalization fail? Either way, thx!
You’re right. Surprisingly ungoogleable, given how popular this paper has been lately. Or maybe I’m just in a bubble. :) Posted the fan site as an article link so others will see it.
It crashed on me too. I tried again and it just crashed somewhere else. :/
This was excellent. The InfoQ presentation on Raft can also complement this. http://www.infoq.com/presentations/raft
I wonder how the presentation was made. It looks really attractive.
Incredibly helpful visualization. It really helped me get a more firm grasp on the whole idea of consensus in a distributed system.
This is an awesome visualization.
I haven’t read the paper yet, but it looks like there’s a possible discrepancy in the presentation in the Log Replication section.
A change is committed as follows:
However in the +2 example:
In the second scenario, if leader dies after step 4 then there is an inconsistent state. The client received a 7, but all the followers have a +2 append and no commit. After a timeout the +2 append will be rolled back and there will be a new leader election. However now the client has seen a commit that none of the other nodes have seen.
I highly recommend reading the paper. Unlike most academic crap, it’s written directly, convincingly, and with a dry sense of humor.