As it hinted in January it was going to do, Google has productized Spanner, the database that has allowed it to run services consistently across millions of servers in data centers distributed around the world.
While there is an open source version of a similar database in the works – being built by ex-Googlers at a startup called CockroachDB – the database on its own is not enough to make Spanner’s magic happen. Its key capability of keeping server clocks across the globe in sync is due to TrueTime, a system of atomic clocks and GPS receivers in Google data centers that is hard to achieve without the scale of Google’s infrastructure.
The technology underpins some of the most critical Google services, such as AdWords, its biggest moneymaker, Gmail, and Play, its Android app store. Now, as the company is fighting to catch up to Amazon and Microsoft in the enterprise cloud business, it is making one of its key technologies available to cloud customers.
Some of the early users are Quizlet, an online learning tool, and JDA, a retail and supply chain software company. According to Google, Cloud Spanner will be especially useful for retailers, manufacturers, and distributors who have to manage global supply chains and inventory. Financial services companies are another prime target market.
Spanner addresses a tradeoff developers and database admins have been forced to deal with when building cloud applications: a choice between the transactional consistency of traditional databases and horizontal scalability of newer NoSQL databases. “Cloud Spanner breaks that dichotomy, offering both of these critical capabilities in a single, fully managed service,” Deepti Srivastava, product manager for the new cloud service, wrote in a blog post.
In addition to scalability and consistency, Spanner ensures application availability, made possible through its ability to replicate data across many data centers around the world and keep all the copies up to date when changes are made at any end.
The service is currently in Beta, but Google is charging customers $0.90 per compute node per hour and $0.30 per GB of storage per month, in addition to network bandwidth charges for data traveling outside of the database, between different US cloud regions, and between continents.