论文-Mesa

最近换工作,面试时和聊天时,多次聊到OLAP及Google Mesa,正好最近有空,于是就把Mesa论文仔细读了一遍,论文地址为Mesa: Geo-Replicated, Near Real-Time, Scalable Data Warehousing

Mesa是Google在VLDB 2014(Hangzhou)发布的数据仓库解决方案,论文标题为Mesa: Geo-Replicated, Near Real-Time, Scalable Data Warehousing,从论文标题看,Mesa强调跨数据中心、准实时、伸缩性。目前,mesa应用于google的广告业务,处理P级别数据,每秒row updates达到百万两集,每天接收10亿+次检索,返回的数据行在trillion量级。

目标

跟传统的数据仓库相比,mesa有如下的设计目标

  • atomic update:即单个action导致的不同层面的数据更新局部原子性。比如一个ad click,可能影响千级别一致性视图,这个action的数据层面更新要保证原子性
  • consistency & correctnetss: 数据的一致性及正确性
  • availability: 系统是高可用的
  • near real-time update throughput: 高TPS,分钟级的跨view、dc的数据一致性
  • query performance: 高查询性能,99分位响应时间在100ms左右
  • scalability:高伸缩性
  • online data & metadata transformation: schema动态变更

用论文里的描述

Mesa is a distributed, replicated, and highly available data processing, storage, and query system for structured data.

作者解释了为何没有使用BigTable, Megastore, Spanner/F1作为其解决方法。BigTable满足row ACID,无法保证批量更新的原子性;而Megastore, Spanner/F1作为OLTP服务,虽然提供跨dc的数据强一致,但是高吞吐量的数据更新,尤其是峰值更新,支持不好。但是在metadata管理上,mesa使用了BigTable及Colossues, 而跨数据中心的数据同步,则使用了Spanner里用到的Paxos。

数据存储

TODO.