Facebook 分享迁移到 MySQL 8.0 的经验
Facebook 在一篇博客中分享了该公司在某种程度上艰难的大规模跨越式迁移到 MySQL 8.0 版本的经验。此前,其一直使用的是 MySQL 5.6 版本。
MySQL 是由 Oracle 开发的开源数据库,为 Facebook 的一些最重要的工作负载提供支持。Facebook 方面称,MySQL 的每个新主要版本都需要其花费大量时间和精力来迁移工作负载。其中挑战包括有:
- 将其自定义功能移植到新版本
- 确保复制在主要版本之间兼容
- 最小化现有应用程序查询所需的更改
- 修复阻止服务器支持其工作负载的性能回归
根据透露,Facebook 上次升级到 MySQL 5.6 花了一年多的时间;而此向 MySQL 8.0 的升级也花了好几年的时间。在 5.7 版本发布的时候,Facebook 仍在开发 5.6 版上的 LSM-Tree 存储引擎 MyRocks。鉴于在构建新存储引擎的同时升级到 5.7 会显着减缓 MyRocks 的进度,因此该团队选择继续使用 5.6 直到 MyRocks 完成。而 MySQL 8.0 则刚好是在 MyRocks 完成时发布的,所以 Facebook 选择升级以改进其存储引擎。
Facebook 指出,迁移到 8.0 明显比迁移到 5.6 要更困难。他们有 1700 个代码补丁要从其定制的 MySQL 5.6 分支迁移到 8.0。由于 Facebook 的 MySQL 新功能和不断添加到 5.6 代码库中的修复,使得这项工作变得非常复杂。
因为从 5.6 到 8.0 的升级完全跳过了 5.7,一些在 5.6 中活跃的 API 要么被弃用、要么被完全删除;这也就意味着任何使用旧 API 的应用程序都需要更新。且 Facebook 的一些功能也与 8.0 中的类似功能不向前兼容,需要弃用和向前迁移。
还有自定义代码文档参差不齐的问题。Facebook 称,它的大多数自定义代码都有良好的注释和文档。但其他的代码没有很好的文档,Facebook 需要挖掘旧的文件、帖子和代码注释来了解历史。
最终,Facebook 方面评估了 2300 多个补丁并将其中的 1500 个移植到了 MySQL 8.0。“我们已将许多 InnoDB 副本集转换为完全在 8.0 上运行。其余的大多数都处于迁移路径的不同阶段。现在我们的大部分自定义功能都已移植到 8.0,更新到 Oracle 的次要版本相对容易,我们计划跟上最新版本的步伐。”
“尽管我们在迁移的道路上遇到了种种障碍,但我们已经看到了运行8.0的好处。总的来说,新版本大大扩展了我们在 MySQL @ Facebook 上所能做的事情。”
更多详情可查看官方博客。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Google 因一个字符错误搞砸了所有 Chromebook
上周 Google 向 Chromebook 推送了 Chrome OS 91,随后有大量用户向 Google 报告他们的设备在升级到 91.0.4472.147 后发现 CPU 长期处于满负荷运载中,Google 随后不久就撤消了该更新,并将用户的系统降级至 91.0.4472.114。近日 Google 又向用户推送了一次版本更新,该版本号为 91.0.4772.165,这次系统更新引入的问题比上一次更加严重。 根据用户反馈,更新至这个新的 Chrome OS 后,系统会锁上用户的 Chromebook。即使用户输入了正确的账号密码也无法进入系统桌面,甚至部分用户的电脑会出现循坏开机的状况。出现这些情况后,用户只能通过 U 盘恢复电脑,由于这个系统问题实在是太过突然,不少用户的重要文件都出现了不同程度的丢失。 因此当你在系统托盘中看到系统更新提示后,千万不要关闭你的 Chromebook。否则,Chrome OS 会在重启后自动安装更新,这意味着你的设备会被更新至有问题的 91.0.4772.165 版本。 虽然 Google 在意识到了这个问题后,迅速将系统更新从其服务器上撤了下...
- 下一篇
开放原子读书会第 3 期:如何从 0-1 搭建开源社区
开放原子读书会将于2021年7月28日迎来第3期的聚会,想了解如何创建一个成功的开源社区,并让社区项目保持正常运转吗?7月28日20:00-21:30锁定开放原子读书会直播间,《社区运营的艺术》给你答案! “归属感使人们驻留在社区。这种归属感是社区建设的目标。强大社区的标志就是,它的成员们都拥有归属感。”适合本书读者:专业的社区经理,志愿者和社区领导人,商业组织,开源软件的开发者,市场营销人员,活动家。 本期内容简介 《社区运营的艺术(第2版)》的作者Jono Bacon用自己多年经验和教训试着给读者提供一些参考,包括如何建立战略规划、如何进行有效的沟通、如何创建简单易用的流程、如何运用社交媒体扩大社区的影响力等,同时分享了对知名社区领袖采访的经历,帮助读者窥探顶级社区成功的奥秘。 书籍作者介绍 Jono Bacon 是一位出色的社区经理、顾问,以及四本书的作者。现担任Ubuntu社区这一全球性社区的经理,他写的关于开源软件的博客始终是最受欢迎的博客之一,同时他创立了社区领导人峰会。 本期嘉宾介绍 开放原子读书会第3期,此次读书会主持人由开放原子教育教研总监郭晧担任,直播期间欢迎踊跃向...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS6,CentOS7官方镜像安装Oracle11G
- Mario游戏-低调大师作品
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7