Twitter曼哈顿数据库的横空出世表明当今的数据库技术已经无法满足大型互联网公司的独特需求,新一轮数据库技术革命已经启动。
Twitter是所有大型互联网公司中产品实时性和技术进化速度最快的一个,本周Twitter在博客中公布了实时数据服务的核心引擎——曼哈顿(Manhattan)数据库的技术细节。曼哈顿是一个分布式、实时数据库,服务对象是Twitter公司内部的多个团队和应用。
曼哈顿数据库的数据处理能力和速度让当今流行的开源数据库相形见绌,这些数据库已经无法满足Twitter规模的生产环境,正如Twitter软件工程师Peter Schuller所言:
我们为了让生产系统满足各种产品的性能预期而四处救火,浪费了太多时间。为一个新应用配置存储资源需要涉及太多的人工和流程。根据我们的经验,为Twitter这样的大规模web业务开发和运营生产存储环境,采用现成的数据库技术已经行不通了。
Schuller在博客中详细介绍了Twitter如何开发出曼哈顿这样的高可靠、高可用、易用的新一代数据库。同时也公布了一些为曼哈顿数据库设计的一些数据格式的细节。目前,用户通过key-value存储的方式使用曼哈顿数据库,未来Twitter还计划增加包括图形界面在内的用户界面。曼哈顿数据库有三个存储引擎,分别面向只读Hadoop数据、大量读取数据和大量写入数据。此外曼哈顿还内置了很多服务,包括导入Hadoop数据,确保数据一致性和计算时间序列数据等。
对于开发者和工程师来说最重要的一点是,曼哈顿作为一种存储服务可以像其他任何一种云存储服务一样使用。工程师数秒钟就可以为应用配置好存储资源,无需等待安装硬件或对系统架构进行重新配置。Twitter将重点放在确保曼哈顿的多租户使用的整体性能不会因某个租户占用过多资源而受到影响。
Twitter计划在择日发布的曼哈顿数据库技术白皮书中公布具体技术开发细节。作为开源软件的重量级拥趸,Twitter很可能会在将来某个时间将曼哈顿数据库技术开源。实际上,Twitter曾于2012年将其MySQL代码开源,最近又与Facebook携手开发WebScaleSQL开源数据库项目。
Twitter曼哈顿数据库的横空出世表明当今的数据库技术已经无法满足大型互联网公司的独特需求。Twitter、Google、Facebook和LinkedIn已经抛弃了最初的NoSQL技术(这些NoSQL技术正在进入大型企业),纷纷开发下一代数据库技术,正如他们当年开发Cassandra、Voldemort和BigTable那样。也许曼哈顿将成为未来的Cassandra,而LinkedIn的Espresso成为新的MongoDB(编者按:MongoDB因获得NSA投资而在发展中市场受挫),成为下一代创业公司开发者的宠儿。