AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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:405587
用户头像

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

关注

评论

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

Vue-命名路由

张三丰无极

6 月 优质更文活动

Vue路由使用的几个注意点

张三丰无极

6 月 优质更文活动

普通Java工程师如何成长为一名优秀的架构师?

程序员小毕

程序人生 高并发 架构师 java程序员 java面试

Vue-缓存路由组件

张三丰无极

6 月 优质更文活动

如何在VMware Workstation虚拟机上快速部署AntDB社区版

亚信AntDB数据库

数据库 AntDB数据库 企业号 6 月 PK 榜

MobPush 消息重弹

MobTech袤博科技

5分钟了解Kubernetes Ingress和Gateway API

俞凡

架构 云原生 网络

洋洋洒洒2000字带你了解微服务高并发知识:Sentinel的特性

互联网架构师小马

Java 微服务 sentinel

FinClip | 来看看5月的成绩单吧

FinClip

提示工程七巧板:让ChatGPT发挥出最佳性能

博文视点Broadview

Vue-路由的props配置

张三丰无极

6 月 优质更文活动

MIAOYUN“一云多芯”解决方案获评2023西部信创优秀解决方案

MIAOYUN

解决方案 信创 信创生态 MIAOYUN 一云多芯

分布式数据库 Join 查询设计与实现浅析 | 京东云技术团队

京东科技开发者

MySQL 数据库 elasticsearch join 企业号 6 月 PK 榜

RALB负载均衡算法的应用 | 京东云技术团队

京东科技开发者

负载均衡 算法 cpu 限流 搜索推荐

见“芯”知著,浅析北斗芯片关键技术

江湖老铁

终极指南:Scrum中如何设置需求优先级

敏捷开发

项目管理 Scrum 敏捷开发 优先级

微服务高并发概念与核心类:了解Sentinel的一些概念

互联网架构师小马

Java 微服务 sentinel

Vue-路由的params参数

张三丰无极

6 月 优质更文活动

Vue-路由传递query参数两种方式

张三丰无极

6 月 优质更文活动

从开源到云原生,时序数据库 TDengine 六年回顾精彩纷呈

爱倒腾的程序员

涛思数据 时序数据库 ​TDengine

微服务高并发基础知识:Sentinel性能压测

互联网架构师小马

Java 微服务 sentinel

v7.1.0 Resource Control 功能测试

TiDB 社区干货传送门

新版本/特性解读 7.x 实践

Testng和Junit5多线程并发测试对比

javalover123

Java 单元测试 JUnit testNG junit5

微服务架构中的数据一致性:解决方案与实践| 得物技术

得物技术

微服务 数据一致性

Vue-嵌套(多级)路由

张三丰无极

6 月 优质更文活动

微服务高并发概念与核心类:资源指标数据统计相关类

互联网架构师小马

Java 微服务 sentinel

2023年甘肃省等级保护测评机构新鲜出炉!

行云管家

等保 等级保护 甘肃

北京云管平台采购选哪家?为什么?多少钱?

行云管家

云计算 多云管理 云管平台 云管平台厂商

Vue-<router-link>的replace属性

张三丰无极

6 月 优质更文活动

专访泛境科技:如何借助3DCAT实时云渲染打造元宇宙解决方案

3DCAT实时渲染

元宇宙 元宇宙解决方案 元宇宙实时云渲染

微服务高并发流量服务降级、限流、熔断、流量效果控制

互联网架构师小马

Java 微服务

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