top | item 10018194

(no title)

quibit | 10 years ago

What exactly is a consensus algorithm and how do you prove linearizability?

discuss

order

macintux|10 years ago

Kyle Kingsbury has a good look at linearizability and other forms of consistency: https://aphyr.com/posts/313-strong-consistency-models

r0naa|10 years ago

Kyle Kingsbury is the man, and his blog is a must read to anyone interested/curious by distributed systems.

quibit|10 years ago

That was a great read. Thanks for a new blog to put on my RSS feed

r0naa|10 years ago

distributed consensus is about having a group of processes agree on a single data value. For example, imagine you have a cluster of server. Each node has a replicated database.

(1) You want all your nodes to have the exact same replica of the database i.e consistency across your cluster.

You would need to reach consensus before any node actually adds anything to its local database to make sure that property (1) is fulfilled.

== Linearizability is just a consistency model i.e a variant of property 1 with stronger/weaker constraints.

quibit|10 years ago

Oh wow, that's actually really powerful stuff! Thanks for the explanation.