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

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

推荐2013年最佳PHP开发框架 Patrick Wyatt:代码没问题 程序却有bug? NoSQL的可靠性及扩展操作 最新Skype加密技术:“无声”通话能躲过FBI监听 谷歌锁死SDK,能阻止Android碎片化吗? KitCam团队专访:为应用做加法也能雄踞榜首 谷歌哭了:Replicant 4.0 SDK发布搅乱大局 忍者神龟与禅宗启示:如何突破移动广告困境 Linux会是更好的游戏平台?暴雪是这么认为的! 新型恶意软件瞄准Java服务器 AWS被纳为“战略物资”市值或可达到300亿美元? 十张图带你入门Map/Reduce 低端Android野心,Intel发布Atom Z2420处理器 淘宝网的技术发展史(一)——个人网站时代 看Pinterest如何通过架构变化将EC2成本降低了62% 内容vs渠道:法国电信商Free叫板Google 让网站成为应用:Firefox OS掀起革命风潮 屌丝伞兵的逆袭:4人+盛大+远程+最佳手游 新年头彩:Chartboost喜获1900万美元融资 高富帅跻身移动领域 福特开放车载声控API 传低端iPhone最低只要99美元 你怎么看? 辉煌不再 Encanto超级计算机可能被拆分“出售” 知己知彼 企业应用移足云端必须清楚的10大方面 NVIDIA推Android掌机:七年孕育可否成就野心? 人民日报:2013关于新媒体的8个猜想 互联网大时代成就创新小企业 移动互联网创新论坛报道 Mobile Detect:判断移动设备类型的开源PHP类 我是如何Hack Facebook Employees Secure Files Transfer服务的 投资可再生能源:Google 2亿美元投资风力农场 构筑商业生态系统 阿里巴巴集团全面变革组织架构和管理体系 美国众多银行网站遭DDoS攻击 疑似伊朗所为 help,date类型的问题 personal oracle8i的问题--TNS:没有监听器 我的WIN2000总是提示内存不能为读,而且C:空间总是提示不足,该怎么办? 一个小问题——这句话是什么意思? 在ASP中如何执行ORACLE对象表中的函数??? 我配置的apache+mysql+php怎么不能,显示网站入口flash??? 我如何使用一个全局struct,我用的是extern,但每个extern时都要把结构写全,有没有简单的方法? 请问全国计算机等级考试广州在哪报考? 请问哪里可以找到<Delphi 6 Developer's Guide>这本书? 万网又4机32小时了,累计4机300小时。 我要送分,要分的快来抢.....晚了就没有。分明天会兑现。我说的一定算数。 研究一下ado与Oracle数据库连接的实现 各位高手看过来》》》》 怎么做一个弹出菜单? 请问VC++的编译器开关是怎么回事? 为什么我把IIS配置好后,当我在一台客户机上游览的时候所有链接都不能用呢?请教如何解决? 在DOS下会死机吗? 何为A片?(搞笑 ) vc中执行 select count(*) from table 如何得到返回的数值? 非绑定的,能编辑的网格控件,是什么? SQL 2000 Text数据类型的问题 北京又起沙尘暴了。 我的RED HAT LINUX 的文件系统出了错误,怎样解结?谢谢! 100分请教ActivX控件的注册问题? 如何获得按钮的位置(x y) 请问“GetVolumeInformation( )”函数所获取的“序列号”,在用FORMAT格式化后是否会发生变化? 怎么建立XML树状目录? 救命啊 我也很着急,拜托~~~~~~~~~(关于发布和订阅的简单问题) 在pb中如何自激动窗口,急! 遍了一个简单的servlet,编译时提示:package javax.servlet does not exist! 怎样统计新闻发布系统的新闻点击数 小弟是新手,用GCC编译了一个源文件,生成一个叫a.out的文件,好像是可执行文件,但不知怎样执行,请告知!!! 请问怎样才能用MainFrame类中的函数来控制同一项目中的视(View类)的操作??? 搞个调查:在杭州的程序员年薪有多少K? 请问大虾,Active Dictroy有什么作用,另外到什么地方可以下载? 请问各位仁兄,珠海的2002年程序员考试在哪里报名?谢谢! 如何绕过禁止IP?请指点? 小和尚想开网吧!请问各位高手!网吧应该用什么样的的配置比较好!扩朴方式那总比较好! Question:有没有_获取“视频采集卡”的AV信号 的控件? win98下能安装oracle8i吗? 如何在ASP页面中对XML文档进行询?(问题较多) Insert into TableName values(?,?,?,?,?) 为何写入中文时数据库会是乱码??? 有几个技术问题求助!!!! 有人要去参加Visual studio.net发布会吗 失落中 如何打开被屏蔽的“运行”窗口、注册表编辑器?? 小和尚想开网吧!请问各位高手!网吧应该用什么样的的配置比较好!扩朴方式那总比较好! 哪位能给个简单的dll例子吗?我不知怎样写。 简单问题:谁知道改变屏幕的一块区域的颜色的函数是什末? 有关数字视频监控系统的问题!!! 库仑定律中的k库仑定律中的比例系数k为什么可以写成k=1/(4πε0)的形式?(ε0是真空介电常数,π为圆周率)是不是与球坐标有关?请说明比例系数k为什么可以写成k=1/(4πε0)的形式? 验电器与静电计的工作原理是什么 硬质合金刀与白钢刀哪个更硬 库仑定律中的k值是多少9次幂是正还是负 55cr/9crv的材料用什么样的合金刀头好? 硬质合金刀和白钢刀的区别 一均匀带电半圆环,半径为R,电量为Q,求环心处的电势. .一个正八面体两个相对的顶点分别为A和B,一个点从A出发,沿八面体的棱移动到B位置,其中任何顶点最多到达1次,且全程必须走过所有8个面的至少1条边,问有多少种不同的走法?( )A.8 B 加工中心铣削不锈钢碳钢件时选用什么材质的铣刀啊?白钢刀?合金刀?或是什么样的立铣刀啊 初二科学浮力题小东将一个重5.88N、边长为10cm的正方体木块放入水槽中.快啊,小东将一个重5.88N、边长为10cm的正方体木块放入水槽中,然后加入5cm的水,结果发现木块仍然沉在水底,没有浮起来. 这个正八面体,有几个顶点 求详细解释公式C=εS/4πkdS,k,ε都是啥啊- - 一个边长为10cm的木块完全浸没在水中,木块的上表面距水面的高度为5cm,木块受到的浮力大小是多 误差的平方差和立方差咋算?例,有一个立方体,测得它每个边的长度是20.05cm.如果它的边长的真实值是20.00cm,测得的变长的误差是( ),每个面的面积误差是( ),体积误差是( ).请写出方法. 计算.1)7的2立方 2)(-6)的3立方 3)(-3分之2)的3立方 4)-3的2立方 5)-5分之2的3立方计算.1)7的2立方 2)(-6)的3立方 3)(-3分之2)的3立方 4)-3的2立方 5)-5分之2的3立方 6)-(-4分之3)的3立方 圆台形物体上底面积是下底面积的2/5,对桌面压强400帕,翻过来对桌面压强是多少? 正方形木快G=6N ,边长a=10cm ,求1用手压入水中,木块此时的浮力,人手压力 2松 算个圆柱立方圆柱周长0.6米高5米 一个圆台形物体的上底面积是下底面积的四分之一,对桌面的压强是p,翻过来放,对桌面的压强是多少? 边长10cm的木块,漂浮在水面,下底面距离水面6cm,受到的浮力为6N,求(1)木块重力 (2)木块密度 有立方的!请高手算出结果给我!说明!图片要查看大图,然后下载到电脑就可以看得清楚了! 容量单位KB、MB、M、GB、G到怎么念,它们之间是怎么换算的?怎么念啊,听别人好像都是读“兆” 匀强电场的场强为什么各处相等?怎样分析它的电场分布?为什么场强相同 正方形的立方面积怎算? 英文说'吻你十八遍`怎么说? 一半径为R的半圆细环上均匀地分布电荷Q,求环心处的电场强度为什么是E=Q/(2∏^2*ε*R^2) 硬质合金刀片 yc35与YS25有什么区别 哪个适合加工不锈钢材料加工不锈钢301 的铣削厚度3毫米左右的 用什么刀片好 文件大小中的KB,GB.MB怎么区分 一个半径为R的半圆细环上均匀的分布电荷Q,求环心处的电场强度 武士刀铜装铁装合金装什么意思 145的英文 G MB KB 怎么换算? 请问:“已知一个凸八面体共有8个面,且有6个顶点,它有多少条棱? 同性电磁力排斥公式(F=KQ1Q2/R2)那么异性呢?一般题目中,异性多为-Q1,Q2,该怎么求? 依旧去掉负号,套公式么? GB与MB、B、G、KB、K的换算进率 怎样区分黄金与铜或铜的合金 求R2 用的什么公式?哥 不是游戏 结冰时节,江河里的水生动物仍然能够生长,没冻死,为什么? 正8面体有几个面,几条棱?几个顶点? 设i是虚数单位,计算2i*(1+i)^2 为什么结冰时代,江河里的水生动物仍然能够生长?根据水的性质解释 [化学有机]关于甲烷密度计算隔绝空气强热甲烷,可分解成C2H2和H2.若1mol甲烷有80%按上述形式分解,所得混合气体的密度比相同条件下氦气密度的倍数是?A.2 B.2.22 C.3.46 D.4.44 请问该如何思考此题? 静电计工作原理中的感应电荷是怎么产生?对于静电计中,金属球和平行电路板的一端连接,而金属外壳和另一端连接.这时里面的感应电荷怎么产生的啊?假设金属球连正级,那么我金属箔不是已 “无线电近炸引信”是什么东西?它是怎样工作的? 2.64亿用英语怎样表示 静电感应原因 请问我国高射炮大多是近炸引信还是压力引信? 64%怎么用英文表示 库仑定律F= ,k= 鸦片战争中的那种圆圆的炮弹为什么在击中目标后可以爆炸,是用什么原理?难道里面装有引信? 北京哪里可以铝合金加工制作?要能做阳极氧化的、我给出个塑料模型、仿照做就可以、 谁能帮我详细解决一下静电感应的基本原理,为什么?希望讲的通俗点,我只是初学者,注:请不要复制百度词条的内容!用自己的话回答,感激不尽! 鸦片战争中的那种圆圆的炮弹为什么在击中目标后可以爆炸,是用什么原理?难道那时候就有引信了?1856年?是因为炸弹当遇到强烈的碰撞后引起的爆炸,就像过年时候的摔炮一个原理 难道炮弹发 5052 铝合金加工我有一块2毫米厚,直径60公分的圆形铝合金板材(5052),想加工成圆弧形锅盖的形状,请问应该怎么加工? 现在我对物理学的库仑定律是模糊概念,请解释和举例说明和应用公式. 匀强电场方向水平向右,场强大小为匀强电场方向水平向右,场强大小为E=300N/C. 一个m=0.1g的带电小球用长度为L=0.4的丝线系住.丝线的另一端固定于电场中的O点,带电小球静止时,悬线于竖直方向 关于英语练习1-26请写出判断依据 电容器的工作原理不是静电感应吗?那为什么接正极的那一极板是带正电的?如果是静电感应的话,那接近正极的那一极板应该是带负电的呀 【关于静电计的原理】如图,我想问一下,接地后,平行板电容器的负极板上还有负电荷吗?如果没了,那平行板间的的电势差有没有变化?如果还有,那接地的作用是不是就是为了将负极板的电势看 白钢刀和不锈钢哪个做刀材料好?想自己用油石打磨一个短刀玩,哪个材料好?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘