Distributed Abstractions
summary
Describes Mastry’s tree and the Silo database built on it: in-memory key/value storage using a compare-and-swap header with lock bit and version per node, readers that do no-writes-for-reads (optimistic reads that validate the header), writers that lock and bump versions, and a three‑phase commit that locks, verifies read sets, then installs writes. Implements one worker thread per core and assumes one-shot requests. Shows high scalability across cores, outperforms partitioned schemes when cross-partition transactions rise. Also generalizes into Stow transactional objects and discusses epoch GC and encapsulation.
AI-written summary · about
chapters (12)
- 0:00Start
- 1:24Multicore Issues . Good performance when synchronization is required . Scalability
- 2:23Multicore machines Sort of distributed
- 6:20Concurrency Control
- 13:27Transactions begin % do stuff: run queries % using insert, lookup, update, delete, % and range
- 14:04Silo Database is in primary memory . Runs one-shot requests
- 15:13Running Transactions
- 23:10A vision for concurrent code Apps run transactions
- 27:12Transaction-aware datatypes Provide ops for user code .E.g., lookup, update, insert, delete, range . Record reads and writes via platform
- 29:04Example: deleting a key - Transaction that deletes k commits . Removing a key is expensive
- 33:33Performance Silo: 7000 lines of code - STO-Silo: 3000 lines of code . Uses hash tables and trees
- 34:58Observations . This work depended on abstract data types . Better performance by taking advantage of
related talks
29mModern Database Architecture: From SQL to NoSQL & Distributed SQL
52mThe Computer Science behind a modern distributed data store
41mTransactions: myths, surprises and opportunities
52mTransactions: Myths, Surprises and Opportunities
19mBuilding a Performant Configuration-Store Layer
16mScaleDB: A Scalable, Asynchronous In-Memory Database
46mLost in transaction? Strategies to deal with (in-)consistency in distributed systems
34mWhat We Talk About When We Talk About Disk IO
