In the U.K., one would not wish to be called a spanner: the term refers to a wrench, and is also used to denote a person whose intelligence nears that of a wrench. In the cloud, however, Spanner means a feat of engineering. Google’s recently announced open beta of the Spanner database within its Google Cloud Platform is the first chance developers have had to kick the tires on the culmination of a decade of work by Google engineers.
Those engineers weren’t just working at the software level, however. There are two secret sauces to Spanner that give it the ability to provide five nines of uptime for transactional data across datacenters. Those sauces are atomic clocks and transoceanic fiber cabling.
(Related: SQL a Top 3 coding language for 2017)
Dominic Preuss, technologist for Google Cloud Platform, said that these two hardware elements have combined in a manner that, while not side-stepping the CAP theorem, greatly reduces the need to notice those distinctions.
“Spanner is CP,” said Preuss, meaning it favors consistency and partitions over availability. But within that equation, he said, is a great deal of fine detail that comes between 100% availability and the 99.999% availability Spanner offers.
As with all infinities, there’s a great deal of room to make compromises between 100% and 99.999%. As such, said Preuss, the Spanner cloud database can handle data inconsistencies without compromising the overall structure of the database.
This is because Spanner takes advantage of TrueTime, an API and system the company developed alongside Spanner. TrueTime is based on redundant atomic clocks within each datacenter region, allowing for millisecond syncing of data writes around the world. This, coupled with Google’s massive global fiber network, ensures data is kept in sync.
“The integration of software and hardware that creates TrueTime really is what makes Spanner possible,” said Preuss. “Those are the two innovations that have allowed us to build this technology, and it’s what differentiates us from what other providers have done.
“Google is one of the largest private fiber providers in the world. We’ve always believed we should own the network between us, our customers and our various datacenters. We’ve laid multiple trans-Pacific fiber pipelines ourselves and through consortiums. We announced last year at our event in September that we’re adding 10 new regions in 2017.”
Preuss said that enterprises are very much a target for Spanner, and that Google already provides service and support for its cloud offerings in various levels of availability. These same support services are being extended to Spanner, including the option of dedicated resources on Google’s end.
“Google is very much focused on being the open cloud, so we always want to adopt open standards,” said Preuss. “The real question was how do we take this internal tech and put it out to customers in a way they can understand? We have a big focus on standard ANSI SQL, so there’s no difference. We offer things like a read-only JDBC driver and really first-class client libraries for Java, Python, Go and Node. It’s really where we spent a lot of our time trying to make sure we provided the most seamless experience for developers trying to adopt Spanner.”
For now, the focus is on getting Spanner up to snuff for a generally available release, said Preuss. “Right now the big things we’re working on are getting to general availability and collecting a bunch of data. We plan to go [general availability] quickly. We’ll try to do that by the end of the year. We’ll also be launching multi-region instances by the end of the year,” he said.