国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > 蟑螂数据库?Google前工程师企图开源实现Spanner精简版

蟑螂数据库?Google前工程师企图开源实现Spanner精简版

来源:程序员人生   发布时间:2014-09-02 19:41:04 阅读次数:3023次

【编者按】MapReuce、Google File System、Bigtable、Percolator、Pregel、Dremel、Spanner,近十年Google为业界贡献了大量影响深远的论文,也催生了许多优秀的开源产品,其中Hadoop、HBase更成为大数据处理、储存的通用平台。近日,Google的一批前员工,以蟑螂为项目命名,旨在建立Spanner的精简开源版本,然而他们的时间似乎并没有那么宽裕。


免费订阅“CSDN大数据”微信公众号,实时了解最新的大数据进展!

CSDN大数据,专注大数据资讯、技术和经验的分享和讨论,提供Hadoop、Spark、Imapala、Storm、HBase、MongoDB、Solr、机器学习、智能算法等相关大数据观点,大数据技术,大数据平台,大数据实践,大数据产业资讯等服务。


以下为译文

蟑螂是这个地球上生命力最强的生物之一。没有空气情况下可以存活45分钟,没有食物时甚至可以存活超过一个月。砍下头颅都不能杀死它们,至少不是立刻死亡,它们在没有头的情况下还能存活好几天。

在Google、亚马逊以及Facebook等科技巨人里面,工程师们先进的技术同样是在帮助它们网站不那么容易被停掉。他们必须做到,在一个/多个服务器,甚至整个数据中心丢失的情况下,站点仍然能继续运转。这个至关重要,因为每一秒的停机时间都意味着巨额收入损失。

Google、亚马逊以及Facebook等科技巨人,工程师们革新的技术同样帮助网站不那么容易被停掉。

现在,一个开源的开发团队希望让所有的公司都能够很容易的构建这种适应力强大的云计算系统,这样就可以像Google一样运行在线系统了。他们将这个项目叫做 CockroachDB,将它宣传为一个能够持久运行的数据库。对软件来说这个名字听起来有些古怪,但是Spencer Kimball(创始合伙人,Google前工程师)认为它非常合适,“这个名字代表了它的非常重要的两个特性:当然有残存性,还有基本上能够自发地扩展到可用的硬件。”

跟很多其他的设计用来驱动大型在线操作的开源项目类似,CockroachDB同样基于Google的大数据论文―― Spanner。Spanner是一个影响广泛的软件,最终允许Goolge 在全世界范围内上百个数据中心的数以百万计的服务器间传播数据,Google花费了不止5年的时间来构建它。即使已经有Google的论文,CockroachDB的程序员仍然有很多的工作要面对,这是一个很伟大的蓝图。

散布各地的Google前雇员

截至当下,这个项目还在“alpha”开发阶段,远远没有准备好用作产品服务。Spanner作为计算历史上让人印象最为深刻的系统之一,如果真能得到开源实现,或许就只有CockroachDB团队了。他们中相当一部分是Google前工程师,即使不是Spanner项目组成员。Kimball 和Peter Mattis,作为Photoshop的开源替代品GIMP的创始合伙人,帮助创立了Google的大文件存储系统 Colossus。Ben Darnell在Google Reader工作过,Andy Bonventre则曾经为Chrome和Google Tasks工作过。

团队中的大部分成员现在为支付新贵Square(Viewfinder被收购后)工作,包括including Kimball、Andy Kimball、Darnell、Mattis以及 Shawn Morel。但是Kimball指出Square不支持CockroachDB。他和他的同事只能利用业余时间在开发。有些人,比如Bonventre和Tobias Schottdorf,则非Square员工。

只在晚上以及周末来重构Spanner听起来有点天方夜谭了,即使是地球上最好的工程师。然而,并不是每一个公司都需要达到Google的级别,但是Kimball指出Viewfinder团队已经使用了一些Google的技术,在Square渐入佳境并且很快就能派上用场。并且因为在市场上还没有类似Spanner的产品,Kimball和他们的公司才下决心自己创建它。

CockroachDB并不试图复制Spanner最引人注目的部分――使用原子钟(atomic clock)来同步跨全球网络的数据中心的时间。考虑到大部分的在线运营商不太可能达到Google的规模(同时运行成千上万的服务器),他们并不需要这个。Kimball指出,这些公司实际需要一种非常可靠的方式用来自动在不同的数据中心间复制信息,以保证某个数据中心丢失不会造成服务中断,这样一来,服务就像还在那个地方运行一样,这就是CockroachDB旨在提供的功能。

更大的表

Spanner是另一个Google数据库BigTable的继任者,它打破了数据库行业的很多悠久的传统,开辟了新的途径来创立高度可缩放的软件。Google在2006年发表了一个关于BigTable的白皮书之后,它的想法很快被开源克隆所采用,比如 Cassandra和 Hbase迅速成为一些公司的核心技术,像Facebook、Twitter和Netflix,开启了所谓“NoSQL”的改革浪潮。

但是当NoSQL数据库帮助公司将信息存储到大量的机器上时,也在某些方面制造了一些麻烦。像BigTable这个数据库就牺牲了一致性这个古老的数据库概念,这是指当你在数据库的某一个部分做修改时,无须关心另一个部分在做什么。

问题是当数据库就运行在一台机器上时,一致性是相当容易的,但是当规模扩大并扩展到不同的数据中心时,一致性就变得更加困难了。对很多应用来说,比如即时消息,这不是一个大问题。但是如果你做些类似于在线银行的事情,这就是个很大的问题了。数据库的一部分可能会认为某人的帐户上有很多的钱,没有意识到所有的钱已经在另一部分被取走了。另外,缺少一致性,当部分数据库出现故障了也会引起问题。Spanner解决了这些问题,CockroachDB追随了它的脚步。

与蟑螂一样的生命力

Spanner在不牺牲性能的同时保证了跨数据中心的一致性。另外通过F1,使得公司可以使用标准的SQL语句查询数据库(通用语就是信息检索)。尽管运行了成千上万的服务器,Spanner数据库就像是在一台单独的机器上运行一样。如果数据中心故障了,应用可以通过简单的ping另一个数据中心来获取需要的信息,因为所有的数据是跨数据中心无缝同步。CouchroachDB可以做一些类似的事情,尽管没有原子钟,它可能没有那么快完成或者同步那么多数据。

Kimball和他的同事的目标是创建些比Google的产品更容易建立的东西,Google的基础项目倾向于相互依赖。Spanner 需要Colossus,而Colossus也需要称之为Chubby的维护系统。但是CockroachDB的目标是创建一个独立的系统,它不需要依靠某些特定的文件系统或者文件管理器。这个团队同样计划添加F1这个SQL查询工具到这个项目。Kimball指出如果亚马逊或者其他的云主机公司开始添加原子钟到他们的数据中心,CockroachDB最终也可以利用起来。

Kimball指出,如果这个数据库最终超越了一些有内部资源来管理的大公司,一些商业公司将需要为软件提供支持。但是Kimball也指出需要早点考虑这个问题。如果这些确实发生了,这个计划是否需要寻找一个更好听的名字呢?Kimball不这样认为。“人们更容易记住一些带有强烈正面或者负面情绪的东西,这个已经得到了证明。”他说,“我也想找到一个带有超强正面情绪冲击的名字,但是我没有找到,“RainbowDB”听起来就很没劲。

原文链接: http://www.wired.com/2014/07/cockroachdb/(翻译/海霞  责编/仲浩)

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生