云计算时代的数据库研究

引言

随着云计算时代的到来,各种类型的互联网应用层出不穷,对与此相关的数据模型、分布式架构、数据存储等数据库相关的技术指标也提出了新的要求。虽然传统的关系型数据库已在数据存储方面占据了不可动摇的地位,但由于其天生的限制,已经越来越无法满足云计算时代对数据扩展、读写速度、支撑容量以及建设和运营成本的要求。云计算时代对数据库技术提出了新的需求,主要表现在以下几个方面。

●海量数据处理:对类似搜索引擎和电信运营商级的经营分析系统这样大型的应用而言,需要能够处理PB级的数据,同时应对百万级的流量。

●大规模集群管理:分布式应用可以更加简单地部署、应用和管理。

●低延迟读写速度:快速的响应速度能够极大地提高用户的满意度。

●建设及运营成本:云计算应用的基本要求是希望在硬件成本、软件成本以及人力成本方面都有大幅度的降低。

关系型数据库的劣势分析

随着Web2.0的发展,传统的关系型数据库在应对超大规模和高并发的SNS类型的网站方面暴露了许多难以克服的问题,主要表现在以下方面。

(1)高并发读写速度慢

这种情况主要发生在数据量达到一定规模时,由于关系型数据库的系统逻辑非常复杂,使得其非常容易发生死锁等并发问题,导致其读写速度下降非常严重。例如,Web2.0网站要根据用户个性化信息来实时生成动态页面、提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系型数据库勉强可以应付上万次SQL查询,硬盘I/O往往无法承担上万次的SQL写数据请求。

(2)支撑容量有限

类似Facebook、Twitter这样的SNS网站,用户每天产生海量的用户动态,每月会产生几亿条用户动态,对于关系型数据库来说,在一张数亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。

(3)扩展性差

在基于Web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,传统的关系型数据库却没有办法像Web Server那样简单地通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,因此迫切需要关系型数据库也能够通过不断添加服务器节点来实现扩展。

(4)建设和运维成本高

企业级数据库的价格很高,并且随着系统的规模增大而不断上升。高昂的建设和运维成本无法满足云计算应用对数据库的需求。

关系型数据库遇到上述难以克服的瓶颈,与此同时,它的很多主要特性在云计算应用中却往往无用武之地,例如:数据库事务一致性、数据库的写实时性和读实时性、复杂的SQL查询特别是多表关联查询。因此,传统的关系型数据库已经无法独立应付云计算时代的各种应用。

NoSQL数据库数据模型

关系型数据库越来越无法满足云计算的应用场景,为了解决此类问题,非关系型数据库应运而生,由于在设计上和传统的关系型数据库相比有了很大的不同,所以此类数据库被称为“NoSQL(Not>