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