自创立以来,MySQL 一直是 Twitter 使用的关键数据存储技术之一。他们的数据存储在数以百计的模式中,最大的集群有数以千计的节点,每秒为数以百万计的查询提供服务。近日,网站可靠性工程部门高级经理 Pascal Borghino撰文介绍了 MySQL 在 Twitter 的应用以及正在孵化中的 Mysos 项目。
在 Twitter,MySQL 主要有两个用法:
- 作为数据服务的一部分:在 Twitter 自己的“分片(sharding)”框架内将 MySQL 用作分布式数据存储的存储节点,这样,既可以在单个存储节点上利用 MySQL 的可靠性和高性能,又可以借助分片框架管理数据分布,实现高可用性。
- 作为关系型数据存储:利用 MySQL Replication 的容错功能和读可扩展性,使用集群支撑大规模的读操作。
Twitter 不只是从 MySQL 社区获益,他们也向社区贡献了许多补丁。Twitter 还是 WebScaleSQL 项目的发起者之一,该项目刚刚获得了 MySQL 社区 2015 年企业贡献奖。它的目标是,使 MySQL 社区中大规模使用 MySQL 的成员通力合作,向 MySQL 增加适合于大规模部署的特性。
另外,为了提高 MySQL 集群的可扩展性,他们正在开发一个名为 Mysos 的新框架。Mysos 项目基于 Apache Mesos 构建一个面向 MySQL 的可扩展的数据库服务。Mesos 为 Mysos 提供了调度、监控 MySQL 实例及与之通信的原语,极大的简化了 MySQL 集群的管理。根据设计,它将提供如下特性:
- 通过多租户实现高效的硬件利用率;
- 出现故障时保留 MySQL 状态,并可以自动备份到 HDFS 或从 HDFS 恢复,具备高可靠性;
- 有一个自动化的自助服务选项,可以启动新的 MySQL 集群;
- 借助 MySQL 主数据库故障自动转移实现高可用性;
- 允许用户通过更改从数据库实例的数量实现 MySQL 集群的扩展和收缩。
该项目尚处于起步阶段。将来,Twitter 会围绕它构建一个独立的开源社区。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。
评论