写点什么

优步借助 MyRocks 差异备份显著节省了存储成本

作者:Matt Saunders

  • 2024-12-05
    北京
  • 本文字数:1529 字

    阅读完需:约 5 分钟

优步借助 MyRocks 差异备份显著节省了存储成本

据其博客的文章介绍,优步(Uber)已经成功地为其分布式数据库实施了一个新的差异备份(Differential Backup)系统,该系统使存储成本降低了 70%。


优步(Uber)工程师开发这一解决方案,是为了应对优步(Uber)将其 Schemaless 和 Docstore 服务的存储迁移到基于 RocksDB 的 MySQL 存储引擎 MyRocks 后出现了存储成本上升和备份完成时间过长的问题。


在优步(Uber),Schemaless 和 Docstore 分布式数据库处理数十 PB 的运营数据,每秒处理数千万个请求。这些数据库对优步(Uber)的全球运营至关重要,用以支持各种业务功能并确保业务的连续性。


当优步(Uber)团队将存储平台迁移到 MyRocks 时出现了问题,尽管 MyRocks 针对写入操作和存储效率进行了优化,但缺乏对增量备份(Incremental Backup)的支持。这种限制意味着每个数据库分区每次都需要进行完全备份(Full Backup),这导致了大量的重复数据存储并增加了 blob 存储成本。


新的差异备份(Differential Backup)系统利用了 MyRocks SSTable 文件的不可变特性,这些文件在连续备份之间通常保持不变。系统不会在每次备份期间复制所有文件,而是维护一个共享的 SSTable 文件池,并且只将新创建的文件添加到该共享池中。清单文件通过记录包含的文件列表来定义每个备份,因此可以在需要时进行高效地恢复。


Adithya Reddy 在一篇 技术博客 中详细介绍了该解决方案,该系统的工作原理是首先执行初始的完全备份,将所有元数据和 SSTable 文件存储在 blob 存储区内的共享池中。后续差异备份仅将新的 SSTable 文件添加到共享池中,同时重用之前备份中的现有文件。



备份清单文件以 JSON 文档的形式实现的,用以跟踪基本信息,包括备份类型、成功状态、计时详细信息和文件校验和。该清单用作备份的索引,并为恢复过程提供必要的信息。


新系统由一个称为 Backup Scheduler 的无状态服务管理。Backup Scheduler 根据分区备份状态确定备份的时间和频率。实际的备份过程由临时备份容器处理,当需要使用 Percona XtraBackup 工具执行备份时,这些容器就会被激活。


虽然系统主要执行差异备份,但在某些情况下仍需要完全备份,例如:


  • 当备份在生产环境中首次运行时

  • 当上一个分区节点变得不适合使用时

  • 在 MyRocks 版本升级之前

  • 当现有备份池达到差异备份上限时


备份系统继续使用已建立的 Percona XtraBackup 工具进行备份和恢复过程,在添加新的差异备份功能的同时保持与现有系统的兼容性。这种方法使优步(Uber)能够在不需要对其更广泛的数据库基础设施进行大量更改的情况下实施改进。


尽管存在这些限制,但改进仍然很显著。优步(Uber)报告称,大多数实例的数据存储平均减少了 45%,一些较大的实例的每次差异备份的存储成本减少了 70% 或更多。备份过程的速度也得到了显著的提高,完全备份的完成速度比以前快两倍,差异备份的完成时间缩短了五倍。


MyRocks 最初是由 Facebook(现在的 Meta)开发的,目的是为 RocksDB 添加复制和 SQL 层。2016 年,Facebook 将其用户数据库迁移至 MyRocks。RocksDB——MyRocks 背后的底层存储引擎——也被其他组织采用,一些用户声称性能提高了三倍,Percona 发布的基准测试也显示,它的性能与 InnoDB 相比有了显著的改进。然而,对于某些用例,有报道称 RocksDB 在检索方面的表现不如 InnoDB。

作者介绍


Matt Saunders 是 Adaptavist 的首席技术官 DevOps 主管。他帮助团队使用 DevOps、平台工程和云原生工具和技术,快速高效地交付质量可靠的软件,同时将压力降到最低。他曾与复杂的企业、小型初创企业、中小企业以及介于两者之间的所有企业合作过。还联合组织了伦敦 DevOps 聚会小组,该小组拥有 10000 多名成员,每月举办一次非常受欢迎的行业活动。


查看原文链接:

https://www.infoq.com/news/2024/11/uber-myrocks-backups/

2024-12-05 08:038977

评论

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

什么是统一语言?

escray

学习 极客时间 6月日更 7月日更 如何落地业务建模

这份面试笔记到底有什么魔力?可以使我斩获了8家大厂offer(Java岗)

Java架构师迁哥

从0到1:用脚做一个路由器漏洞实例

网络安全学海

运维 网络安全 信息安全 渗透测试· SQL注入

柯桥淘宝拼多多电商培训到兴德教育!

Geek_196d9f

为什么要学习网络协议?

学无止境的阿奔

c++ Linux TCP/IP 网络通信协议 网络协议栈

欧洲杯上链,区块链语境下的数字化有什么不一样?

CECBC

初探 Redis 客户端 Lettuce:真香

白亦杨

Java redis

Ansible Role

耳东@Erdong

ansible 7月日更 ansible role

云具匠心在宜宾 浪潮云亮相第二届中国国际智能终端产业发展大会

Redisson 分布式锁源码 09:RedLock 红锁的故事

程序员小航

Java 源码 分布式锁 redisson 红锁

想学好编程,别背代码!

程序员鱼皮

Java Python 学习 大前端 计算机基础

filecoin靠谱吗?filecoin合不合法?

Filecoin ipfs挖矿 fil挖矿

推荐系统的人工调控策略(三十五)

Databri_AI

人工智能 商业价值 推荐系统

让AI抛弃“小作坊”,拥抱“工业化”:盘古大模型究竟是什么?

脑极体

自建开发工具系列-Webkit内存动量监控UI(四)

Tim

UI JSX

软件开发的22条黄金法则

Zhendong

程序员 开发

免费分享Spring Boot开发的优秀图书

Java入门到架构

Java springboot

百分点大数据技术团队:ClickHouse国家级项目性能优化实践

百分点大数据团队

观天安门升旗纪要

穿过生命散发芬芳

摄影 游记 升旗

5分钟速读之Rust权威指南(四十)高级trait

wzx

rust

SPAC:海外造壳上市

石云升

上市 7月日更

网络攻防学习笔记 Day72

穿过生命散发芬芳

网络攻防 7月日更

有人说SQL注入已经落后了,请问可以捶他吗???

网络安全学海

运维 网络安全 信息安全 渗透测试 SQL注入

5G+工业互联网 智造驱动新发展

唯一网络

给AI时代装配“新大脑”:数据密集型超算带来了哪些变革?

脑极体

区块链与AI、大数据等技术融合,将带来哪些产业变革?

CECBC

在数字经济领域实现更充分更高质量就业的思考

CECBC

linux服务器开发人员必须要彻底理解的关于【Linux】IO的线程模型

Linux服务器开发

reactor 网络编程 epoll Linux服务器开发 IO模型

柯桥PS培训到兴德教育!零基础开始辅导!

Geek_196d9f

Hologres揭秘:高性能原生加速MaxCompute核心原理

阿里云大数据AI技术

如何加速应用网格化部署?看这款社交产品怎么做

阿里巴巴中间件

优步借助 MyRocks 差异备份显著节省了存储成本_数据库_InfoQ精选文章