Spanner: Google’s Globally-Distributed Database
Corbett, Dean, et al.
Jinliang Wei
CMU CSD
October 20, 2013
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 1 / 21
Spanner: Googles Globally-Distributed Database Corbett, Dean, et al. - - PowerPoint PPT Presentation
Spanner: Googles Globally-Distributed Database Corbett, Dean, et al. Jinliang Wei CMU CSD October 20, 2013 Spanner: Googles Globally-Distributed Database Corbett, Dean, et al. Jinliang Wei (CMU CSD) October 20, 2013 1 / 21 What? - Key
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 1 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 2 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 3 / 21
◮ Good performance ◮ Does not support transaction across rows. ◮ Hard to use.
◮ Support SQL transactions. ◮ Many applications: Gmail, Calendar, AppEngine... ◮ Poor write throughput.
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 4 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 5 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 6 / 21
◮ Timed leases for leader election (more details later). ◮ Need only one RTT in failure-free situations.
◮ Multiple transactions may happen concurrently – need concurrency
◮ Maintained by Paxos leader. ◮ Maps ranges of keys to lock states. ◮ Two-phase locking. ◮ Wound-wait for dead lock avoidance. ◮ Older transactions are aborted for retry if a younger transaction holds
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 7 / 21
◮ Implemented on Paxos leader.
◮ Initiates two-phase commit for atmoicity. ◮ Prepare message is logged as a Paxos action in each Paxos group (via
◮ Within each group, the commit is dealt with Paxos.
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 8 / 21
◮ Tablets consist of directories. ◮ Each directory contains a contiguous range of keys. ◮ Directory is the unit of data placement. Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 9 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 10 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 11 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 12 / 21
◮ Leader must only assign timestamps within the interval of its leader
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 13 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 14 / 21
◮ Does not know if the transaction will be eventually commited. ◮ Prevents clients from reading it.
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 15 / 21
◮ What if there are no more write transactions? Blocking infinitely? Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 16 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 17 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 18 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 19 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 20 / 21
Jinliang Wei (CMU CSD) Spanner: Google’s Globally-Distributed Database Corbett, Dean, et al. October 20, 2013 21 / 21