返回 登录
0

Mesa:Google最新曝光的近实时数据仓库系统

9月在杭州举行的数据库学术会议VLDB 2014上,Google的工程副总Shivakumar Venkataraman与正在Google访问的UCSB教授、IEEE与ACM Fellow Divyakant Agrawal将做主题演讲,介绍Google的实时分析数据仓库Mesa

在先期公开的论文“Mesa:Geo-Replicated, NearReal-Time, ScalableData Warehousing”免梯子版本)中这样描述Mesa的开发初衷和特点:

Mesa是一个高度可扩展的分析型数据仓库系统,用于存储Google互联网广告业务相关的关键衡量数据。Mesa的设计目的是满足一系列复杂而有挑战性的用户与系统需求,包括近实时的数据获取和查询、高可用性、可靠性、容错和(大规模数据与查询量的)可扩展性。Mesa可以应对P级数据,每秒处理数百万行更新,每天抓取数万亿行以支持数十亿查询。Mesa是跨多个数据中心异地复制的,即使整个数据中心故障,仍然能够以较低延迟返回一致和可重复的查询结果。

针对数分钟更新吞吐量、跨数据中心等等严苛需求,已有的商业数据仓库系统(处理周期往往以天和周来计算)和Google的解决方案包括BigTable、Megastore、Spanner和F1都无法满足要求。BigTable无法提供必要的原子性,Megastore、Spanner和F1无法满足峰值更新需求。此外,Google自己开发的Tenzing、Dremel,以及Twitter开发的Scribe、LinkedIn的Avatara、Facebook的Hive以及HadoopDB等Web规模数据仓库处理的都是批量负载。

论文中提到比较类似Mega的系统是Stonebreaker等开发、已被HP收购的Vertica,但缺乏跨数据中心的功能。Bill Graham在2012年Hadoop Summit的演讲中提到过,Twitter的数据分析系统在用Vertica: http://img.my.csdn.net/uploads/201408/08/1407482088_2027.png

他还比较了Vertica与Hadoop的优劣:

http://img.my.csdn.net/uploads/201408/08/1407482213_6355.png

从Vertica的用户列表来看,Zynga、Funzio、TinyCo等许多游戏公司,Etsy等互联网新贵也是Vertica用户。之前极客头条推过Facebook也在用Vertica。

其他相关工作中,Thrifty针对的数据量较小,且应用于多租户场景;Shark是内存计算;MaSM利用了闪存。

Mesa基于BigTable(元数据存储)和Colossus(数据文件),底层也用到了MapReduce(谁说Google好几年前就不用MR了?),所用的分布式同步协议基于Paxos。

controller/worker框架的架构如下: http://img.my.csdn.net/uploads/201408/08/1407467175_8653.png

查询处理框架:

http://img.my.csdn.net/uploads/201408/08/1407467239_8075.png

多数据中心的更新处理架构: http://img.my.csdn.net/uploads/201408/08/1407467274_2598.png

GigaOM的报道中提及,Hadoop社区的Doug Cutting等都在密切关注Google的新动向,Mesa如果有高质量的开源版本,也将非常受欢迎。当然,Google也很有可能像BigQuery之于Dremel、Dataflow之于MillWheel那样,在云中提供Mesa类似功能。毕竟,Mesa的论文中也强调了,虽然是为Google数百亿美元的广告业务服务的,但Mesa是一个通用数据仓库解决方案。

另外,VLDB 2014其他已接受的论文都已公开了:http://vldb.org/2014/accepted_papers.html,大家可以各取所需。

评论