说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Spanner vs. F1:谷歌两大数据管理利器的整体对比及关联

HTML文档下载 WORD文档下载 PDF文档下载
Spanner与F1是互联网巨头Google当下的两个数据处理利器,其中F1更支撑了AdWords这个庞大的生态系统;该系统拥有过百TB的数据,每秒处理数十万的请求,日扫描数据行更达百万亿。

自2012年9月搜索巨头Google发布Spanner论文已有一年之久,期间各种对比可以说是数不胜数。近日,ThoughtWorks India技术总监Srihari Srinivasan(曾供职于Philips Consumer Electronics、Ivega Corp等多家企业)总整体上对比了Google的两个数据库系统,并分析了两个系统之间的联系及配合机制。以下为译文:

F1设计的主旨

  • 系统可以添加资源进行纵向扩展
  • 无需改变应用程序就具备数据分片及均衡的能力
  • 对事务支持ACID特性
  • SQL的全支持,同时支持索引

Spanner目标

  • 最主要的目的就是跨数据中心的管理及复制数据
  • 数据的重分片及均衡能力
  • 主机间数据的自动迁移

从整体上看F1

1. F1建立于Spanner之上,Spanner的特性包括:分布事务间(2PC)提供强一致性、基于时间戳的整体排序、通过Paxos进行同步复制、容错、数据的自动均衡等。

2. 通过F1增加的特性:

  • 在整体数据上分配SQL查询,并提供join能力
  • 索引的事务一致性
  • 异步模式转变
  • 使用新的ORM库

F1的架构

1. 用户通过客户端库交互。

2. 任何服务器都可以接收SQL查询请求。

3. F1客户端需要通过一个本地负载均衡器,有助于降低延时。如果需要,它会负责把请求转发到本地/最近数据中心里的F1服务器。

4. F1与Spanner的服务器会位于同一个数据中心。

5. Span-server会从Colossus File System(GFS继任者)中获得数据。

  • 每个span-server都搭配了一个称为Tablet的存储抽象,通常负责100-1000个tablet实例。这些Tablet数据储存在类似B-Tree的一组文件及预写入日志上,这些文件都位于CFS之上。
  • 在tablet之上,每个span-server同样还实现了1个Paxos状态机。

6. F1服务器大部分都是无状态的,鉴于其不负责数据存储,因此添加及删除起来非常方便,不会涉及到数据转移。

7. F1进程通过主从方式组织,F1 master首先接收查询,然后再委托给slave处理。

8. Master同时还负责slave poll的维护。

9. 系统的吞吐量可以通过增加F1 master、F1 slave及span-server的数量完成。

10. 数据储存通过Spanner处理

  • Spanner将数据行分割成bucket抽象,称之为1个目录——共享1个通用前缀的连续key集合。血统关系通过目录实现。
  • 添加1个span-server将导致跨Spanner tablet的数据重新分配,但是却不会波及到其它的F1服务器,这个操作对F1服务器完全透明。
  • 鉴于数据在不同地理位置上的多个数据中心同步,提交的延时将非常高(50-150毫秒)。

11. 系统同样包含了只读副本,这些副本将不会计算到Paxos算法中。只读副本只用于读的快照,因此支持OLTP和OLAP的负载隔离。

数据模型——分层架构

  • 从逻辑层看F1,它的数据模型非常类似RDBMS;此外,F1中的表格可以用分层模式组织。
  • 分层中, root table对应的行被称为root row。
  • Root row的child table对应行被储存在单独的Spanner目录中。
  • 客户端应用程序通过调用INTERLEAVE IN声明数据库架构的层次。
  • 目录表格的每行都拥有一个键K,连同子表中所有行一起,从K开始按照字典顺序递增组成一个目录。
  • 每个子表格都与父表格中的行聚合并交叉。
  • 论文中还强调了读、写操作可以从分层架构中获得的好处,然而在实际上,分层架构并不是F1中唯一的模型。
  • F1中的索引具有事务性并且完全一致,在Spanner中使用单独的表进行存储,键则使用索引键与被索引表格主键的串连。
  • 使用两种类型的物理存储布局——Local及Global。

F1中的查询处理

F1中的查询管理类似于当下多数的SQL-on-Hadoop解决方案,比如Cloudera的Impala、Apache Drill及无共享并行数据库。

查询的生命周期

  • 每个查询都会配备一个协调节点,这个节点负责接收SQL查询请求。
  • 协调器会负责计划执行以及从结果的接收,并做结果的聚合、排序及过滤,最后会将结果返回给客户端。
  • 基于数据被不停的分割,计划器还负责分割长度的制定,以最小化查询的时间。
  • 基于被处理数据及分割范围,计划器/优化器甚至会对预处理数据进行再分配。

网络延时的处理

F1的主数据存储就是Spanner,可以看成是一个远端数据资源,因此F1 SQL同样可以访问远端低延时数据资源。

访问远端数据资源产生的延时通过查询不同阶段的批处理及流处理缓和,同时查询操作符经过特定的设计为处理管道后续阶段传输尽可能多的数据。

最后

自2012年起,F1系统就负责了AdWords广告活动的数据管理。AdWords是个庞大的生态系统,设计数百的应用程序及数千的用户。数据库里的资料超过100TB,每秒处理数十万请求,每天扫描上百万亿的数据行。可用性达到5个9,对比传统的MySQL系统,即使在计划外宕机时,延时都不会显著增加。

原文链接: F1 and Spanner Holistically Compared(编译/仲浩 审校/周小璐)


以“应用驱动的架构与技术”为主题的第七届中国大数据技术大会(Big Data Technology Conference 2013,BDTC 2013)将于2013年12月5日-6日在北京世纪金源大酒店举行。大会共设“大数据架构与系统”、“大数据技术”、“大数据应用”、“大数据的研发趋势”,“大数据基准测试(Benchmark)”,以及“智能交通与大数据” 六个分论坛,大牛坐而论道,专家实践分享。10月25日之前, 最低票价!从速!

开放能力升级——微信公众号登陆授权开启公测! 百度最“智能”的新型推荐技术——智能因子分解机 消灭Bug!18款最佳的问题跟踪管理应用程序 Google Analytics为什么会这么快 【MDCC 2014】Xamarin深入体验营——开发实战大揭秘 【MDCC 2014】电信技术专场:运营商与开发者如何合作共赢 【MDCC 2014】高德LBS大赛闭幕式暨颁奖典礼:下一个50亿应用花落谁家? MDCC 2014移动开发者大会开幕:全生态系统齐聚 开发者成主角 蓝港互动有限公司董事长&首席执行官王峰:移动互联网泛娱乐化趋势 多盟联合创始人&总裁张鹤:多盟DSPAN助力开发者高效变现 创新工场联合创始人汪华:移动互联网时代的跃迁式增长 阿里巴巴集团UC移动事业群总裁俞永福:AMAP Inside——更专业、更开放 《程序员+》移动应用上线 启动“2014 MDCC十大人气应用/产品评选活动” 微软开发体验与平台合作事业部大中华区DX部门总经理Srikanth Raju:基于云的跨平台开发 Facebook平台工程合作部亚太区总经理张博:通过Facebook构建下一代移动应用 Vungle工程副总裁Wayne Chan:移动视频广告的未来 友盟副总裁焦岳:2014移动互联网行业趋势&大数据的行业价值与运营支持 联发科技创意实验室副总裁Marc Naddell:以小博大的可穿戴方案 用友软件股份有限公司高级副总裁谢志华:企业互联网移动化触手可及 【MDCC 2014】英雄会晚宴——厉兵秣马,再上征程 移动开发技术与平台峰会(上):流量优化、数据管理、IM、LBS与跨平台开发 【推广、盈利与投资论坛】探寻推广与盈利新趋势 【企业移动化论坛】翻山越岭,创新突围企业移动化 解读微信与开发者双赢的开放能力 2014年10月操作系统份额:Windows 8.1份额喜人,Linux跌惨了 智能硬件峰会(下):苹果、微信、小米带给移动医疗产品开发的启示 移动游戏峰会(下):从端游转型手游、如何做一款不一样的游戏 移动游戏峰会(上):小团队如何做出大制作、游戏防作弊攻防战 深圳微信开发者大会:拒绝概念 这次只谈“怎么做” AMD应邀出席HPC China 2014,重磅推出新一代Firepro-S系列高性能显卡 你就是主角,MDCC 2014交流对接活动回顾(组图) 有关Acrobat 组件的错误 关于火车查询 CTreeCtrl 的同一item项被多次点击时,会出发什么消息?你知道吗? WINCE的市场 控件ID有何用? 初学XML,请问ASP传回的中文字怎么是乱码? 请问圆锥体侧面积计算公式是什么?快阿,正在考试!!!!!!!!!!!!!! (♂逍遙剑♂) 过来聊聊!进来! 怎样用文件的形式对数据库进行备份? 能在标题栏添加控件吗?谁能告诉我? 谁知道在Activex控件中事件执行顺序的问题 3山好可怜,被女人抓住了把柄,知道了粗细长短,哎。。。 想在odbc里用程序的方法建立驱动,怎么实现? vc编的DLL怎样处理LIB在BCB中可以直接用哦?我用WINAPI那个约定 救命的!!! 深圳的“同志”好多啊!有一个哥们还向我推荐了一个同志网站,可惜我不是同志,如果有同志需要的话,可以去找那些深圳同志接头! 有懂EJB ,weblogic 大连的朋友吗? to fightwolf:give she some color to see see. 装delphi 6之前是不是要装ie5.5? 现在有一个问题:在大数据量传输的情况下,想采用异步传送方式,请问如何实现? 关于比例问题!! 有人说:做程序员很累,但我很快乐?广大程序员朋友们,有谁同意这个说法吗? 那该怎么办? MFC开发的ActiveX怎么都是OCX,可不可以是DLL,如果可以该怎么做。 如何获得当前活动控件的引用? 哪里有获得指定IP地址的机器网卡MAC地址的源程序? 新手上路:请问系统安全的市场前景如何? 'select * from a where b like ''[as]%'''这一句有没有错呢? 哪能找到 VBScript 5.0 的联机文档 为什么第七期的杂志我还没收到啊!!~~,原以为提前先订几期,会早点收到!唉!~~ php打开CSV文件的问题!答来分去! 各位有用过aspchart这个控件的吗?为什么我不能生成图片呢? 我有一个问题大家帮我UP一下 用HTML可以制作留言版吗?有使用mailto的吗? 大哥们,小弟我准备学JAVA了给推荐几本好书吧!小弟不胜感激啊! 因为JAVA,我差点把机子砸了 网络协议相关——向大侠请教 longyear,来一下啊。 我的一个在installshield for vc6.0下制作的安装程序用installshield professional 6.1编译时出错 在运行期间只有这个控键的句柄如何知道它是不是TForm? 如何动态生成组件? CTreeCtrl 的item项已被选中,再次点击怎么触发同样的事件?我明白了,你明白了没有? 为什么有冬瓜、南瓜、西瓜却没北瓜?同样的,为什么有北京、南京、东京却没西京?这个问题困扰了偶好久…… 请问GetPane得到的是什么啊? 号外号外,上海热线的吸铁石电子信箱有60M的空间,是真是假啊,我真怀疑自己看花眼了,哪位帮我确定一下,这1分就请您笑纳了 关于报表的问题--为什么细节带只打印一条记录? 初学者特来请教! 有谁能够告诉我关于RS-232口,RS-485口的有关信息???? 这个VB怎办??? 这个cookie该怎么实现? pe文件原理 英语翻译panel公司的中文是什么`? $1500元等于多少人民币? 力矩单位的换算大家好,请问1N.m等于多少N.mm?如果方便,麻烦请写一下换算过程. 英语翻译 1500毫升=()立方分米填的是分数。 30 ft lbs 等于多少 psi? rear mount on vessel console panel 怎么翻译? 1500毫升=(?)升=(?)立方米 LBS和PSI 有区别吗在美标中的压力:3000LBS,是不是和3000PSI相同的. 我国汉字的"六书”是指什么 1500-2000毫升相当几杯的水啊? 扭力转换:5IN.LBS等于多少kgf.cm 汉字的构造有六书?有哪六书 重量和牛顿是怎样换算的要具体的换算公式啊 国外的扭力in-lbs换算成中国的标准n-m怎么换算,还有kgf-cm,8 IN.LBS是多少Kg啊, 汉字六书指的是什么 牛顿和千克能换算吗?怎么换算呢? 125PSI等于多少KG?100LBS等于多少kg?请解释一下psi和LBS是指什么单位? 汉字有六书之说 指的 lb换算成牛顿还是千克阿? 一个水池的水深度为2米,池底有一个面积为10平方厘米的孔,用塞子塞住,塞子所受水的压强为多少 汉字构造有六书之说,是指哪六书? 牛顿和千克的换算关于减速机选型,一般要计算扭矩,N*m,其中的“N”指的是牛顿力,或者说是千克力吧,现在问题是,有些地方说1Kg=1N(1米力矩上1牛可以拉动1Kg物体),有些地方说1Kg=9.8牛(自由 浮力甲是一个空水池,底部的排水口已用塞子塞住,放水至虚线处甲是一个空水池,底部的排水口已用塞子塞住,放水至虚线处,(1)现将一质量为60g,体积为750ml的空心密闭瓶放入水中,试计算该瓶 根据词语的不同意思写句子尖锐 (1)物体有锋芒,容易刺破其他物体的:---------------------------------------------------------------------------------------------------(2)(言论、斗争等)激烈------------------ 急公斤与牛顿换算问题0.05--0.6KG剩以平方厘米等于多少N剩以平方米? 一个水池的深度为2米,池底有一个面积为10平方厘米的孔,用塞子塞住,塞子所受睡的压强大小为多少帕塞子所受水的压力大小为多少牛 为什么I2C总线的SCL和SDL要串接电阻呢 根据句子的意思写词语.1:觉得意外或惊喜.2:冬季最寒冷的时期.3:能适应各种环境 在任何环境中都能满足. 牛顿和重量之间是怎么换算的?1牛=?KG. i2c为何加上拉电阻? 根据词语的 不同意思写句子生气:生命力,活力: 公斤和牛顿换算关系 sda?sda?什么来的? 根据词语的意思写句子 公斤和牛顿如何换算 1+1=?sdaasdasdasdadassssssssssssssss 根据下面句子的意思写词语.1.称心如意,感到非常满意的样子.2.争的向前,生怕落后.3.形容极度惊慌,行动失常的样子. 英磅/英寸怎么转换成牛顿/MM 比方说:25.5LB/IN转化成N/MM怎么转换 根据汉字的写法,从() 看() 牧() 友()炙() 书()例如“休”,左边是“人”,右边是“木”,人走到树木旁边,表示歇息的意思.按我上面这种说法来答. 《产品质量法》和国家标准《预包装食品标签通则》(GB7718)规定的食品标签必须标注的内容是什么? 牛顿怎样转换为吨 表示“书写”意思的汉字还有什么 规定国家标准格式的国标是哪个?国标号多少封皮丢了 想自己做一个也就是说国家标准的标准是什么? 液压扭矩扳手上显示单位是压力怎么转换力矩在使用液压扭矩扳手紧M30(10.9级)螺栓时,压力表上显示到350bar,能转换到力矩吗?有多大?M30(10.9级)预紧力极限值是多少?与压力表显示数值关系吗 在括号里填写与前面汉字意思相同的字组词.怨() ()冷 包() 愧() 阻() 枯() 寻() ()啸 胡萝卜素用英语怎么说 压力值怎么换算成力矩值液压力矩扳手上面的读数 (PIS mpa) 怎么换算成力矩值(N.m) 根据汉语意思填写英语不要在晚上和朋友到处闲逛.Don`t______ ________with your friends at night. 我想请问下,GB2760-2011中,固体饮料类的食品添加剂没有β胡萝卜素,但是在其他的食品中属于食品添加剂, 力矩3530N.m 怎么转换成 液压泵的压力MPa扭紧螺栓的时候是用个液压扳手,用力矩扳手,是3530N.m 现在要换算成压力,因为我用的是液压扳手,要看压力的,怎么换算,或者缺什么条件不能换 练好汉字的书写具体有何意义? 请问GB2760?请问GB2760中的甘油和苯甲酸钠的化学名称是什么,它们的规定用量是多少,标准是什么? 1N等于多少g 英语翻译要比较舒服的翻译,什么面板a,版面a,图层a,读着很不顺 1500克等于多少两? 1N/25cm等于多少g/25mm还有,请问1N/25mm等于多少g/25mm? use bracket $1500等于多少人民币 螺栓预紧力矩为17T*M,其中的T*M如何换算成国际单位制!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn