Strong consistency models
Network partitions are going to happen. Switches, NICs, host hardware, operating systems, disks, virtualization layers, and language runtimes, not to mention program semantics themselves, all conspire to delay, drop, duplicate, or reorder our messages. In an uncertain world, we want our software to maintain some sense of intuitive correctness. Well, obviously we want intuitive correctness. Do The Right Thing(TM)! But what exactly is the right thing? How might we describe it? In this essay, we’ll take a tour of some “strong” consistency models, and see how they fit together. There are many ways to express an algorithm’s abstract behavior–but just for now, let’s say that a system is comprised of a state, and some operations that transform that state. As the system runs, it moves from state to state through some history of operations. For instance, our state might be a variable, and the operations on the state could be the writes to, and reads from, that variable. In this simple Ruby prog
Strong consistency models Software Distributed Systems Jepsen Networks 2014-05-15 Update, 2018-08-24: For a more complete, formal discussion of consistency models, see jepsen.io . Network partitions are going to happen . Switches, NICs, host hardware, operating systems, disks, virtualization layers, and language runtimes, not to mention program semantics themselves, all conspire to delay, drop, duplicate, or reorder our messages. In an uncertain world, we want our software to maintain some sense of intuitive correctness . Well, obviously we want intuitive correctness. Do The Right Thing(TM)! B
related reading
- Consistency model - Wikipediaen.wikipedia.org
- Everything I know about good system designseangoedecke.com
- Testing Distributed Systems for Linearizabilityanishathalye.com
- A Distributed Systems Reading Listferd.ca
- research!rsc: Hardware Memory Models (Memory Models, Part 1)research.swtch.com
- Essays on programming I think about a lot | benkuhn.netbenkuhn.net
- A Concurrency Cost Hierarchytravisdowns.github.io
- GitHub - aphyr/distsys-class: Class materials for a distributed systems lecture seriesgithub.com
- Mixing Consistency in a Programmable Storage System - CMPS290S, Fall 2018web.archive.org
- Distributed systems for fun and profitbook.mixu.net
- Chain Replication for Supporting High Throughput and Availabilitycs.cornell.edu
- Reading 14: Concurrencyweb.mit.edu