NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

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

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

关注

评论

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

FastApi-06-请求体-3

Python研究所

FastApi 8月日更

一周信创舆情观察(7.26~8.1)

统小信uos

从关门“振动”说起,在这部剧本杀综艺里,爱奇艺隐藏了多少技术“小心机”

爱奇艺技术产品团队

综艺节目 互动视频技术 爱奇艺

资深大牛带你了解源码!最新Android面试题整理

欢喜学安卓

android 程序员 面试 移动开发

摘下手机赛场的夏季“金牌”,荣耀的“飞人之路”

脑极体

中台的前世今生

涛哥 数字产品和业务架构

企业架构 中台架构 中台的由来

强推!华为内部都在用的783页大数据处理系统:Hadoop源代码pdf

Java 编程 架构 面试 架构师

人在年轻的时候,最核心的能力是什么?

非著名程序员

认知提升 个人提升 提升自我 8月日更

101道经典JavaScript面试题总结(附答案,建议收藏)

前端依依

面试 大前端 JavaScrip

getInteger还是getIntValue,这是一个问题

FunTester

Java json Groovy

Github首次开放,一天遭狂转 50w 次!阿里内部不外传的 100 万字 Java 面试手册!

Java 程序员 架构 面试 计算机

趁着课余时间学点Python(五)用课余时间提升自己关于高级数据类型的知识

ベ布小禅

8月日更

使用PyTorch构建神经网络模型进行手写识别

Shirakawa

神经网络 机器学习 深度学习 PyTorch 手写识别

现有市值管理机器人|交Y机器人系统源码搭建

Geek_23f0c3

做市机器人 去中心化市值管理机器人

专访融云 CTO 任杰:构建通信云全能力

融云 RongCloud

拍乐云创始人赵加雨:沉浸式音视频加持数智化未来世界

拍乐云Pano

如何洞察出推荐的关键时刻

石云升

推荐 用户体验 体验设计 8月日更

架构实战营模块四作业

maybe

开放搜索电商行业模版驱动业务增长实践

阿里云大数据AI技术

5 分钟,快速入门 Python JWT 接口认证

星安果

Python JWT

一个算法“拿下”两个榜单!爱奇艺ICCV 2021论文提出人手三维重建新方法

爱奇艺技术产品团队

vr 论文 ICCV2021 高精度三维重建

架构实战营毕业设计

Saber

架构实战营

Java操作Office:POI之word生成

程序员架构进阶

Java Apache POI 技术应用 8月日更 代码实战

Linux内核分析学习路线总结(内核人员必看)

Linux服务器开发

操作系统 Linux内核 内核源码 内核开发 驱动开发

维护数据隐私和增强竞争优势的秘密

九河云安全

字节跳动Android面试:2021Android大厂面试知识分享

欢喜学安卓

android 程序员 面试 移动开发

贝壳找房基于StarRocks构建全新统一的极速OLAP平台实践

StarRocks

数据库 数据分析 OLAP StarRocks

阿里顶级大佬整理出十六个专题的Java面试指南,金九银十不用愁!

Java 编程 架构 面试 架构师

PostgreSQL正强势回归!

数据库 大数据 时序数据库 tsdb 数据智能

云原生时代,腾讯如何做好容器安全体系建设?

腾讯安全云鼎实验室

腾讯云 容器

Python RPC 不会?不妨看看这篇文章

星安果

Python RPC RPC架构

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