写点什么

优步完成了主要 MySQL 集群组的升级,提升了性能和安全性

作者:Matt Saunders

  • 2024-11-05
    北京
  • 本文字数:1827 字

    阅读完需:约 6 分钟

优步完成了主要MySQL集群组的升级,提升了性能和安全性

优步(Uber)对其 MySQL 数据库集群组进行了重大的改进,版本从 5.7 升级到了 8.0。该团队希望利用 MySQL 新版本性能和并发性相关的改进,因为 MySQL 5.7 在 2023 年 10 月已经过保,不再维护。这项工作耗时一年多,涉及到升级三个地区 19 个生产区域的 2100 多个集群和 16000 个节点。


在优步(Uber)的博客文章中,Siddharth Singh 等人解释说,MySQL 基础设施包含数 PB 的数据,每秒处理超过 300 万次查询。因此,在升级过程中尽量减少中断是至关重要的。为了帮助实现这一点,优步(Uber)工程团队自动化了一个系统,以引导每个集群完成多阶段的升级过程,而无需人工干预。Singh 继续解释了他们是如何选择并行升级策略而不是选择就地升级策略的。这一决定是由于他们需要尽量最小化停机时间、降低风险,并进行更好的测试。



并行升级过程涉及几个阶段。首先,优步(Uber)为集群中的每个 MySQL 5.7 节点在同一区域或地区添加了相应的 MySQL 8.0 副本节点。随后进行了为期一周的监控,以观测系统的性能并检测任何问题。当这个“渗透期”结束之后,工程师们将流量从 5.7 版本的副本节点中转移出来,并将每个集群的 MySQL 8.0 节点提升为主节点。最后,将所有的 MySQL 5.7 节点从集群中删除,完成向 8.0 版本的转型。


系统的稳定性和数据的完整性是升级期间的首要关注点。该团队的计划是,如果检测到任何服务降级,就立即回滚到 MySQL 5.7,直到他们有足够的信心将 MySQL 8.0 节点提升为主节点。之后,将不再支持回滚到 5.7 版本,因此需要避免回滚。


这次升级也面临着挑战。升级到 MySQL 8.0 后,一些集群的查询执行计划发生了变化,从而导致了延迟和资源消耗的增加。通过与数据库软件公司 Percona 的合作,优步(Uber)确定并实施了受影响集群的修复程序。其他问题还包括:


  • 一些不兼容的查询和配置

  • 默认字符集和排序规则设置的更改

  • 需要升级客户端库以兼容 MySQL 8.0。


优步(Uber)并不是唯一一家分享如何更好地大规模启动这一重大升级的公司。正如 InfoQ 今年早些时候所报道的那样,GitHub 也进行了类似的升级,也从 5.7 升级到了 8.0,并分享了一些经验教训。在升级的众多发现中,GitHub 还遇到了一些问题,例如当使用的客户端中使用了不同的框架和语言时,从 8.0 到 5.7 的反向复制会中断,从而缩短了潜在的回滚窗口。它们还会触发复制缺陷,并在运行具有较大 WHERE IN 值的查询时遇到崩溃。


Percona 的 Przemysław Malkowski 也发表一篇介绍如何避免在 MySQL 升级到 8.0 时发生故障的详细文章,该文章强调了在升级之前很难测试与写相关的工作负载,并强调了数据丢失、查询速度慢、潜在停机和客户端应用程序不兼容的可能性。Malkowski 还解释了如何在必要时进行降级。


通过升级到 MySQL 8.0,其他组织也都从中获益了。Arzooo 的 Jyoti Ranjan Parida 在一篇 Medium 文章中解释了升级的一些好处:


  • 新特性,例如窗口函数、通用表表达式和 JSON 增强等

  • 更好的性能,改进的索引和查询执行

  • 更好的密码过期策略

  • 改进的资源管理,支持更高效的查询

  • 组多源复制


Parida 还解释了升级时需要注意的一些事情,并提供了一份全面的先决条件操作清单,例如:


  • 确保数据类型和函数没有过时

  • 删除孤立的文件和无效触发器

  • 避免使用不受支持的分区表

  • 解决关键字违规问题

  • 使用新数据字典消除命名冲突

  • 更新过时的 SQL 模式

  • 检查 ENUM/SET 列的长度

  • 通过共享表空间重新定位表分区

  • 使用 ASC 或 DESC 修改旧的 GROUP BY 子句

  • 缩短较长的外键名称

  • 考虑将 utf8mb3 转换为 utf8mb4,以获得更好的 Unicode 支持


尽管遇到了一些障碍,优步(Uber)的升级还是带来了显著的性能提升。服务器端的基准测试显示,在高并发情况下,插入延迟改善了 29%,读取延迟改善了 33%,更新延迟改善了 47%。在客户端,一些查询的速度提高了 78%,整体的数据库锁定时间缩短了 94%。


通过对好处和挑战的仔细考虑,我们成功地完成了转型,降低了风险,并最大限度地减少了服务中断。

——Siddharth Singh、Sriram Rao Udupi、Raja Sriram Ganesan、Debadarsini Nayak(优步)

作者介绍


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


原文链接:

https://www.infoq.com/news/2024/10/uber-mysql-80-upgrade/

2024-11-05 08:0010611

评论 1 条评论

发布
用户头像
感谢分享
2024-11-28 16:52 · 北京
回复
没有更多了
发现更多内容

升哲科技入选《中国企业家》2022年度“新锐100”企业

SENSORO

Flink 引擎在快手的深度优化与生产实践

Apache Flink

大数据 flink 编程 流计算 实时计算

小白 0-1 学习 app 开发,从配置到 helloword

YonBuilder低代码开发平台

跨平台 安卓 低代码开发 多端开发

一体化实时HTAP数据库StoneDB,如何替换MySQL并实现近百倍分析性能的提升

StoneDB

云原生 #数据库 HTAP 大数据 开源 #开源

音视频通话前的网络及设备检测该如何操作?

ZEGO即构

音视频开发 通话检测

这么强?!Erda MySQL Migrator:持续集成的数据库版本控制

尔达Erda

数据库 程序员 开发者 云原生 MySQL 运维

观测云产品更新|新增查看器显示列多种快捷操作;新增 Pipeline 一键获取样本测试数据;新增场景自定义查看器文本分析模式等

观测云

构建工业软件开源工具链,2022 开放原子全球开源峰会开源工业软件论坛即将开幕

kk-OSC

开源 开放原子全球开源峰会 开源工业软件

走进天太|加速智能生产力落地 让机器人随处可见

科技之家

2022 开放原子全球开源峰会 OpenAnolis 分论坛携干货来袭!

kk-OSC

centos 开源 龙蜥操作系统 开放原子全球开源峰会 OpenAnolis

【LeetCode】单词替换Java题解

Albert

LeetCode 7月月更

搭建帮助中心,推动SaaS企业发展

Baklib

SaaS 客户服务 帮助中心 文档管理

ACM MM 2022 | 腾讯优图11篇论文入选,含盲超分辨率算法等研究方向

科技热闻

关于TCP与UDP你应该知道的

是乃德也是Ned

7月月更

细数下,FinClip 6月都干了啥

FinClip

云脉芯联加入龙蜥社区,共建网络“芯”生态

OpenAnolis小助手

开源 芯片 龙蜥社区 CLA 云脉芯联

一文搞懂Python上下文管理器

曲鸟

Python 7月月更 上下文管理器

【计算讲谈社】第五讲|不止能上路,更能做好服务:自动驾驶产品规模化的问题定义

大咖说

人工智能 自动驾驶 阿里云 科技

工程师世界的《原则》,Quora创始人豆瓣9.2分神作!

博文视点Broadview

中文拼写纠错:怎样改善模型对 multi-typo 的纠正效果?

澜舟孟子开源社区

人工智能 自然语言处理 nlp 文本生成 文本纠错

SpEL快速上手及实践

转转技术团队

Java spring 后端

GQM 概述:构建研发效能度量体系的根本方法

思码逸研发效能

研发效能 创新方法 效能度量

共建开源人才生态,2022 开放原子全球开源峰会聚焦 “产学研用”

kk-OSC

开源 数字化 产学研用 开放原子全球开源峰会

内部排序——交换排序

乔乔

7月月更

东方甄选品控翻车,如何通过智能协同的供应链建设建开启可持续商业模式?

数商云

数字化转型 供应链 企业数字化

工作中养成的工作习惯与给老板的汇报

松子(李博源)

大数据 个人成长 高效 高效率 工作总结

新书上市 | 20年行业实践,一线工程师的必读之作

图灵教育

软件设计

帮助文档——助客户快速了解您的产品如何使用

Baklib

【7.1-7.8】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

wallys/DR8072V01/IPQ8072A networking SBC supports dual 10GbE, WiFi 6

wallys-wifi6

公有云计费套路多?这里有一份破招详解

焱融科技

优步完成了主要MySQL集群组的升级,提升了性能和安全性_数据集成_InfoQ精选文章