论文部分内容阅读
目前,云计算作已经在学术和商业上都取得了巨大成功,它作为一种新的计算范式不断促使新技术的产生。软件即服务(Software as a Service)已经成为云计算为用户提供服务的重要方式,而云计算也为实现多租户SaaS应用提供了重要的理论基础。随着学者们对租户数据存储方式的研究,数据存储得到了优化,SaaS应用的性能得到了一定的改善,但仍然存在其他问题如优化租户事务处理的相关问题。SaaS应用可以满足很多用户同时这些用户又可是属于不同租户的,这就注定了租户事务的高并发性。高可用性、可扩展性、分布性等等特点决定了亟需对SaaS应用的租户事务进行优化处理以提高应用性能同时要保证租户数据的全局一致性。但是CAP理论限制了在分布式系统环境中,对于一致性(C)、可用性(A)和分区容错性(P)三者中只能满足其中两个。根据SaaS数据定制的特点,多种数据存储方式被提出,其中利用基本表加扩展表的数据存储模式,基于这种数据存储方式的租户事务处理,与传统方式数据存储下的事务处理有很大的差异。传统的技术和研究也易不适用于这种多租户环境下的事务处理,首先是应用于传统并发控制的锁机制对于多租户环境的事务控制已成为一种瓶颈,传统的锁机制来保证租户数据一致性的难度较大,并且将会造成系统负载能力低,租户事务可扩展性差,而一些有关锁优化的技术并未在多租户环境下进行研究,亟需研究单节点多租户下如何提高并发事务的吞吐量;其次在结合分布式技术的多租户数据库中,特别是多租户共享数据模式的情况下,由于多个租户访问混合和其用户的复杂以及数据存储的分布性,事务特性各种各样,保持租户数据全局一致性也是传统技术不能很好解决的问题。本文主要工作如下:1)提出了多层次事务处理模型的设计。此模型中租户数据的共享存储模式是基于基本表加扩展表同时租户数据是在云中多节点分布式存储的。租户事务进入模型时会附有时间戳并且进入队列;然后模型对事务进行调度处理;最后控制租户事务的并发执行。2)提出了面向租户的轻量级锁机制(MLLL)。MLLL通过对进入内存的租户记录增加计数字段使得锁的信息与租户数据绑定在一起,同时对租户事务排序这样可以保证在多租户环境下使得系统吞吐量得以提高,同时满足事务的可扩展性。3)提出了对租户事务增加范围时间戳来保证数据全局一致性的策略。通过对租户事务设置上限和下限两个时间戳属性,并调整这个范围区间来保证租户事务的并发执行,在获得高吞吐量的同时租户数据的全局一致性得到保证。