Airbnb内部核心键值存储系统 Mussel 已完成从 v1 到 v2 的重构升级
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/
Airbnb 在其最新技术博客中披露,内部核心键值存储系统 Mussel 已完成从 v1 到 v2 的重构升级。这项重大架构调整是为应对新兴需求而进行的,包括实时欺诈检测、个性化推荐、动态定价以及处理大规模数据的能力。
此次发布由工程师 Shravan Gaonkar、Chandramouli Rangarajan 与 Yanhan Zhang 联合撰写,系统性介绍了 Mussel v2 的设计思路、架构优化、迁移过程 及关键经验。
为什么重构 Mussel
原先的 Mussel v1 虽在多年内表现稳定,但随着业务发展,系统暴露出一系列难以扩展的问题:
操作复杂性高:节点扩容和替换需手动编写多步脚本,使用 Chef 管理 EC2 实例。
容量瓶颈与热点问题:静态哈希分片导致部分节点负载不均,出现延迟高峰。
一致性不可调节:v1 的一致性模式过于固定,缺乏灵活控制能力。
资源使用不透明:用户对资源消耗与成本缺乏可视化控制。
Mussel v2 针对上述痛点,以 云原生架构、新型一致性模型与精细化资源治理 为核心,完成整体重构。
Mussel v2 的核心设计与组件
Mussel v2 融合了 NewSQL 后端与 Kubernetes 控制面,并保留对原有接口的兼容性。其关键模块包括:
Dispatcher 调度器
无状态服务,可水平扩展,部署在 Kubernetes 上。
支持 双写与影子读取,用于平滑迁移过程。
处理 API 请求的解析、节流、优先级调整,并集成 Airbnb 的服务网格用于安全与服务发现。
写入模型:Kafka 事件驱动
所有写入操作首先落地 Kafka 以确保持久性。
由 Replayer 和 Write Dispatcher 依序应用到后端数据库。
Kafka 同时作为升级、迁移及回滚的核心支撑工具。
读取优化
逻辑表支持点查、范围查询与前缀查询。
延迟控制目标为 p99 < 25ms,特别针对 100TB 级别表进行优化。
核心能力升级
大规模数据批量导入
通过 Airflow 管道调度,将离线数据转换并上传至 S3。
使用 StatefulSets 部署分布式 worker 并行导入,支持 合并(merge)或替换(replace) 模式。
提供重复数据排除、增量合并等优化机制。
数据过期控制(TTL)
新引入的拓扑感知式过期服务,支持并行扫描与删除。
针对写入频繁表采用 最大版本控制,避免读取性能下降。
相较 v1 提升透明度、效率与可扩展性。
迁移过程:蓝绿部署 + 双写架构
遇到的挑战
Mussel 涉及 Airbnb 大量在线请求,支撑数千张表,可靠性要求极高。
Mussel v1 无 CDC(变更数据捕获)或快照功能,需自研迁移方案。
迁移流程(逐表推进)
蓝区(Blue):初期所有请求仍走 v1。
影子期(Shadow):v2 开始读取和写入,但不对外响应。
反向模式(Reverse):逐步让 v2 响应请求,v1 作为备份通道。
切换(Cutover):每张表逐一从 v1 完全切换至 v2。
数据迁移流水线
抽样旧表数据,预估分布。
在 v2 创建预切分表,降低迁移过程中的热点风险。
Bootstrap 阶段使用 StatefulSets,支持检查点恢复。
校验 checksum。
应用 Kafka 中的追赶数据,保持同步。
启动双写,保持最终一致。
关键经验总结
一致性模型切换需充分准备:从最终一致性迁移到强一致性,可能引发写冲突,需借助写入去重、热点键拦截、懒写修复等机制平衡一致性与成本。
预切分至关重要:准确抽样 + 合理分片是高效导入的前提。
灵活架构设计降低风险:逐表迁移、双写架构与自动回退机制确保了“零数据丢失,零中断”。
Kafka 是稳定支撑基础设施:在 p99 延迟和消息持久化上发挥关键作用。
当前能力与未来展望
Mussel v2 能力表现:
支持每秒十万级写入
批量导入支持数十 TB 规模
保持 p99 查询延迟在 25ms 以下
提供每命名空间的陈旧读取(stale read)控制
接下来,Airbnb 将重点推进:
服务质量管理(QoS)体系,由 Dispatcher 统一编排。
批量加载优化,进一步提升数据管道性能。
提升用户体验与平台稳定性
总结
Mussel v2 的重构是 Airbnb 在数据基础设施现代化上的重要里程碑。它将对象存储的弹性、低延迟缓存的响应能力与现代服务网格的可操作性集于一体,极大地简化了产品团队构建高性能数据驱动应用的复杂性。
若对大规模分布式系统建设感兴趣,Airbnb 正在招募相关人才,共同打造下一代数据平台。