|
|
|
|
|
by sohamsankaran
2053 days ago
|
|
As it turns out, you can build most distributed protocols on top of an API which only allows you to append to and read from a shared log -- for example, if you want to do consensus across a number of actors, you can just have each one write their proposed value and the current epoch to the log, and the value that is written into the earliest log slot wins. In general, shared total orderings are equivalent to consensus -- this is clear when you consider that State Machine Replication (Paxos, Raft) is all about ensuring that all actors perform the same set of commands in the same order. If you're looking for a more detailed exposition of the shared log abstraction and its uses, you might benefit from reading the Corfu (https://www.cs.yale.edu/homes/mahesh/papers/corfumain-final....), Tango (http://www.cs.cornell.edu/~taozou/sosp13/tangososp.pdf), and FuzzyLog (https://www.usenix.org/system/files/osdi18-lockerman.pdf) papers from the lead author that precede this one. |
|