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

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

微软明日将启动第二轮裁员 涉及所有的事业部 IBM推出Watson Analytics 将人机对话带进企业决策 参与2014中国移动开发者大调查 MDCC门票等你拿 手游开发经验谈:付费体系决定游戏收成好与坏? 惠普推出全新ProLiant Gen9服务器 腾讯安全出杀手锏 搭建全国最大Wi-Fi开放平台帮助网友免费蹭网 云与数据安全实践尽在ISC 2014(免费门票) 开源的对决,MapR将Apache Drill引入企业应用 令程序员费解的10个语言特性 走进雅虎北京全球研发中心:五年光阴缔造雅虎全球创新引擎 超强集成游戏编辑器!开源跨平台引擎Wave 求别再侵犯儿童隐私!FTC狠罚Yelp和TinyCo 华为应用市场助力开发者 软硬结合造就强大生态系统 【CTO俱乐部看板研修班北京站现场速递】看板方法:渐进变革的过程 《近匠》不背单词,用“沉浸”征服英语学习 ETpl——强复用、灵活、高性能的JavaScript模板引擎 MDCC 2014大会日程概览发布 最新嘉宾议题揭秘 终于来了,微信企业号正式开启公测! 【问底】王帅:深入PHP内核(一)——弱类型变量原理探究 谷歌Kubernetes专访:未来BigTable开发只是课后习题 首届“最具价值CTO”评选来啦!我们在找你! 【CTO俱乐部走进顺丰总部】活动图文直播进行中 中国第一个云主机评测发布:天翼云性价比第一、青云质量第一 Ruby 2.1.3发布,降低内存消耗、修复众多Bug! OpenHW2014开源硬件总决赛鏖战西安 AMD力推异构计算 《坦克世界:闪电战》:PC转手游,不止免费! 【讲师】道里云毛文波:网络虚拟化与SDN实现Docker连通 性能测试:SequoiaDB vs. MongoDB vs. Cassandra vs. HBase 华云数据推运营型PaaS Plus平台,联合Tmax走出“去IOE”的云化之路 聚焦移动新势力 MDCC 2014免费展位团队名单公布 详解Google Authenticator工作原理 我刚刚开始学习B/S结构的程序设计,请问各位哪里可以下载到这方面的资料?顺便散分。 如何编程实现网络上的视频传输 知道一个模块的句柄侯怎样运行它? 中国为什么比韩国差这么多? 帮帮忙,我急需有关ERWIN的书籍资料,请能在哪里下载?急啊!先说声谢谢! 500分求助!!!如何打印MSCHART控件画出的折线图 请问网上有没有关于UI线程比较好的例子?如果有的话,发一个网址给我,在线等待,谢了! 一道选择题 局域网,一方可以ping通一方,怎么解决?? 装了WIN2K后,如何再装LIUNIX实现双启动? TQuery的简单用法,高分大放送! 如何将controls对话框中不用的控件去掉 请问怎么用coff2omf,把Strmiids.lib、Quartz.lib、Strmbase.lib转化成BCB可以接受的格式 JDBC for mysql 的使用 -------问题 偶有重回delphi修炼了,当年偶的师傅还在吗?老千,老鱼,chech,小新,老鬼,你们过的怎样?? 你现在正在看的这种页面如何实现? 我很喜欢delphi,但老板要我转学单片机,请兄弟们说几句,是福是祸?up、gz有分! vb的安装问题 请问如何在两个数据库之间进行联合查询? 迷 !!!!!! 天使的旁边是魔鬼 数据集排序问题 哪里有 MS viso 下载,谢! 用DATAREPORT设计报表,这个怎样设计? ASP写的计数器程序问题 天女散分:process basename 中文叫什么,进程什么名? 数据库句柄清除问题 请问我用JBuilder + weblogic61 编写的 EJB,在我拿到别的地方部署,是不是只拿 XEjb.jar和客户端 就行了? 如何让两个byte类型的变量a和b进行异或(^)操作,然后将结果存入另一个byte中? 我也来一个关于ACCESS的问题,高分请教。在线等待 CDC问题:怎样从屏幕尺寸转换到厘米呢?反之呢? VC中如何给动态产生的控件写事件方法?在线等! 》》怎么没有人解决这个问题呀,谁解决,我给分!!!!! 为什么快捷方式不能用? ★★★有没有像“delphi属性编辑框”一样的控件或是源码(100-1000分)★★★ 谁有RealPlay格式详细信息 500分求救! 请问大家那里有jrun 4下载 如何自己析构单文档模板? MASM32中标号的疑问 这个错误该如何改 关于在OUTLOOK中如何自创模板的问题? com系列丛书那里有卖 一个关于鼠标事件的简单问题 为什么我在JSP中能得到TEXT文本中的数据,却得不到在SELECT中的数据呢? 求救!为什么我的ACESS数据库文件会莫名其妙的达到25M,我还没输任何数据呢?而生成MDE后只有500K? 我要一个功能强大的弹出日历 Viva La Costa Rica! 我再也不看Chinese Team的比赛了! 如何做jar包呢?还有如何做bak呢?大家救救我吧。 《inside the c++ object model》问题 这句是什么意思??? 请问喝葡萄糖有什么作用?是提升记忆力还是补钙的? 秦朝灭亡后西汉建立前这段时间叫什么?为何字典上不记载这一时间段?当时是项羽的势力最大吗?为何他不改国号 化学问题H2S和NaOH反应生成什么?H2S和NaOH反应生成什么?几种情况都写下过量和不足H2Na只是一个还有什么情况 问一下有什么氧化还原剂 在KCl和CaCl2所组成的混合物中,KCl和CaCl2的物质的量的比为2比1,求1mol氯离子的该混合物的质量? H2S和氢氧化钠反应...为什么H2S和氢氧化钠反应生成的不是盐和水? 英语翻译 同学为证明NaOH溶液与稀盐酸发生了中和反应,从不同角度设计了如下方案,进行实验.方案一:先用PH试纸测定NaOH溶液的PH,再滴加盐酸,并不断振荡溶液,同时测定混合溶液的PH,如果(1)简述“强 周朝建立时,世界各国都处在什么阶段 西欧封建社会与同时期的中国有哪些异同 请大家来看看 这是个什么昆虫,叫什么名字,好漂亮哦 H2S + NAOH = 为了方便回答者准确理解,请您对问题标题或内容进行补充 谁懂越南语?帮我翻译一段文字.Vào lúc 8h ngày 26 tháng 9 cầu Cần Thơ đã bị sập các nhịp 13, 14, 15 , đã có ít nhất 50 người chết , 150 ngườ 韩国灭亡时间周朝啊 周朝是由谁所建立的啊? 467年西欧封建社会,当时中国的情况是什么? 周朝时候.“中国”指什么A是周天子的直辖地区 B中原地区 C华夏族的诸侯国 D首都 是谁建立的周朝 9-12世纪前后,西欧封建社会和中国封建社会的情况有什么不同? 周朝的建立时间回答 大禹是周朝的建立者吗 急寻电子干燥剂厂商? 在KCl和CaCl2所组成的某混合物中,K离子和Ca离子的物质的量之比为2:1,则该混合物中含CaCl2的质量分数为 只求最后一空,要详细的阶段过程. 向一定量的氢氧化钠溶液中加入一定量的稀盐酸后,混合液PH范围取混合溶液滴加酚酞试液,溶液无色,能否证明酸碱中恰好反应,理由 如要证明上述酸碱之间确实发生了反应,这混合溶液的PH值范 冰醋酸导电能力为0的理由 干燥剂哪儿有卖 在KCl和CaCl2的混合物中K离子和Ca离子物质的量之比2:1,则该混合物中含CaCl2的质量分数为___,含1molCl离子的该混合物的质量是__g(写出过程) 秦朝灭亡的时间是DC206还是DC207 干燥剂哪里有卖我是制冷维修工,在冲氟时想用干燥剂滤除冰箱管路空气中的水分;以防冰堵!在安徽泗县有卖的吗?知道的朋友请回我! kcl,cacl2组成的某种混合溶液中,k离子与ca离子物质的量之比2:1,求混合物中cacl2的质量分数? 秦朝的灭亡为什么秦朝灭亡 电子干燥剂 在KCl和CaCl2的混合溶液中K离子Ca离子的物质的量之比为2比1,KCl和CaCl2的物质的量之比为?质量之比为?还有一问,若要取出1mol氯离子的该混合物,应取该混合物的质量为? 请问烟台哪有卖助听器干燥剂的,就是那种潮湿后变颜色的干燥剂. 为什么溶液加水稀释,他的电离程度越大了加水稀释不是是反应物浓度减少吗,平衡就应该向左移啊,就右边的离子少了,而左边的分子多了啊,电离程度就应该减少啊 工地上使用生石灰时,为什么要进行熟化?熟化时,为什么必须进行陈伏? 一岁多宝宝误食水银有哪些症状 老师 请问溶液的导电性和什么有关 PH 导电性 电离程度有什么关系 中国历史上的盛世有多少个?到底哪个最“盛”?比如,仁宣之治,康乾盛世,贞观之治. 宝宝误食水银会怎样 弱电解质的电离度随溶液稀释而增大,故稀溶液比浓溶液的导电性强.为什么 盛世的内涵? 中国历史上有哪些盛世 小孩子吃了含汞的东西会怎样?有什么反应 [急]小孩误食水银怎么办?我家小孩不小心把水银温度计打破了,当我发现的时候他已经拿着含有水银的温度计咬在嘴里.这种问题要怎么办?小孩子才1岁.. 中国历史上的盛世之治有哪些?比如:贞观之治开元盛世等......只列举名称和朝代即可 西欧封建社会初期和同时期中国的情况有哪些异同 儿童误服水银怎么办?少量,而且没有什么特殊症状! 中国历史上有哪些盛世 请你试着比较西欧封建社会初期和中国当时的情况有什么不同? 小孩误食水银怎么办?给小儿测体温时,小儿不慎咬断温度计,将水银吞入,现已有6-7天时间了,拍片显示水银现滞留在小肠位置,孩子(3岁)没有不适症状,这种情况对孩子有没有问题,有没有办 生石灰熟化时为什么必须进行陈伏 西欧封建社会初期和当时的中国的情况有什么不同? 西欧封建社会初期和中国当时的情况有什么不同 请问中国历史上41个盛世是哪41个我想说的是 我只是初中生 目前我总结出来的有27个真心想不出来了 只是这次期末考试要写四个我在试题纸上写了27个在那边选 但我看到说有41个我很好奇剩 比较西欧封建社会初期和当时中国隋唐时期的情况有何不同? 一般的通讯干燥剂,哪有的卖? 如何将块状生石灰熟化成石灰膏? 秦朝怎么灭亡的,历史11课,按条答,每条一句话就行 从秦朝灭亡至西汉建立,其间到底发生了什么 H2S和NaOH如何反应如题
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘