Google发布Spanner论文,宣告重回分布式事务语义

标签: google spanner 论文 | 发表时间:2012-10-17 22:18 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

上个月,在 Operating System Design and Implementation(OSDI '12)大会上, Google放出了Spanner的详细信息——Spanner是一个高可伸缩、全球复制的半关系型数据库。上周,Google又给出了论文合著者 Wilson Hsieh的一个 与OSDI 2012上演讲相关的视频,该视频专注于论文里的一些关键概念,InfoQ的Alex Popescu发表了一篇 文章,内容是Berlin Buzzwords上Alex Lloyd提供的更多详细信息。研究证明ACID语义不需要牺牲高可伸缩性,推翻了NoSQL是高可伸缩性持久化的万灵药的想法。论文中的这句话很好地表明了这一观点:

我们认为,最好是让应用程序开发者在出现瓶颈时处理由事务使用过度引起的性能问题,而非总是在缺少事务的情况下进行编码。

Spanner项目源于Google Adwords系统在持久化方面的需要,该解决方案既要满足关系型与事务性,同时又要在全球范围内可伸缩部署。 MegaStore仅部分满足这些关注点,因为在跨洲际事务时没有可预计的延时是无法实现其一致性保障的。在Spanner中,分布式事务的延时问题是通过Google的TrueTime API来处理的,这基本上是一个针对时钟不确定性(clock uncertainty)问题的解决方案。

通过大范围网络中的多个参考时间确定时钟时间时,时钟漂移和网络延时会引入时钟不确定性(在论文中用ε符号表示)。参考时间混合了GPS时间和原子时钟,通过冗余降低了它们的错误率。通过确定影响时钟不确定性的因素,将其上限控制在一个承诺的等待间隔里(两倍的ε),就能实现外部一致性保证以及其他一些好处,比如无锁读事务、非阻塞读以及原子Schema变更。因此,承诺的等待间隔直接和时钟不确定性绑在了一起,不确定性越高,等待间隔就越长,也会拖慢Spanner。然而,为了降低较长等待间隔(通常是10ms,但呈现长尾分布)带来的影响,Spanner在等待时间里执行了 Paxos(一致协议)或两阶段提交的准备阶段。

Spanner的数据模型与Megastore类似,都是半关系型层次化结构模型。Timothy O'Brien在O'Reilly上的 博客里对Spanner做了一个总结:

一套Spanner部署是由一些管理服务器组成的,它们是用来管理跨数据中心的多个“区域”(Zone)的。一台“区域主服务器”(Zone master)和一系列“位置代理”(location proxy)管理了成百上千的“Spanserver”,它们是在Spanner数据库中执行批量工作的。Spanserver中存储的数据单元称为“目录”(directory),每个单元中都实现了一个位于Tablet之上的Paxos状态机。Spanserver以B树的形式存储数据,使用了一个复合键,再结合上一个时间戳和一个值。

Cloudant Labs在他们的 博客里指出了Spanner缺少的两块东西:

显然Spanner目前还不支持二级索引的自动处理。而且,它不支持以后能达到一致状态的“离线”访问(像CouchDB那样的离线访问)。

NuoDB为他们的解决方案申请了专利,从他们的 专利描述来看,也实现了和Spanner相同的功能,但Google宣称Spanner是第一个全球复制、可伸缩的ACID数据库。围绕NoSQL vs. NewSQL之争,Spanner对您的产品和项目实现会产生何种影响呢?

查看英文原文Google Publishes Paper On Spanner Ushering a Return to Distributed Transactional Semantics

译者 丁雪丰 是InfoQ中文站编辑,满江红翻译组核心成员,出版过《Spring攻略》、《JRuby实战》等多部译著。主要关注领域:企业级应用、海量数据计算、动态语言应用等。

您可能也会喜欢

相关 [google spanner 论文] 推荐:

转:Google Spanner简介

- - 唐福林-博客雨
Google Spanner简介. Spanner 是Google的全球级的分布式数据库 (Globally-Distributed Database). Spanner的扩展性达到了令人咋舌的全球级,可以扩展到数百万的机器,数已百计的数据中心,上万亿的行. 更给力的是,除了夸张的扩展性之外,他还能同时通过同步复制和多版本来满足外部一致性,可用性也是很好的.

Google发布Spanner论文,宣告重回分布式事务语义

- - InfoQ cn
上个月,在 Operating System Design and Implementation(OSDI '12)大会上, Google放出了Spanner的详细信息——Spanner是一个高可伸缩、全球复制的半关系型数据库. 上周,Google又给出了论文合著者 Wilson Hsieh的一个 与OSDI 2012上演讲相关的视频,该视频专注于论文里的一些关键概念,InfoQ的Alex Popescu发表了一篇 文章,内容是Berlin Buzzwords上Alex Lloyd提供的更多详细信息.

Google Spanner原理- 全球级的分布式数据库

- - 我自然
Google Spanner简介. Spanner 是Google的全球级的分布式数据库 (Globally-Distributed Database). Spanner的扩展性达到了令人咋舌的全球级,可以扩展到数百万的机器,数已百计的数据中心,上万亿的行. 更给力的是,除了夸张的扩展性之外,他还能同时通过同步复制和多版本来满足外部一致性,可用性也是很好的.

EMC颜开分析Google全球级分布式数据库Spanner

- - InfoQ cn
完成 对Google Dremel原理的分析后,EMC中国研究院的研究员 颜开又在自己博客上 分析了Google的全球级分布式数据库Spanner,他重点分析了Spanner的背景、设计和并发控制. Spanner的扩展性达到了令人咋舌的全球级,可以扩展到数百万的机器,数已百计的数据中心,上万亿的行.

Google Spanner:地球上最大的单一数据库

- - Solidot
Google今年9月透露了跨地球的分布式数据库Spanner. Spanner的TrueTime API能根据数据中心安装的原子钟和GPS接收器让应用程序在不需要全局同步的情况下在精确时间本地读取数据. 《连线》的一篇报道采访了Google知名工程师Andrew Fikes和Andy Gross,一探Google Spanner内部.

谷奥: Google = Google+

- 吞佛 - 谷奥聚合——谷奥主站+谷安 aggregator
在上周举办的Google Zeitgeist 2011大会上,John Battelle问Larry Page:在Google大部分的历史里,人们会想到搜索,那么Google品牌=搜索. 但在随后Google的发展史里,Google品牌会等于什么. Larry Page并未直面回答这个问题,至少没有从市场角度来回答.

Google宣布Google CDN

- way - Solidot
Google宣布了最新的帮助加快互联网速度的工具Page Speed Service,加快静态网页的载入速度,不支持动态网页. 在开发者注册该服务之后,可将网站的DNS入口记录指向Google,然后Page Speed Service从服务器上抓取内容,采用最佳的Web性能方案重写网页,通过Google在全球部署的服务器将内容展示给终端用户,加快网页载入速度.

Google将关闭Google Labs

- yifan - Solidot
Google宣布将关闭Google实验室,搜索巨人表示此举将帮助他们将精力集中在优先的产品项目上. Google称,关闭Google实验室意味着大部分试验项目将会被放弃,但不是每一个项目都会被抛弃. Google会将部分试验项目整合到其它产品中. Android应用程序如Google Goggles和Google Listen,则将会继续留在Android Market中.

當Google Docs遇上Google Finances

- 沒有暱稱 - 海芋小站
Google Finances是由Google所推出的一個財經服務,裡面記錄了全球的財經資訊,而如果我們要在Google文件中插入這些財經資訊,如某支股票的收盤價,開盤價等資訊,那要怎麼辦到呢. Google其實提供了非常簡單的函式,怎麼用就往下看啦. 其實在Google文件的試算表中,以插入股票為例,只要輸入「=GoogleFinance("股票代碼.tw"; "參數")」就可以了,以鴻海為例,代碼就是「2317」,記得一定要加變成「2317.tw」才可以.

Google Reader将和Google+整合

- Richard - 月光博客
  Google Reader官方博客宣布,即将对Google Reader进行重大改版,并和Google+进行整合,新版本将重新设计,包括friending、following等功能将会被删除. 之前Google Reader的社交功能是和Buzz整合,随着Buzz的关闭,Google Reader的改版有可能会和以前的Buzz一样,将关注和被关注整合到Google+中,然后用户在Google Reader的分享自动同步到Google+.