论文部分内容阅读
软件即服务(SaaS, Software as a Service)和云计算的一种重要思想就将各种资源服务化,单实例多租户技术是其中的一项重要技术,它通过整合资源来为成百上千的不同租户提供服务。SaaS应用需要同时支持多个租户,而每个租户又可能有非常多的用户,这对支撑软件的基础设施平台的性能、可用性、扩展性等是很大的挑战。SaaS和云计算的本身对应用系统要求很高的可用性、扩展性。采用多副本复制技术是提高可用性最主要手段,然而,CAP理论却限制在分布式系统环境中,对于一致性、可用性和分区容错性三者最多只能兼顾其二。在数据管理上,实现多租户技术最常用方法有三种,独立数据库、共享数据库独立模式和共享数据库共享模式。本文基于具有最高共享程度的方式——共享数据库共享数据模式方式,从多节点副本系统架构上考虑,本文构建了能提供高可用的完全复制的多租户Quorum NRW系统。旨在结合每个租户的应用事务特性和需求,为每个租户提供合适的R和W的值,保证强一致性的条件R+W>N的同时,为各个租户和系统整体提供更高的性能。各个租户的应用事务特性和需求可能发生变化,这将导致与之对应的合适的Rw值的变更。本文根据变更的差异,总结为左变更和右变更两种变更方式,并结合多租户Quorum NRW系统的特性,提出了过渡法左变更和右变更的两种方法。整个变更过程保持在线完成,而且保持整个系统强一致性。本文同时对单个副本节点上的数据并发性和一致性上展开研究,根据多租户共享数据库共享数据模式的存储特点,提出了更为适合的面向租户的动态粒度锁,从各个租户的平均粒度上来讲,面向租户的动态粒度锁为不同的租户提供不同的锁粒度,而这一粒度根据定义会在上限粒度跟下限粒度之间。针对面向租户的粒度锁这一特性,构建多租户事务模型,从事务冲突率、死锁率、系统吞吐量、锁数量和基本表加扩展表的存储方式多个方面考察面向租户的粒度锁性能。而各租户的粒度跟各租户的事务特性未必相符,而各个租户的应用事务特性也可能发生变化。为此,鉴于面向租户的粒度锁的粒度大小由多租户数据分布决定,我们提出了面向租户的粒度锁调整方法——聚簇和扩展方法,同时结合事务冲突率、死锁率、系统吞吐量、锁数量和基本表加扩展表的存储方式等多个方面的考虑,完成求解近似适度粒度的策略来供面向租户的粒度锁调整所用。本文在进行相关理论分析同时,也采用实验评估验证多租户Quorum NRW系统和面向租户的动态粒度锁,经过多个角度的实验数据显示,多租户Quorum NRW系统和面向租户的动态粒度锁对整个系统的性能提升较为明显。