Google公布一份论文,内容在说明Google首创的全球分布式数据库Spanner(扳手),希望该系统可以管理分布在全球各地数以千计的数据中心,使上千万台服务器的数据能够同步,确保每个人在任何地方都可以看到相同的数据。

其中的关键是称为TrueTime的API,让所有服务器使用的时间同步,进而让所有的时间戳都使用相同的时间标准。Google为达到此目标,在服务器内安装GPS及原子钟,利用GPS卫星讯号内的时间戳及原子共振频率标准来确保全球各数据中心的服务器时间同步。

在此之前,大部分的作法是依赖一部服务器提供标准时钟,该服务器可能向原子钟或GPS取得正确时间,但其他服务器则可能因网络讯号传递所产生的延迟,无法完全与标准时钟服务器同步。

由于距离越远延迟现象越是明显,因此以往均想办法改善服务器间的通讯或使用各种方式校正,但仍很难让跨洲际的服务器时间同步。因此当Google提出GPS及电子钟作为解决方案,让很多技术专家大感意外。

Google利用其他数据库的技术来建造Spanner,例如用于单一数据中心内部,能够同步数千台数据库服务器的BigTable,但Spanner的目标是让上千个数据中心内数千万台数据库服务器同步。

Spanner一开始用在Google的广告系统上,目前也用在数据库复制、迁移等方面,不过外界还不清楚详细的使用状况。一般认为不是任何数据库都需要类似的机能,例如Picasa相片服务就对时间的敏感性较低。

Google离职的工程师不久前曾经透漏Spanner相关的讯息给云端数据库厂商Cloudera的执行长Mike Olson。而本篇论文作者之一Vijay Gill,在三年前Google一个数据中心过热导致必须迁移数据库时,也曾经提起Spanner。另一位作者Jeff Dean在2009年一场分布式数据库的研讨会中曾描述Spanner早期开发状况。

Vijay Gill及论文的另一位Sanjay Ghemawat都是从DEC出身,两人在Google合作设计MapReduce、Google File System与BigTable三个项目。开放源码云端平台Hadoop可以说是前两者的仿制品,而BigTable则引发NoSQL数据库的蓬勃发展。