1.1 引子
MySpace是全球知名的在线交友平台,自从2004 年创建以来用户数迅速增长,直到Facebook崛起其用户数量才不断下降。虽然如今MySpace黯然衰落,但是其信息系统的发展值得大家借鉴,这里我们通过MySpace的例子[3]来说明互联网公司是如何应对数据海量增长的,见表1-1。
表1-1 MySpace信息系统的发展阶段
MySpace最初的用户数量很小,两台Web服务器和一台数据库服务器就可以满足用户的访问。后来随着用户的增加,MySpace公司通过增加Web服务器来应对访问量的增长。而当用户数量继续增长时,数据库服务器开始出现瓶颈,但是增加数据库服务器并不像增加Web服务器那样简单,分布式事务的代价也很高。MySpace将用户数据垂直分割,如将用户的资料和博客存放于不同的数据库服务器上,随后又使用了存储区域网络(SAN),这种高带宽的网络可以将大量磁盘存储设备连接在一起。
即使采用了以上措施,在用户数增加到三四百万的时候,数据库服务器还是出现了瓶颈。于是MySpace采用分布式架构。为了使服务器负载均衡,MySpace对用户数据水平划分,每台服务器存放二百万用户的数据。由于现有系统的水平扩展能力较差,MySpace开始使用微软的解决方案,包括将系统采用.NET框架、数据库采用SQL Server。之后,MySpace在Web服务层和数据库层增加了缓存层,并将其硬件和软件全面升级到64 位。尽管求助于微软,但是MySpace的服务器经常超负荷运行,用户等待的时间较长。
整个过程发生在2004—2006年,仅仅两年时间MySpace的数据量增加了几十倍,这是互联网公司普遍遇到的问题,虽然后来MySpace受到Facebook崛起的影响其用户群迅速下降,但是海量数据的存储与管理仍然是互联网公司绕不开的问题。IDC数据显示,2006年全世界的电子数据存储量为18万PB,但是到了2011年这个数字已经到达180万PB。
通过上面的案例我们可以看出,为了解决大数据及其高访问量带来的问题,MySpace尝试了提高软硬件配置、增加服务器数目、采用分布式架构等方法,这些方法虽然提高了系统的性能,但并未完全解决大数据的问题,随着数据量的增加问题还会再次出现,大数据对现有IT架构的冲击是不可避免的。为了应对大数据的挑战,人们尝试转变思路,提出多种不同的解决方案,并构建各种各样的管理系统,这些系统可以水平扩展,可以很好地管理与分析大数据。