Spanner
Doug Woos (based on slides by Dan Ports)
Spanner Doug Woos (based on slides by Dan Ports) Bigtable in - - PowerPoint PPT Presentation
Spanner Doug Woos (based on slides by Dan Ports) Bigtable in retrospect Definitely a useful, scalable system! Still in use at Google, motivated lots of NoSQL DBs Biggest mistake in design (per Jeff Dean, Google): not supporting
Doug Woos (based on slides by Dan Ports)
not supporting distributed transactions!
actions
(reads and writes) into an atomic unit
with a commit record; undo any without
usually single-writer / multi-reader
get the single-node case right
distributed transactions!
nodes
each transaction’s reads and writes are consistent with running them in a serial order, one transaction at a time
same definition + real time component
provides strict serializability!
causal consistency, eventual consistency, etc
behavior not consistent with executing serially
read committed, etc
serializability, linearizability/strict serializability
A: savings -= 100 checking += 100 B: read savings, checking
but all agree on what sequence of events occurred!
clients might see different order A sees: s -= 100; c += 100; read s,c B sees: read s,c; s -= 100; c += 100
acquire locks on all data read/written
shards; they respond prepare_ok or abort
later; past last chance to abort.
they write commit record and release locks
the coordinator fails?
progress until it comes back up
e.g., coordinator recovery
hold them for the entire commit process?
system
new version of my posts?
participants
DC1 DC2 DC3
DC1 DC2 DC3 Paxos Paxos
DC1 DC2 DC3 Paxos Paxos 2PC
replicated log!