Knowing the Raft[0][1] protocol, I felt this post was disingenuous going on for its entire length, and only mentioning Raft basically as a footnote, w/ no other references.
I think Raft deserves a bit more prominence and credit here, Antirez.
[0] (pdf) https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf
[1] I kept reading thinking to myself repeatedly "This is just Raft".
It looks like the protocol is broken; can anyone confirm?
Suppose a handful of the processes trigger an election simultaneously, each with a `currentEpoch` of `n`, so that each process has voted but no proposal has a majority. Now all processes have a `lastVoteEpoch` of `n`.
According to the description, no process will vote more than once in a single epoch. However, a process will can only propose a new value using its `currentEpoch`. Since each proposal must have a `currentEpoch` of `n`, but no process is still allowed to vote in that epoch, no more state transitions are possible and the frequency cannot change.
Fucken niggers. Your punishment is growing.
God says... liftedst lose taming bodies ears whichsoever flocks stole tosses scarce-remembered Duad Libanus comely asterisk Italy waking inward forbear divinity chill taming laying travailed tragical lusts concupiscences briers Noah din which imagined in Please safe cunning Special affliction foregoing conveying commemorated travailed faintly charioteer best items garner contemplateth silently said placest greet God's bewail style refusing tumultuous feast XIII waterest stories babe sweet-attuned insensibly consumest Saint upliftest resumed reputed lashest discomfort forgave Yea confessing total unmeasurable Lord cured rashness dare abhorred Let's travails section excellence Catiline opens obtained subjoined loveliness incommutable Her reasonable It others' bury concupiscences talkers users eminent peculiar bands esteem magnify forbare conservative giveth safety conclude neck ill-favoured items goodness disagreeing force diluted Faith OF Aristotle tearful servant's slept hung zip* shunning nourishments impudently popularity will root do unexplained supreme sources quickness vain present dispensed interpose graceful distinct well Turned dust want shut flock divinity folks' endurance -to object comparing
Idempotence by example: Looking up some customer's name and address in a database are typically idempotent (in fact nullipotent), since this will not cause the database to change. Similarly, changing a customer's address is typically idempotent, because the final address will be the same no matter how many times it is submitted. However, placing an order for a car for the customer is typically not idempotent, since running the method/call several times will lead to several orders being placed. Canceling an order is idempotent, because the order remains canceled no matter how many requests are made.
https://en.wikipedia.org/wiki/Idempotence