论文部分内容阅读
云计算技术的日益成熟,使得其在各行各业中都得到了广泛应用。数据库系统作为云平台的一个关键组成部分,对云平台性能有着重要的影响。因此,探索更高性能的数据库系统是业界关注的问题。相比单机数据库,数据库集群凭借着高可用、高性能和数据备份等优点成为了搭建云平台的首选方案。面对复杂的云环境,传统的数据库集群并不能很好地解决突发的流量暴增问题,而且对负载的分配算法也是乏善可陈。此外,某些数据库集群还对硬件有着苛刻的要求和高昂的授权费用,这是与云计算思想相悖的。在这种背景下,本文对云环境下高性能数据库集群关键技术进行了研究,并且在此基础上实现了一套基于MySQL的数据库集群解决方案。该方案有效地利用了云平台中的廉价机器,降低了软硬件成本,提高了集群的整体性能和吞吐量。首先,本文在集群前端加入了代理模块,代理对用户是透明的,用户并不会感知到代理的存在,只需要像正常访问数据库一样来访问代理。代理实现了数据库集群的单一系统映像(Single System Image),并且可以对SQL进行路由转发,因此,可以利用代理实现读写分离。然后,分析了现有负载均衡算法的不足,并提出一种新的负载均衡算法。该算法通过层次分析法确定了各项资源对服务器性能的影响权重,将服务器负载能力量化,为负载调度决策奠定基础,并配合概率方式改进分配决策。同时,算法还考虑了服务器单项资源过载问题,提出了阈值限制。在MySQL Replication的基础上,本文设计了一套数据复制方案。该方案采用级联的方式,对数据进行分层复制。针对分层复制可能产生的级联故障,提出了一种基于链表的动态检测算法。为了保证数据访问的一致性,解决方案是检查当前Master节点的复制状态,然后等待数据从父节点复制到本节点,当本节点达到Master节点的复制状态时,才执行用户的请求。本文在MySQL的基础上实现了一个数据库集群系统,并将前文的设计思想应用到这个集群当中。最后,设计了一系列的实验,测试负载均衡算法的效果和多种场景下集群的读写性能,证明了集群的性能确实得到了提高。