Detailed Design of Spanner
Understand the detailed design of Google Spanner, including its server organization with zones, spanservers, and managers. Learn how Spanner achieves strong global consistency using the TrueTime API, Paxos consensus for replication, and concurrency control through lock tables. Explore how Spanner efficiently manages distributed transactions and handles data placement across global data centers.
Universe is the term for a Spanner deployment. Since Spanner handles data on a global scale, only a select few universes will be active at any given time. The components of Spanner are as follows:
Optimized Spanner server organization: This performs automatic resharding based on the data size and load and facilitates the client's request of read and write.
TrueTime API: This is an API that provides the time within well-defined error bounds. It can be used to ensure strong external consistency and global serialization.
Strong network infrastructure: We should have a redundant and highly available network that provides global connectivity to make high performance for Spanner possible.
First, we will understand how the components work together in Spanner's deployment. In the next lessons, we will learn about the TrueTime API, which makes Spanner unique. Moreover, we will also learn how a strong network helps Spanner to be a strongly consistent database.
Question: Considering the existence of Megastore, Google went on to develop and design Spanner. Take some time to study the motivations and key reasons behind Google Spanner’s development despite Megastore’s presence. What unique characteristics and capabilities does Spanner bring to the table, and in what ways does it address the limitations or extend the capabilities of Megastore?