Twitter 开源其 MySQL 优化成果,Twitter 工程


据 Twitter 工程博客透露,Twitter 决定开源其使用的、经过优化的 mysql 版本。

Twitter 工程师 Jeremy Cole 和 Davi Arnaut 在博客中称:

MySQL 是 Twitter 大部分数据(如兴趣图谱、时间轴、用户数据和推文等)的主要存储技术。由于我们的规模,我们比其他公司更能推动 MySQL 的发展。当然,MySQL 是开源软件,所以我们可以改进它,使之满足我们的需要。我们相信共享知识和开放源码有利于创新,我们已经决定在 BSD 许可协议下开源。

Twitter 开源其 MySQL 优化成果

在该博客中,还列出了Twitter 在 MySQL 上的主要改进工作,包括:

添加额外的状态变量,尤其是在 InnoDB 内部。这使我们能够更有效地监控我们的系统,以及更好地了解处理产品工作负载时的行为。大型 NUMA 系统中的内存分配优化。在启动时充分分配 InnoDB 的缓冲池,甚至在服务器内存压力较高的情况下,确保服务器的性能。通过改善服务器端的 Statement Timeout(声明超时),来减少不必要的工作。这允许服务器主动取消超时间隔大于 1ms 的查询。使用安全、轻量级的方法导出和恢复 InnoDB 缓冲池。针对 SSD 优化 MySQL,包括页面刷新(page-flushing)行为和减少磁盘写入,以提高磁盘寿命。

目前 Twitter 的 MySQL 源码托管在 Github 上,基于 BSD 许可协议。

源码地址:https://github.com/twitter/mysql

相关内容