摘要: 谷歌近期发表了一篇关于最新大数据系统的论文,是关于Mesa这一全球部署的数据仓库,它可以在数分钟内提取上百万行,甚至可以在一个数据中心发生故障时依然运作。
谷歌正在为其一项令人兴奋的产品揭开面纱,它可能成为数据库工程史上的又一个壮举,这就是一个名为Mesa的数据仓库系统,它可以处理几乎实时的数据,并且即使一整个数据中心不幸脱机也可以发挥它的性能。谷歌工程师们正在为下个月将在中国举行的盛大的数据库会议准备展示其关于Mesa的论文。
该篇论文的摘要非常简练的概括了Mesa建立的意义和它所具备的的能力:
“Mesa是一个高度可扩展的分析数据仓库系统,它存储着涉及谷歌网络广告业务的关键度量数据。 Mesa被设计以满足用户和系统的各种复杂有挑战性的需求,这其中包括近乎实时的数据提取和查询能力,以及满足对大规模数据和查询数量的高度可调用性、可靠性、容错性和可延展性。具体来讲,Mesa处理PB(Petabytes)级数据,每秒处理数百万行的更新,并且服务于十亿量级的查询,这些查询每天需要提取数万亿行数据。Mesa是跨多个数据中心、地缘重复的(geo-replicated)系统,并且即使在一个数据中心整体崩溃的情况下,仍可以低延迟提供一致、可重复的查询结果。”
本质上,Mesa是一个ACID兼容的数据库(换言之,如果一个人查询,他会得到正确数据),这样构造是从速度、尺度和可靠性方面进行考量的。正如上面所述,它的设计理念是用来处理关于谷歌广告业务的相关需求(服务于内部用户和面向用户的前端查询服务),但是也可以在其他场合作为通用数据仓库系统来运行。
如果你仍在质疑为什么在已经有了琳琅满目的其他数据库系统之后谷歌仍然非要建立Mesa,那么该篇论文作者的以下解释或许可以让你茅塞顿开:
BigTable无法提供Mesa的应用所需的原子性(atomicity)。Megastore, Spanner和F1(这三个都是旨在完成在线交易过程)确实可以对于地缘重复的数据提供强大的一致性,但是它们不支持Mesa客户所需要的峰值更新吞吐量。与此同时,Mesa却可以利用BigTable和Spanner下的Paxos技术对元数据(metadata)实现存储和维护。
谷歌另有一个名为Dremel的系统,它是BigQuery服务的基础,目的是为只读数据提供快速、特定的查询。该篇文章也注意到由供应商、Facebook和 Twitter搭建的多种数据库系统,但是同时指出它们是为大规模数据载入设计的,而在Mesa中载入同样数据只需要几分钟。 该论文中也提到:“Vertica是与Mesa功能接近的系统,即支持对交易数据进行动态更新、实时查询。”
“然而,”该文继续指出,“就我们所知,这些商业产品或者产品系统中没有一个是用来管理跨多个数据中心的重复数据集的。并且也尚不能断言这些系统是否真的允许云计算或者具有弹性。他们可能会有以有限能力来动态配置或者停用资源来处理载入波动。
图6: 在一个多数据中心Mesa的配置中的更新过程
该论文详述了Mesa工作的机制:即以表格形式的数据存储方式、数据查询方式和分布的架构——其中一个极为有趣的部分是关于硬件。文中提出了如下观点: Mesa的前身系统是在扩展代价昂贵的企业级硬件上运行的,而Mesa运行于谷歌的标准云设备,据推测是由谷歌自行研发并建造的。
从长远看,Mesa应该可以被证明不仅仅是另一个数据仓库系统。Hadoop社区的成员——尤其是Cloudra的Mike Olson 和Doug Cutting对此的观点是:谷歌正在探索Hadoop可能开发出的新方向,他们相信一个高质量开源版本的Mesa将会很可能受到热捧。
当然到了那个时候,就会有云计算的一席之地了。随着谷歌继续以开疆拓土的姿态面对亚马逊网络服务和微软Azure的分羹,技术将变得和低廉的价格一样举足轻重。 谷歌的声名鹊起主要归功于它的尖端分布式系统,但是它所开发的诸如Mesa这样的服务(同样的还有BigQuery和Dataflow)将会成为和云竞争者之间角力的重要砝码。
原文发布时间为:2014-09-20
本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号