写点什么

Airbnb 的 Mussel V2:下一代的键值存储,以统一流和批处理

作者:Leela Kumili

  • 2025-10-29
    北京
  • 本文字数:1154 字

    阅读完需:约 4 分钟

大小:592.15K时长:03:22
Airbnb的Mussel V2:下一代的键值存储,以统一流和批处理

Airbnb 的工程团队推出了Mussel v2,这是对其内部键值引擎的一次彻底重构,旨在统一流式处理和批量摄取,同时简化运维并扩展到更大的工作负载。据报道,新系统能够维持每秒超过 100,000 次流式写入,支持超过 100TB 的表,p99 读取延迟在 25 毫秒以下,并且能够批量摄取数十 TB 的数据,使调用团队能够专注于产品创新而不是管理数据管道。

 

早期版本的Mussel v1为 Airbnb 的内部数据服务提供了动力,但随着数据量和产品集成的增加,其局限性日益显现。它的静态哈希分区设计运行在Amazon EC2上,并通过Chef脚本进行管理。独立的批处理和流式路径增加了运维开销,并使得确保一致性变得很困难。



Mussel V1 架构(图片来源:Airbnb工程博客

 

Mussel v2 通过将 NewSQL 后端与Kubernetes原生控制平面结合,解决了这些限制,提供了对象存储的弹性、低延迟缓存的响应性以及现代服务网格的可操作性,所有这些都集成在一个单一平台上。系统使用 Kubernetes 清单和自动部署,动态范围分片与预分割以缓解热点问题,以及命名空间级别的配额和仪表板以提高成本透明度。调度器(Dispatcher)层是无状态的,并且可以水平扩展,能够路由客户端 API 调用,处理重试,并支持双重写入和影子读取模式以促进迁移。

 

写入首先会被持久化到Kafka中以确保持久性,下游的重放器(Replayer)和写入调度器(Write Dispatcher)组件按顺序将它们应用到后端数据库。批量加载会继续通过 Airbnb 的数据仓库来使用Airflow作业和 S3 暂存,保留了合并或替换的语义。工程团队还引入了一个拓扑感知的过期服务,将数据命名空间分片成基于范围的子任务,由多个工作者并发处理。过期记录会基于调度进行并行删除,以限制对实时查询的影响,而写入密集型表使用最大版本限制和有针对性的删除。根据团队的说法,这些增强功能在保持 v1 保留功能的同时,提高了效率、透明度和可扩展性。



Mussel V2 架构(图片来源:Airbnb工程博客

 

根据 Airbnb 的工程团队的说法,从 v1 迁移到 v2 带来了重大挑战。团队使用了具有表级别粒度的蓝绿方法、持续验证和回退机制。由于 v1 缺乏原生变更数据捕获或表快照,表通过备份和抽样数据引导到 v2 以计划预分割。在引导摄取和验证校验和之后,再应用滞后的 Kafka 事件,并启用双重写入。在切换过程中,读取逐渐转移到 v2,而影子流量监控一致性,如果错误率激增则回退到 v1。Kafka 在整个迁移过程中充当公共日志。



从 Mussel V1 到 V2 的数据迁移管道(图片来源:Airbnb工程博客

 

Airbnb 的工程师报告说,从最终一致性后端迁移到强一致性后端涉及到运维的复杂性,包括写入去重和控制重试。他们对查询执行和工作负载分配进行了调整,而 Kafka 充当持久化日志。每个表的暂存、自动回退和监控使得在没有停机的情况下迁移了超过 1PB 的数据。

 

查看英文原文:Airbnb’s Mussel V2: Next-Gen Key Value Storage to Unify Streaming and Bulk Ingestion

2025-10-29 10:361

评论

发布
暂无评论

Java 面试必考的 6 个技能,都在这了

架构大数据双料架构师

到底什么是HashMap?

小闫

Java spring 后端 JVM hashmap

架构师训练营第四周感悟

张锐

极客大学

慧点OA转战政企市场,钉钉们羡慕么?

人称T客

架构师0期04周总结

我在终点等你

Week4总结

王志祥

极客大学架构师训练营

Linux 性能优化实战 笔记-IO篇

程序员老王

系统架构:学习小结

梅子黄时雨

极客大学架构师训练营

从 0 到 1 搭建技术中台之推送平台实践:高吞吐、低延迟、多业务隔离的设计与实现

伴鱼技术团队

kafka 缓存 分布式架构 消息推送 push

从0-1学习项目方案设计

赵孔磊

ARTS 第 4 周

乌拉里

聊一聊 HashMap

江城子

Java hashmap

极客大学架构师训练营 系统架构 第8课 听课总结

John(易筋)

极客时间 系统架构 极客大学 极客大学架构师训练营 系统架构演化

使用 Flutter 快速实现请假与写周报应用

LeanCloud

flutter 后端 数据 教程

【思考】-产品等级与市场定位匹配

superman

定位 产品定位

分布式系统架构学习总结(第四周)

~就这样~

如何构建你自己的 JVM (2) HelloWorld

孤星可

Java JVM 深入理解JVM

计算机操作系统基础(九)---存储管理之段页式存储管理

书旅

php laravel 线程 操作系统 进程

攻克SpringBoot底层源码后,才发现开发原来这么香

无予且行

Java spring 面试 Spring Boot 开发

环信荣登36氪WISE2020企服金榜-智能客服榜首

DT极客

week 04 作业

Safufu

week 04 总结

Safufu

年薪百万架构师推荐的888页Java王者级核心宝典,offer直接来

无予且行

系统结构:作业

梅子黄时雨

极客大学架构师训练营

谈一谈年终奖中的那些坑

张小方

程序员 面试 offer 薪资 年终奖

原创 | TDD工具集:JUnit、AssertJ和Mockito (二十四)编写测试-内建扩展

编程道与术

Java 编程 TDD 单元测试 JUnit

架构师0期04周命题作业

我在终点等你

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。

~就这样~

这20道微服务面试题要是不会,offer就与你无缘

犬来八荒

Java 架构 面试 微服务

让你秒懂Spring中Mybatis的花样配置

小谈

Java spring 面试 Spring Cloud mybatis

javascript 部分数据类型的用法

Isuodut

Airbnb的Mussel V2:下一代的键值存储,以统一流和批处理_后端_InfoQ精选文章