社区
教程
Wiki
注册
登录
创作新主题
社区所有版块导航
Python
python开源
Django
Python
DjangoApp
pycharm
DATA
docker
Elasticsearch
分享
问与答
闲聊
招聘
翻译
创业
分享发现
分享创造
求职
区块链
支付之战
aigc
aigc
chatgpt
WEB开发
linux
MongoDB
Redis
DATABASE
NGINX
其他Web框架
web工具
zookeeper
tornado
NoSql
Bootstrap
js
peewee
Git
bottle
IE
MQ
Jquery
机器学习
机器学习算法
Python88.com
反馈
公告
社区推广
产品
短视频
印度
印度
一周十大热门主题
ChatGPT 助力科研,使您科研创新与效率双提升!
用Python优雅地写LaTeX
ChatGPT,峰值已过?
2024 ChatGPT最新一区Top文章《ChatGPT+MATLAB 在岩土工程中的应用》快来看...
香港科技大学(广州)机器学习基础实验室招收多名2024Fall/2025Spring博士生、研究助理...
MySQL用得好好的,为啥非要转ES?
免费课程:机器学习辅助材料模拟实践
开源机器学习编译器的“理想与现实” src:网页链接 -20240423084002
GitHub工业级开源软件:CAD 的官方源代码开放!
Open WebUI 私有部署本地chatgpt应用
关注
Py学习
»
DATABASE
Facebook 分享迁移到 MySQL 8.0 的经验
OSC开源社区
• 2 年前 • 288 次点击
文 | 白开水
出品 | OSC开源社区(ID:oschina2013)
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 上所能做的事情。”
更多详情可查看官方博客:
https://engineering.fb.com/2021/07/22/data-infrastructure/mysql/
END
觉得不错,请点个
在看
呀
Python社区是高质量的Python/Django开发社区
本文地址:
http://www.python88.com/topic/117578
288 次点击
登录后回复