Facebook将花费几年时间将数据库迁移到MySQL 8.0


MySQL是一种由 Oracle 开发的开源数据库,为 Facebook 的一些最重要的工作负载提供支持。
MySQL 的每个新主要版本都需要花费大量时间和精力来迁移我们的工作负载。挑战包括:

  • 将我们的自定义功能移植到新版本
  • 确保复制在主要版本之间兼容
  • 最小化现有应用程序查询所需的更改
  • 修复阻止服务器支持我们的工作负载的性能回归

我们上次升级到 MySQL 5.6 的主要版本花了一年多的时间才推出。
当 5.7 版发布时,我们仍在开发5.6 版上的LSM-Tree 存储引擎MyRocks。由于在构建新存储引擎的同时升级到 5.7 会显着减缓 MyRocks 的进度,因此我们选择继续使用 5.6,直到 MyRocks 完成。MySQL 8.0 是在我们完成将 MyRocks 部署到我们的用户数据库 (UDB) 服务层时宣布的。 
....
到目前为止,8.0 迁移已经花费了几年时间。我们已将许多 InnoDB 副本集转换为完全在 8.0 上运行。其余的大多数都处于迁移路径的不同阶段。现在我们的大部分自定义功能都已移植到 8.0,更新到 Oracle 的次要版本相对容易,我们计划跟上最新版本的步伐。