TALKS
Data Corrupting Architectures We Know and Love
Abstract
There’s an old distributed systems adage, “You can have a second computer when you learn how to use the first one.” When it comes to data-access patterns, most of our favorite patterns are unsafe on a single computer. Most of our applications assume a concurrency model where all access is serialized. What happens when that mental model meets distributed data?
Sean Allen reviews data race and corruption problems that exist on single-machine systems and shows how we’ve transferred many of those patterns over to distributed systems and distributed state. You’ll learn the basics of data races, deadlocks, and problems in even the simplest of our concurrent data access patterns and how our existing scaling patterns replicate the same issues across multiple machines, increasing the potential problems, as well as designs that can alleviate them.
Versions of this talk
References
- Actor Model
- Atomicity
- Concurrency
- Consensus
- CQRS
- Conflict-free replicated data type (CRDT)
- Data Race
- Distributed Transaction
- Event Sourcing
- Functions as a service
- Isolation (database systems)
- Linearizability
- Locks and Mutexes
- Paxos Consensus Algorithm
- Raft Consensus Algorithm
- Serverless Architectures
- Service statelessness principle
- Shared-nothing Architecture
- Synchronization
- Transaction
Dive Deeper
- ACIDRain: Concurrency-Related Attacks onDatabase-Backed Web Applications
- CRDT Primer
- Jepsen: Riak
- Lasp: A Language for Distributed, Eventually Consistent Computations with CRDTs
- Pat Helland and Me: How to build stateful distributed applications that can scale almost infinitely
- Rich Hickey: Deconstructing the Database
- There is No Now