论文部分内容阅读
多租户SaaS(软件即服务,Software as a service)应用以其按需定制、按需付费、无需维护等特征,逐渐成为云计算时代下主要的软件服务模式。所谓多租户SaaS应用就是单实例多租赁,即一个部署一个应用实例供多个租户租赁使用,租户可以按需定制满足自己个性化应用,定制主要从应用的界面、数据模式、服务流程等几个层面入手,其中数据模式的定制是多租户应用个性化定制的核心,是业务定制的核心要素。然而,随着租户规模的扩大,不同租户定制的数据模式中出现大量的公共相同模式信息,这为租户的进一步定制修改,以及新租户的定制过程带来不便,因为所有的定制都必须基于原始的基础公共数据模式开始进行定制,新租户定制数据模式的负担越来越重,甚至大量的租户定制是重复的,严重影响了租户的数据模式定制体验,增加了定制过程的复杂性。针对上述问题,为了提高大规模多租户应用租户个性化定制的效率。文章围绕多租户应用的数据模式自演化进行了深入研究。所谓多租户应用的数据模式自演化是指多租户应用在共享数据存储下,基础的公共共享数据模式可以随着不同租户定制信息的增加,自动地分析和抽取多租户之间的公共信息,对基础公共数据模式进行自适应演化,以减少未来租户定制的步骤,提高多租户应用的定制效率。多租户应用存储架构通常采用共享数据库共享数据模式,这种架构将同构数据放在基本数据表中,而将异构数据放在一个扩展数据表中。系统对扩展表数据的存效率是比较低的,扩展数据表的规模直接影响到了系统的整体性能。系统运行的初期,基本表数据结构基本能满足租户的需求,扩展数据表相对存放数据少。随着租户需求的变化,租户定制的扩展字段增加,扩展数据表存放数据的规模也越来越大,系统性能将受严重影响。为此,文章在共享表和共享数据库实例架构基础上,提出多租户应用中数据模式的自演化方法,一是对基础公共数据模式不断进行自演化,使其一直基本符合大多数租户的需求,减少新租户对数据模式定制的工作负担。二是对基本数据表与扩展数据表中的字段进行自演化划分,既要保证基本数据表不能过分稀疏,也要最大可能减少扩展数据表中的数据规模。通过开发实验系统,验证了基础公共数据模式的自演化有效提高了租户定制数据模式的体验,验证了共享数据模式的自演化既提高了数据存储空间的利用率,同时也提高了多租户应用整体的数据存取性能。