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
Explore this link on the map →related reading
- A Distributed Systems Reading Listferd.ca
- Consistency model - Wikipediaen.wikipedia.org
- Distributed systems for fun and profitbook.mixu.net
- research!rsc: Hardware Memory Models (Memory Models, Part 1)research.swtch.com
- Time, Clocks, and the Ordering of Events in a Distributed Systemlamport.azurewebsites.net
- Mixing Consistency in a Programmable Storage System - CMPS290S, Fall 2018web.archive.org
- Testing Distributed Systems for Linearizabilityanishathalye.com
- Building a BFT JSON CRDTjzhao.xyz
- Database transaction schedule - Wikipediaen.m.wikipedia.org
- Let’s take a crack at understanding distributed consensuspreethikasireddy.com
- Reading 14: Concurrencyweb.mit.edu
- C++11 Memory Modelpeople.cs.pitt.edu