Google Cloud Spanner is a distributed relational database service that runs on Google Cloud. It is designed to support global online transaction processing deployments, SQL semantics, highly available horizontal scaling and transactional consistency.
Interest in Google Cloud Spanner centers on the cloud database's ability to provide both availability and consistency. These traits are usually considered at odds with each other, with data designers typically making tradeoffs to emphasize either availability or consistency. The trade-off has been described most vividly in the CAP Theorem, which underpinned a general move to NoSQL databases for availability and scalability in web and cloud systems. In pursuing both system availability and data consistency, Google Cloud Spanner combines SQL and NoSQL traits.
Google Cloud Spanner's roots
Google Cloud Spanner first appeared as a key-value NoSQL store, but over time it has come to include a strongly typed schema and a SQL query processor as well. Work on its NoSQL processor core and SQL interface was in part informed by NoSQL and SQL efforts undertaken by Google engineers as part of the company's in-house F1 system for managing Google AdWords data. Google Cloud Spanner became generally available to Google Cloud customers in May 2017.
Google Cloud Spanner supports distributed SQL queries, as well as query re-starts in response to failures. It employs a dialect of SQL that Google standardized in-house. Google Cloud Spanner makes use of TrueTime, a Google Cloud clock synchronization service that uses a combination of atomic clocks and GPS technology.
Other cloud databases
As a managed relational cloud database, Google Cloud Spanner is an alternative to cloud relational databases including Azure SQL, Amazon Aurora, IBM DB2 hosted and Oracle Database Cloud Service, as well as commonly used open source web and cloud application databases such as MySQL and PostgreSQL. Since Google Cloud Spanner combines NoSQL and SQL traits, it can also be classified as a NewSQL database. It stacks up competitively with CrateDB, NuoDB, the in-memory database management system MemSQL, CockroachDB and others. Google Cloud Spanner's support of both NoSQL and SQL approaches also places it in the category of multimodel database, an emerging type that includes databases such as Microsoft Azure Cosmos DB and MarkLogic.
Google Cloud Spanner pricing
Google Cloud Spanner pricing is based on three infrastructure components: nodes, storage and networking.
Cloud Spanner pricing for nodes (or processing) is set on an hourly basis, based on the maximum number of nodes used within any given hour in a project. Pricing for Cloud Spanner storage is set on a per-month basis, based on the average amount of data in Cloud Spanner tables and secondary indexes during that month. Google Cloud Spanner pricing for network bandwidth is set on a per-month basis, based on the amount used during that month.