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

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日之前, 最低票价!从速!

电信开放平台应用内计费SDK 助力App小额快捷支付 专心做设计!开源跨平台应用开发框架Appverse Mobile 无线盛宴尽在阿里百川开放大会 医学界的Instagram:加拿大重症监护医生开发照片分享应用 2014中国移动开发者大调查第二批获奖名单揭晓 基于OpenStack的私有云开发部署实践 亚马逊云平台的迁移过程 【干货】微信企业号开发资源集锦 CSS生日快乐:CSS之父Håkon Wium Lie访谈录 好友近2000万,绑定银行卡过千万,日会话近百万,招商服务号成功之道 一名程序员十年技术之路的思考与感悟 聚焦企业号、服务号典型案例 微信开发者大会深圳站正式开启 Objective-C之父Brad Cox访谈:我的编程之路 【先锋】完成B轮融资的TalkingData新商业模式:平台理念+跨界分析+技术开源 1/10计算资源,1/3耗时,Spark颠覆MapReduce保持的排序记录 Cookie已死,看Facebook、Google、Apple如何追踪用户 Clay.io基于AWS、Docker、HAProxy等的10X架构打造 经典服务/企业号案例来袭!2014微信开发者大会(深圳)亮点抢先看 移动应用云APICloud宣布完成A轮500万美金融资 从Apache Storm学到的经验教训 【CTO俱乐部走进天津】探讨如何成为技术团队管理者 不容错过!参加MDCC 2014移动开发者大会八个理由 你的钱被洗劫了么!APP安全问题来袭 10大最常见的数据库安全问题 南航微信服务号是如何炼成的? 超40项功能改进,虚幻引擎4.5正式发布! 【工具推荐】ER:可轻松构建一站式AJAX Web应用的开发框架 GraphLab:将大数据分析从理念运用到生产 支持Android 5.0:完全用Ruby的Ruboto框架迎1.2.0更新! 万物互联第一步:采用AllJoyn技术的智能硬件 【专访】敏捷专家何勉:让测试成为拉动组织敏捷实施的力量 How to alter DBGrid Scrollheader Color? c怎样访问数据库啊?一定给分! from里的参数传递为ENCTYPE="multipart/form-data"时的问题? 网吧问题 如何在txt文件中查找字符 请问如何实现当进入一个combox时自动下拉列表框(不用用鼠标去点) 关于volatile 修饰词 过去用Delphi开发数据库都是用Access,现在急需使用SQL Server。请问:我必须掌握SQL Server中的那些内容。 如果我想删除日志文件的所有记录该怎么办?????? 怎么样把两个ArrayList合并成一个??我在文档里找了半天也没找到!急~~!!!!!!! 请问,NT4.0下怎样配置网关和路由? 请问如何知道一个弹出菜单是否以经关闭 升级后问题,奇怪,请指教? 什么是存储过程? 大侠们帮忙看看,简单问题 急:因出差,明天(12.20,第二期)的“微软.net高级程序员培训”转让(包括资料)!今晚6:00前联系,13910321169. 请问怎样才能在Access中选取指定行数的记录如第5-10条. 关于XML命名空间的疑问?请教各位高手帮帮忙!谢谢! 请问哪里有《情深深雨蒙蒙》下载??? ******斑竹快出来啊 看看我这个贴子啊!!!!!!!!!!!!!! 如何读取寄存器中的数据? 请问在数据库中如何操作日期型字段: Help,如何把本机加入主域服务器? 急:因出差,明天(12.20,第二期)的“微软.net高级程序员培训”转让(包括资料)!今晚6:00前联系,13910321169 怎么用vbscript定义一个函数阿。我想作一个下拉框的onchange事件,请指教 如何确定adoquery的数据是否被修改了? 有关程序调试的问题 全都转行卖大白菜。 对于各个.h和.cpp文件分工如何,我的各种函数各个变量到底该放在哪个文件中的哪个class中? 如何停止asp调用的dll文件,我调用my_dll.dll文件一次之后就不能对my_dll.dll更改了,为什么?怎样解决? 急:因出差,明天(12.20,第二期)的“微软.net高级程序员培训”转让(包括资料)!今晚6:00前联系,13910321169.. 关于附件下载过程中权限控制的问题 如何编辑LILO文件? 糊涂啦。。。看看汉字库(hzk24)吧? 请问在listbox控件中如何设置特定行的颜色? 问一个关于ODBC的问题 急:因出差,明天(12.20,第二期)的“微软.net高级程序员培训”转让(包括资料)!今晚6:00前联系,13910321169.... 各位大侠,哪有设计专家系统的c语言的源代码阿(全分奉送)? 请问:如何处理MFC提供的CList类模板产生的异常问题呢? 散分!快抢! 调用对象 阿呆,只有你能救我了~~!!!!! 100大洋~~!!! Excel报表的汇总 请问VC有像Delphi或者C++Builder那样的作报表的工具吗? delphi怎么调用CHM文件啊? win98 登陆win nt Java远程调用的合法类型(legal types for Java RMI)都有哪些? 安装盘的制作问题 如何设置多个Timer? VFP的程序怎么才能运行在任何目录下?主程序应该怎么写? 这个问题很老套,但对于一个什么想成为一个优秀程序员的菜鸟来说,很重要,谢谢!进入........... 一个平行四边形,面积是九分之八平方米,高二米,这个平行四边形的底是多少米 等腰三角形面积怎么求 水平面上有一个物体受水平方向力的作用由静止开始无摩擦的运动,经过位移s1,速度达到v又经过位移s速度达到2v,则两段位移中该力所做功之比是多少? 告诉我大量关于三角形面积公式继续,不管常用不常用若有推到过程加分(除海伦公式,内切圆) 已知三角形ABC的面积是2008平方厘米,是平行四边形DEFC的四倍.求阴影部分的面积下面的图还没有收到答案 在水平面上有一个质量为M的物体,在水平力作用下由静止开始运动一段距离后,到达一斜面底端.这时撤去外力.物体冲上斜面,沿斜面上滑的最大距离和水平面上运动的距离相等,然后物体又沿斜 运送液体的车,液体最上方的中间有气泡,当车开动时,气泡向哪运动,刹车时气泡向哪运动 一个三角形和一个平行四边形的面积相等,底也相等,如果三角形的高是10米,那么平行四边形的高是()米,如果平行四边形的高是10米,那么三角形的高是()米. 在恒定力F作用下,物体由静止开始运动,经过一段位移s后,速度达到v,做功为w.在相同的恒定合力F作用下,物体的速度由0增至nv,则F做得功是原来的___倍,若要物体的速度由v增至nv,则需对它做的功 如图所示,一个装水的玻璃管中有一个气泡,当玻璃管突然向左运动时,气泡会向()运动,这是因为()具有惯性 要比例 水平地面上有一质量为10kg的物体,在50N水平力作用下由静止开始运动,6秒内位移为36m,6s末撤去这个水平力,则再经 s,前进 m距离物体停止运动.快 已知三角形三边求面积的公式是? 气泡水可以自己做么? 一个三角形有多少个角?如果在三角形中添画一条线段,会增加多少个小于180 度角?在添画一条线段呢一个三角形有多少个角?如果在三角形中添画一条线段,会增加多少个小于180度角?在添画一条 知道三角形三边怎样求面积?用什么公式? 小孩子吹的泡泡水怎样做? 一个三角形从一个角到对边引一条线分成2个三角形,问:有这个三角形共有几个角对边的那个平角算不? 一块梯形玻璃,它的面积是80平方分米,如果下底是9分米,上底是多少?2/1没学 一个平行四边形的面积是128平方分米,底是高的2倍,底是多少分米,高是多少分米? 一个三角形与一个平行四边形的面积和底都相等,平行四边形的高是4厘米,三角形的高是多少厘米? 运输液体货物的槽车,液体中有一气泡,如图所示,当车向左加速运动时,气泡相对于槽车向—运动. 写出一个一次函数的表达式,使其图像与两坐标轴围成的3角形面积等于3 泡泡枪的泡泡水怎么做?要求:做法简单,并且可以使用放心,对宝宝无害? 运输液体的槽车,液体上有气泡,当车开动时,气泡将怎么运动;刹车时,气泡将怎么运动,其原因是什么? 已知一次函数的图象经过点(2,2),它与两坐标轴所围成的三角形的面积等于1,求这个一次函数的表达式 玩具泡泡枪里的泡泡水怎么配 运送液体货物的槽车,液体上方有气泡,如图所示.当车向右开动时,气泡将向___运动答案是向右,但是我认为,气泡有惯性,运动状态瞬间保持不变,不跟着车向右移动,所以我觉得是向左.气泡也有惯 已知一次函数的图像经过(2.2),它与坐标轴的三角形面积等于1,则这个一次函数表达式是 将面积是72平方厘米的长方形框架拉成一个平行四边形后,面积减少9平方厘米.已知将一个面积是72平方厘米的长方形框架拉成一个平行四边形,面积减少了9平方厘米,已知长方形框架的长时9 运输液体货物的槽车,液体上有个气泡,当车突然开动时,气泡为什么向前运动? 一次函数Y=-2X+b的图像与两坐标轴所围成的三角形的面积等于4,求此一次函数表达式 把一个长9厘米,宽6厘米的长方形框架拉成一个平行四边形,这时面积减少了10平方厘米,求平行四边形的面积 运输液体的槽车,液体上有气泡,当车开动时,气泡向前运动,为什么? 汽车有几种刹车,我就知道气刹和油刹.还有气刹和油刹原理? 如何自做泡泡水 一块平行四边形的玻璃,底为28厘米,高是底2倍.这块玻璃面积是多少平方厘米? 汽车刹车分为机械刹车 油刹车 气刹车 电子刹车 请问现在哪些分别运用了这些系统? 自制泡泡水过程作文怎么写 有一块平行四边形的茶色玻璃,它的底长是15.6分米,高是10分米,这块玻璃的面积是多少?如果每平方米玻璃的价钱是0.50元,买这块玻璃要多少钱? 1.一个平行四边形的高为5.6平方分米,若底不变,高增加1.7平方分米,面积就增加23.8平方分米,那么原面积?A.78.4 B.33.32 C.7.225(直接说答案)2.小明计算除法,把除数54写成45,得到商10,余数36,正确商 如何自制吹泡泡水?小孩子玩的吹泡泡的玩具,用一个圆圈形的工具沾上泡泡水一吹,就能吹出好多泡泡, 一块平行四边形玻璃,面积是20平方米,底是高的5倍,这块玻璃的底对应的高是多少? 一个平行四边形面积是4点5平方分米底5分米高多少分米. 自制泡泡水怎么弄?怎么记得小时候肥皂水就可以了呢 一块平行四边形的玻璃,底长4cm,高比底短8分之1.这块玻璃的高是多少?面积是多少脑袋坏掉纯属随便乱发 一个平行四边形,若底不变,高减少3分米,面积就减少9平方分米.若高不变,底增加3分米,面积则增加15平方不能列方程 吹泡泡的水怎么自制 直角三角形的面积公式怎么计?左边的是7分米,右边有一条斜边的是9分米,底下的是4.8分米,怎么算,这个9用不用算? 下面图中的两个平行四边形的高相等,其中阴影部分的面积是4平方分米,底是2.平行四边形的高是4分米,图形的总面积是多少? 把一个长为8厘米、宽为6厘米的长方形框架拉成一个平行四边形,这时面积减少了8平方厘米.求平行四边形的边为8厘米的边上的高是多少厘米? 直角三角形计算公式已知2条边和一个直角有办法求出另一条边么 汽车盘式刹车的刹车皮材料是什么?能再细致点吗? 1.把一个长为8厘米、宽为6厘米的长方形框架拉成一个平行四边形,这时面积减少了8平方厘米.求平行四边形边求平行四边形边长为8厘米的边上的高是多少厘米? 运输液体货物的车,如果车厢中有一气泡,当车启动时,气泡为什么向前运动 汽车刹车盘和刹车皮那个贵我的车是老款九几年的现代索纳塔今天去换俩前轮刹车皮和刹车盘 修配厂出的配件价格是刹车皮原厂240元 副厂120元 刹车盘说是原厂但是没说价钱开始我要的都是 把一个长为8厘米,宽为6厘米的长方形框架拉成一个平行四边形,这时面积减少了8平方厘米.求平行四边形做边长为8厘米的边上高是多少厘米? 一张平行四边形材质的第一场八分之三米地势高的八分之五,这张平行四边形彩纸的面积是多少平方米? 等腰三角形的面积公式 只知腰长已知腰长为20厘米,求面积,求得出来吗 物体原来静止在水平地面上,在水平向东、大小不变的力作用下,物体做匀加速运动,经过一段位移到A点时速度为V.此时作用力方向不变、大小立即增大为原来的3倍,又经过同样大小的一段位移
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn