Interactive
The Labs
Step through one mechanism at a time, on an example small enough to check by hand. A lab is usually worth more than the chapter it belongs to, which is why there are 8 of them.
L1
Lock Lab
A CAS succeeding, then failing. Two threads on one counter, one cache line.
L2
Queueing Lab
Drag utilization toward 1.0 and watch the latency curve go vertical.
L3
Raft Lab
An election and a log replication, message by message. Drop any one of them.
L4
Storage Engine Lab
The same keys into a B+tree and an LSM. Page splits on one side, compaction on the other.
L5
Consistent Hashing Lab
Add and remove nodes from a ring. Count exactly which keys move.
L6
Cache Eviction Lab
LRU, LFU and W-TinyLFU on one trace, hit rate updating per access.
L7
MVCC Lab
Two transactions, one row. Produce write skew, then prevent it.
L8
Packet Path Lab
One packet from write() to the wire and back, through every layer that touches it.