1.1.2 关系型数据库的瓶颈

随着各类互联网新业务的兴起,人们在工作和生活中利用信息数据的方式发生了很大改变。信息数据在互联网上产生之后,一般不会被删除或离线保存,而是会被在线使用和分享——例如我们可以查询到很久以前的新闻或微博,因而典型互联网业务的数据总量巨大,且保持持续增长。

2014年有资料显示:一天之内互联网能够产生的内容可以刻1.68亿张DVD,一天之内互联网能够发出2940亿封邮件,相当于美国邮政系统两年处理的纸质邮件数量。著名网站Facebook,每天有超过5亿个状态更新,2.5亿张以上的照片被上传……

通常情况下,关系型数据库应用系统可以通过不断升级硬件配置的方法,来提高其数据处理能力,这种升级方式称为纵向扩展(Scale up)。20世纪60年代,英特尔公司的创始人戈登·摩尔(Gordon Moore)断言:当价格不变时,集成电路上可容纳的元器件的数目,每隔18~24个月会增加一倍,性能也会提升一倍。因此,升级硬件的方式可以使得关系型数据库的单机处理能力持续提升。但是近年来,随着摩尔定律逐步“失效”,计算机硬件更新的脚步放缓,计算机硬件的纵向扩展受到约束,难以应对互联网数据爆发式的增长。

有人提到:“古时候,人们用牛来拉圆木,当一头牛拉不动时,他们不会去培育更大的牛,而是会采用更多的牛。”这种采用“更多的牛”的扩展方式称为横向扩展(Scale out),即采用多个计算机组成集群,共同对数据进行存储、组织、管理和处理。对于这个集群,应当有以下特征。

(1)能够对集群内的计算机及其计算存储资源进行统一的管理、调度和监控。

(2)能够在集群中对数据进行分散的存储和统一的管理。

(3)能够向集群指派任务,能够将任务并行化,使集群内的计算机可以分工协作、负载均衡。

(4)利用集群执行所需的数据查询和操作时,性能远超单独的高性能计算机。

(5)当集群中的少量计算机或局部网络出现故障时(类似某一头牛病了),集群性能虽略有降低,仍然可以保持功能的有效性,且数据不会丢失,即具有很强的分区容错性。

(6)可以用简单的方式部署集群、扩展集群(类似增加牛的数量),以及替换故障节点,即具有很强的伸缩性。

然而关系型数据库由于数据模型、完整性约束和事务的强一致性等特点,导致其难以实现高效率、易横向扩展的分布式部署架构,而关系模型、完整性约束和事务特性等在典型互联网业务中并不能体现出优势。例如:在管理海量的页面访问日志时,并不需要严格保障数据的实体完整性和引用完整性。