Uber 完成 MySQL 8.0 系统升级,涉及升级超过2100个集群和16000个节点

6亿投资锤子

Uber最近成功地将其数据库系统从MySQL 5.7升级到MySQL 8.0,以应对MySQL 5.7在2023年10月结束生命周期的问题,并充分利用新版本在性能和并发处理上的提升。这次升级历时一年多,涵盖了19个生产区域中的超过2100个集群和16000个节点,分布在3个不同的地区。

升级背景

在Uber的博客文章中,Siddharth Singh等人解释说,MySQL基础设施包含多个PB的数据,并处理超过300万次每秒的查询。因此,在升级过程中最小化中断至关重要。为此,Uber的工程团队自动化了一个系统,引导每个集群通过多阶段的升级过程,无需手动干预。

升级策略

Singh继续解释他们为何选择并排升级策略而不是就地升级。这一决定是出于他们需要最小化停机时间、降低风险并允许更好的测试。

并排升级过程

并排升级过程涉及几个阶段:

挑战与解决方案

升级带来了挑战。升级到MySQL 8.0后,一些集群的查询执行计划发生了变化,导致延迟和资源消耗增加。与数据库软件公司Percona合作,Uber的团队识别并实施了受影响集群的修复。

其他问题包括:乐pad k1

行业案例与建议

Uber并不是唯一分享如何在大规模上最好地进行这一重大升级的故事的公司。正如GitHub也从5.7升级到了8.0,其中一些经验也被分享。

Percona的Przemyslaw Malkowski也在一篇详细的文章中讨论了如何避免MySQL升级到8.0时的灾难,强调在升级前测试写入相关工作负载的难度,并强调了数据丢失、慢查询、潜在的停机时间和客户端应用程序不兼容的可能性。Malkowski 还解释了如何在必要时降级。

其他组织已从升级到 MySQL 8.0 中受益。来自 Arzooo 的 Jyoti Ranjan Parida 在 Medium 文章中解释了升级的一些好处:

Parida 还解释了升级时需要注意的一些事项,并列出了完整的先决条件操作,例如:

性能提升

尽管他们遇到了障碍,但Uber的升级带来了显著的性能提升。服务器端基准测试显示,在高并发水平下,插入的延迟提高了29%,读取提高了33%,更新提高了47%。在客户端,一些查询速度提高了78%,整体数据库锁定时间减少了94%。

“通过仔细考虑利弊和挑战,我们成功地导航了过渡,减轻了风险,并将对我们的服务的干扰降到最低。”

——Siddharth Singh, Sriram Rao Udupi, Raja Sriram Ganesan, Debadarsini Nayak(Uber)

原文作者:Matt Saunders

2024年10月14日e人e本t12m怎么涨价了

未经允许不得转载:科技让生活更美好 » Uber 完成 MySQL 8.0 系统升级,涉及升级超过2100个集群和16000个节点