Google has turned a database service that it uses to run some of its mission-critical products into an offering for its public cloud customers.
On Tuesday, the company launched Cloud Spanner, a new, fully managed database that’s supposed to provide the transactional consistency of a traditional database plus the scalability and performance of a NoSQL database. It’s based on the same systems that run the company’s own Spanner database internally.
Usually, businesses have to pick either a traditional or a NoSQL database, and each comes with particular trade-offs. Traditional databases provide better transactional consistency, but can be hard to scale. NoSQL databases are better at scaling but sacrifice consistency.
Cloud Spanner is designed to reduce those trade-offs, and it's also delivered as a fully managed service. Among other things, that means Google will manage hardware, software and replication of content for a database that can span multiple data centers.
The service will be useful for companies that need millisecond-level consistency in their databases worldwide, according to Nick Heudecker, a research director at Gartner. In an interview, he called out financial services and advertising as two industries that might benefit from Cloud Spanner.
Heudecker did point out that the service will require companies to port existing applications, which may prove challenging. Google is working with partners to help customers move over, according to Deepti Srivastava, the product manager for Cloud Spanner.
Cloud Spanner has generated more interest than most new Google services, based on response to a closed alpha test, Srivastava said.
Cloud Spanner grew out of a project that began in 2007, when a team of Google employees set out to solve the problem of choosing between NoSQL and traditional databases. That led to a paper, published in 2012, describing the company’s Spanner database, which uses a number of novel techniques, including atomic and GPS clocks inside data centers to maintain time consistency.
Spanner is used to operate Google services like AdWords and Google Play. According to the company, it can handle tens of millions of queries per second.
That pedigree is a feature of Cloud Spanner that appealed to Peter Bakkum, the platform lead at Quizlet. The education software company, which offers a popular set of study tools for students, is evaluating how to scale its database infrastructure.
Quizlet has been testing Cloud Spanner since the closed alpha phase and may end up using the service to replace its existing setup of MySQL databases. Refactoring Quizlet’s applications to use Cloud Spanner will require work, but that's true of all the possible upgrade paths, Bakkum said.
“We need a fundamentally different architecture to do scaling, and any of those solutions have a difficult migration path,” he said.
Cloud Spanner’s popularity may be throttled somewhat by Google’s position in the cloud market. While the company has been aggressive in releasing new capabilities and improving its services to attract new customers, its use still lags behind that of Amazon Web Services and Microsoft Azure.
Using Cloud Spanner means bringing data to Google’s cloud platform and building an application that targets it. While some companies are comfortable working with multiple cloud providers, not all of them are.
That said, Gartner's Heudecker said Google is the only major cloud provider offering a product like this one and it will be hard for rivals to catch up.
“Cloud Spanner is not just software,” Heudecker said. “It is the union of software, hardware — in the form of atomic clocks in Google’s data centers — and an incredibly robust network connecting their data centers together. So it’s not just writing code. It’s a lot of investment and a lot of operational expertise that Google excels at.”
Right now, Cloud Spanner instances can only exist in one of Google's cloud regions, though they'll be replicated across multiple availability zones inside those regions. In the future, Cloud Spanner customers will be able to have one database that's kept in sync across multiple regions.