写点什么

Google 揭开 Mesa 的神秘面纱——一个具备跨地域复制和近实时特性的可伸缩数据仓库

  • 2014-08-24
  • 本文字数:2006 字

    阅读完需:约 7 分钟

Google 发表了一篇新的论文,该论文描述了他们内部所使用的一个被称为 Mesa 的新型数据仓库系统。Mesa 是一个规模横跨多个数据中心,并可以处理 PB 级数据的系统。该系统可以对查询作出亚秒级(sub-second)的响应,同时维持了 ACID 属性。

Mesa 主要是围绕 Google 的广告业务使用场景而设计的。据 Google 描述,随着他们的广告平台的不断发展,客户对各自的广告活动的可视化提出了更高的要求。对于更具体和更细粒度的信息需求,直接导致了数据规模的急速增长。Google 构建了 Mesa 从而能处理持续增长的数据量,同时它还提供了一致性和近实时查询数据的能力。我们可以从 Google 的白皮书中了解到 Mesa 的需求:

_ 原子更新。_ 某一单个的用户行为可能会引起多个关系数据级别的更新,从而影响定义在某个指标集上(例如:点击和成本)跨某个维度集(例如:广告客户和国家)的数千张一致性视图。所以系统状态不会在查询时处于一个只有部分更新生效的状态。

_ 一致性和正确性。_ 出于业务和法律的原因,该系统必须返回一致和正确的数据。即使某个查询牵涉到多个数据中心,我们仍然需要提供强一致性和可重复的查询结果。

_ 可用性。_ 系统不允许出现单点故障。不会出现由于计划中或非计划中的维护或故障所造成的停机,即使出现影响整个数据中心或地域性的断电也不能造成停机。

_ 近实时的更新吞吐率。_ 系统必须支持大约每秒几百万行规模的持续更新,包括添加新数据行和对现有数据行的增量更新。这些更新必须在几分钟内对跨不同视图和数据中心的查询可见。

_ 查询性能。_ 系统必须对那些对时间延迟敏感的用户提供支持,按照超低延迟的要求为他们提供实时的客户报表,而分批提取用户需要非常高的吞吐率。总的来说,系统必须支持将 99% 的点查询的延迟控制在数百毫秒之内,并且整体查询控制在每天获取万亿行的吞吐量。

_ 可伸缩性。_ 系统规模必须可以随着数据规模和查询总量的增长而伸展。举个例子,它必须支持万亿行规模和 PB 级的数据。但是即使上述参数再出现显著增长,更新和查询的性能必须仍然得以保持。

_ 在线的数据和元数据转换。_ 为了支持新功能的启用或对现有数据粒度的变更,客户端经常需要对数据模式进行转换或对现有数据的值进行修改。这些变更必须对正常的查询和更新操作没有干扰。

根据 Google 的描述,所有 Google 现有的大数据技术都无一能满足所有以上的需求。 BigTable 无法提供原子性和强一致性。而 Megastore Spanner F1 虽然为跨地域复制的数据提供了强一致性的访问,但是他们无法支持 Mesa 客户端所有需要的峰值更新吞吐率。

不管怎样,Mesa 在其不同的基础设施中充分利用了现有的 Google 技术组件。它使用了 BigTable 来存储所有持久化的元数据,使用了 Colossus (Google 的分布式文件系统) 来存储数据文件。此外,Mesa 还利用了 MapReduce 来处理连续的数据。

Mesa 概念上的数据模型与传统的关系型数据库极为相似。所有的数据都存储在表中。一个表同样也可以是另一个表的物化视图。每个表拥有一个指定了其结构的模式。因为“到底有多少”是广告业务中如此普遍的一个问题,所以一个例如像“SUM”这样的聚合函数可以作为表定义的一部分来指定。在模式中同样也可以指定一个或多个该表的索引。

在Mesa 中,最有意思的一个方面是处理更新的方式。Mesa 中存储的数据是多版本的,这使得当新的更新正在处理时,Mesa 可以向用户提供前置状态的一致性数据。通常,每隔几分钟,上游系统就会执行一次数据更新的批处理。独立的各个无状态的数据提交者实例,负责对跨(Mesa 运行所在的)全部数据中心的更新操作进行协调。提交者为每个更新批处理分配一个新的版本号,并基于 Paxos 一致算法向版本数据库发布全部与该更新关联的元数据。当一个更新满足提交的条件时,意味着一个给定的更新已经被全球范围内的大量 Mesa 实例进行了合并,提交者会将该次更新的版本号声明为新的提交版本号,并将该值存储在版本数据库里。查询通常都是根据提交版本号来分发的。

因为查询通常都是根据提交版本号来分发的,所以 Mesa 不需要在更新和查询之间进行任何的锁操作。更新都是由 Mesa 实例在批处理中进行异步实施的。这些属性使得 Mesa 获得了非常高的查询和更新吞吐率,同时也对数据一致性提供了保障。

Google 提供了数个关于 Mesa 的更新和查询性能的基准测试数据。一个简单的数据源,平均每秒可以读取 30 到 60MB 的压缩数据、更新 3 到 6 百万个不同的行和新增 30 万个新行。在单独的一天里,Mesa 执行了大约 5 亿次查询,返回了 1.7 到 3.2 万亿行,并且平均延迟是 10 毫秒,而且 99% 的延迟低于 100 毫秒。

据 Google 描述,Mesa 中所存储的数据总量在过去的两年内扩增到了原来的五倍。这暗示了 Mesa 在 Google 内部的生产环境中已经使用了至少两年之久。

如果你是一个技术极客,并且想对 Mesa 进行更多的了解,那么你可以参考 Google 的 Mesa 白皮书

查看英文原文: Google unveils Mesa - Geo-Replicated Near-Realtime Scalable Data Warehouse

2014-08-24 08:405378
用户头像

发布了 52 篇内容, 共 22.5 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

Delicious Retouch下载破解安装(DR5白金版 v5.0新汉化版)

iMac小白

ps插件 DR5白金版 Delicious Retouch Delicious Retouch5下载

三江学院“火焰杯”软件测试高校就业选拔赛颁奖仪式

测试人

软件测试/测试开发丨南科大计算机系本科生获“火焰杯”软件测试高校就业选拔赛一等奖

测试人

软件测试

软件研发流程、架构规范、技术标准、需求过程等全文档

金陵老街

项目经理 软件开发资料 开发模板 文档干货

Affinity Photo 2 for Mac(专业修图软件) 2.2.1中文激活版

mac

修图软件 苹果mac Windows软件 Affinity Photo

做开源九死一生!为什么还有那么多人前仆后继?

X2Rtc

开源 音视频 RTC 科技 十四五

怎么理解CST软件中的端口与参数?CST软件-CST下载

思茂信息

cst cst使用教程 cst操作 cst仿真软件

APE猿岛游戏系统开发(ApeCoin DAO)

薇電13242772558

NFT 链游

云原生数据库 GaiaDB 的核心技术演进和解析

Baidu AICLOUD

云原生数据库

Audition 2024 mac(au2024) 24.0.0.46永久激活版

mac

苹果mac 音频编辑软件 Windows软件 Audition 2024 au

从C++98到C++26,经历了什么?

树上有只程序猿

c++

风口之下的低代码革命

互联网工科生

低代码

体育赛事直播系统解决方案,将娱乐、互动和传播融合于一体

软件开发-梦幻运营部

如何使用 NFTScan 的 TON API 实现 NFT 应用开发?

NFT Research

NFT NFT\ NFTScan nft工具

接口响应慢该如何排查

互联网工科生

接口 Postman

深入探索Sharding JDBC:分库分表的利器

高端章鱼哥

数据库 分库分表 ShardingJDBC mycat

深入探讨I/O模型:Java中的阻塞和非阻塞和其他高级IO应用

程序那些事

Java io 程序那些事

Permute 3 for mac(万能音视频转换器) 中文版

iMac小白

Permute 3 for mac Permute 3 Permute下载 Permute破解版

零基础学习CAE——Hypermesh的使用技巧

智造软件

建模 建模软件 建模工具 Hypermesh

SketchUp Pro for Mac(草图大师2023)v23.1.341激活版

iMac小白

SketchUp Pro 2023下载 SketchUp Pro 2023破解

第3期 | GPTSecurity周报

云起无垠

摆脱障碍,通过技术实现企业财务数字化新高度

智达方通

数字化转型 智能化 企业财务数字化 全面预算管理解决方案

macOS 14 Sonoma(苹果最新系统)14.0正式版

iMac小白

macOS Sonoma macOS14 Sonoma系统

国外服务器对网站速度的影响:事实与误解

一只扑棱蛾子

互联网众包平台:软件开发项目的明智之选

知者如C

发现一不错的编程助手 Amazon CodeWhisperer

亚马逊云科技 (Amazon Web Services)

人工智能 CodeWhisperer 云上探索实验室

Luminar Neo for Mac破解下载 支持M1

iMac小白

Luminar Neo破解版 Luminar Neo下载 Luminar Neo mac

从入门到精通:掌握 Mock 测试的详细步骤

Liam

程序员 Vue 前端 API Mock

低代码助力软件开发

树上有只程序猿

软件开发 低代码 可视化开发

Google揭开Mesa的神秘面纱——一个具备跨地域复制和近实时特性的可伸缩数据仓库_Google_Matt Kapilevich_InfoQ精选文章