Manhattan:Twitter的下一代分布式数据库

作为世界上使用最广泛的微博客服务,Twitter月活跃用户如今已经达到了2.183亿人,每天大约有5亿条推文被发送,几乎每秒钟就产生了超过6000条推文。

在最初Twitter还没有这么大数据量的时候,该公司主要使用一些主流的技术来处理这些数据,比如开源数据库MySQL和Cassandra等,但随着用户量的飞速扩增,这些技术逐渐显示出了一些瓶颈,已经达不到Twitter实时、低延迟的需求,Twitter工程师也需要花费大量的时间来扩展这些产品。因此,基于目前需求及长远考虑,Twitter开发了自己的分布式数据库系统——Manhattan。

Twitter表示,未来该系统可能会开源,该公司还在在官方博客中介绍了该系统的详细信息。下面就来看看。

Twitter目前对于数据库产品的需求(也是Manhattan的特性):

  • 可靠性
  • 可用性
  • 可扩展性
  • 易操作性
  • 低延迟
  • 细粒度的可缩放性
  • 开发人员的工作效率

Twitter在设计Manhattan时主要遵循的原则:

  • 保持核心轻量和简单
  • 能够更快地带来价值
  • 有限考虑多租户、服务质量(QoS)和自助服务
  • 专注于可预测性
  • 存储作为服务,而不仅仅是技术

下面来看看Manhattan的主要特性。Manhattan共分为如下4层:

  • 核心:这是存储系统最关键的部分,需要高度稳定和强大,用来处理异常、一致性、路由、拓扑管理、数据中心区域内/跨区域复制、冲突解决等。核心中的关键组件完全可插拔。
  • 存储引擎:目前有3个内部存储引擎——seadb、sstable、btree
  • 存储服务:在核心基础上构建了更多传统数据库中包含的一些功能,比如:Hadoop数据批量导入、强一致性服务、时间序列计数器服务
  • 接口:用于实现客户与存储系统的交互

 

Tagged: ,

Comments are closed.