【IT168 资讯】在构建一个既具有全球性又能保持实时一致性的数据中心的过程中,谷歌Spanner工程师做了一些令人完全意想不到的事情。
每天早上,当安德鲁·菲克斯(Andrew Fikes)坐在美国加州山景城谷歌总部的办公桌前时,他就会打开谷歌与纽约之间的“VC”连接。
“VC”是谷歌对视频会议(video conference)的缩写。通过办公桌上的电脑屏幕,菲克斯能看到威尔逊·谢(Wilson Hsieh)坐在谷歌曼哈顿办公室里,后者也能看到菲克斯。两人还会与谷歌在华盛顿州柯克兰(Kirkland,靠近西雅图)的一个办公室建立VC连接。他们的工程团队跨越这个国家三个不同地区的三个办公室,但所有人仍旧可以毫无延迟地聊天、进行“头脑风暴”和互相解答疑难问题,而这就是谷歌建立Spanner数据库的方式。
“如果你走进我们的办公室就会发现,我们一直都会保持VC处于开启状态。”菲克斯说道,他在2001年加盟谷歌,现在已经跻身于谷歌杰出的软件工程师之列。“我们在过去多年时间里一直都在这样做,这就降低了一般通信方式的所有壁垒。”
这种布置是合适的。正如创造Spanner数据库的工程团队一样,Spanner覆盖全球,但其运作却像是完全在同一个地方发生的。在经历了多年的暗示和传言以后,Spanner终于在今年秋天出现在公众视线里,它是第一个有资格“有名有姓”的全球数据库——其目的是在数以百计的数据中心、成百万的电脑和数万亿计行信息之间无缝运作。
Spanner是一个如此庞大的创造产物,以至于有些人很难真正去了解它。但是,它所带来的最终结果是很容易说明的:通过Spanner,谷歌能向全球受众提供网络服务,但仍可确保正在世界某个地区中发生在这项服务中的事情不会与发生在另一个地区的事情相抵触。
这个新时代的谷歌数据库已经成为该公司在线广告系统的一部分——这个系统能给谷歌带来庞大的收入——可能预示着网络的其他部分将走向何处。当谷歌在9月中旬发布研究报告来对Spanner作出详细描述时,整个世界都为之震动;几个星期以后,当威尔逊·谢在加州好莱坞的一次会议上演示这份研究报告的内容时,在中坚电脑系统工程师中引发的热议也是明显可见的。
“这当然是很有趣的一件事情。”为Facebook网站提供支持的大型软件平台的主要工程师之一罗谷·默蒂(Raghu Murty)说道——但他补充称,Facebook尚未探索实际构建类似数据库的可能性。
谷歌的网络业务比大多数公司的同类业务都要复杂得多,而且这家公司还被迫构建远远超出大多数网络公司范畴的定制化软件。但随着互联网的增长,谷歌创造的产品经常都会对世界其他部分造成“涓滴效应”。
在谷歌公布Spanner数据库的细节以前,许多人甚至都不认为这是可能做到的事情。没错,我们已经拥有了能在多个数据中心之间存储信息的“NoSQL”数据库,但这些数据库不能在保持信息“一致”——意味着在世界一端的数据中心里浏览数据的人所看到的东西与另一端的人看到的东西完全相同——的情况下做到跨数据中心存储。人们原本对此作出的假设是,之所以不能做到这种“一致”性,是因为在数据中心之间传递信息存在固有的延迟。
但在构建一个既具有全球性又能保持一致性的数据中心的过程中,谷歌Spanner工程师做了一些令人完全意想不到的事情,而这也恰恰符合他们经常都会出人意料的过往历史。这个团队的成员不仅包括菲克斯和威尔逊·谢,同时还包括传奇性的谷歌人物杰夫·迪恩(Jeff Dean)和桑杰伊·格马瓦特(Sanjay Ghemawa)以及其他很多工程师,这些工程师都曾致力于开发开创性的数据中心平台,如Megastore和Dremel等。
而这一次,他们找到了一种让时间保持一致的新方法。
“作为一名分布式系统开发者,你会受到这样的教育——我想说的是,从孩提时代就开始受到这种教育——那就是不要相信时间。”菲克斯说道。“我们所做的事情就是找到一种方法来让我们能相信时间——以及理解相信时间意味着什么。”