论文部分内容阅读
随着互联网技术的发展和应用软件的成熟,软件即服务(Software as a Service,SaaS)作为一种新型软件服务形式逐渐兴起。SaaS模式下,服务提供商将应用软件统一部署在自己的服务器上,通过互联网为企业客户提供服务,并按客户订购服务的多少和时间长短收取费用。SaaS应用交付平台为SaaS应用开发商提供了一个平台,该平台对开发商屏蔽了SaaS的特性,开发商通过该平台部署应用,而在开发过程中无需考虑SaaS特性从而注重业务逻辑开发,提高了开发效率。SaaS应用采用“单实例多租赁”的方式,即众多租户共享一个应用实例,租户的数据共享的存储在平台的数据库中,多租户数据库需要能够进行租户隔离,不同租户的个性化需求通过SaaS应用交付平台定制实现,包括数据定制、业务流程定制、页面定制等等,因此,多租户数据库还应能满足租户的定制需求。云数据库的出现为SaaS应用交付平台的数据存储向云中发展指明了方向。SaaS应用交付模式是多租户共享的存储架构,从数据库到硬件资源等都能进行资源共享,然而单个数据节点的能力有限,无法满足日益增长的租户数量的需求,因此采用多数据节点进行存储是必然的。同时,随着企业业务全球化的发展,企业的终端用户会分布在世界各地,单个数据节点无法满足其快速响应,因此,SaaS应用模式正在从单节点往云中多数据节点转变的必然阶段。本文以SaaS应用交付平台为背景,研究多节点的多租户数据存储,为了既满足租户的按需定制和高效存储的需求,研究了SaaS应用交付平台的多节点存储的多级索引机制,本文的研究内容如下:(1)提出适用于SaaS应用交付平台的多节点存储的多级索引架构。多级索引模型采用数据节点索引、租户逻辑索引、数据库物理索引三级索引结构,高效的响应租户的请求。(2)研究多级索引架构中的三级索引,即租户节点索引。作为面向SaaS应用交付平台的多租户数据存储模式,多个数据节点存储是不可避免的,同时为了平台的容错能力和负载能力,同一份数据可能在多个数据节点上冗余存储多份,因此,当租户请求到来时就会涉及到将请求路由到哪个数据节点上处理的问题。三级索引即租户节点索引,能够根据请求中租户的标识将请求快速转发到数据节点进行处理,同时提供了事务的同步机制。(3)接下来要研究的就是单数据节点上的逻辑索引问题,在单节点上采用的是稀疏表的方式,共享的存储多个租户的数据,由于稀疏表模式的特殊性,在稀疏表上建立传统的数据库索引往往是不可能的,因此当系统根据租户节点索引将请求转发到某个数据节点上时,租户逻辑索引在数据库物理索引的基础上提高了请求的处理效率。本文的主要工作如下:1、提出面向SaaS应用交付平台的的多租户数据存储的多级索引架构。该多级索引包括租户节点索引、租户逻辑索引、数据库物理索引三级。2、实现了租户节点索引的建立和维护机制。租户节点索引能够快速的将租户的请求路由到存储租户数据的某个数据节点上进行处理,同时提供了多数据节点的事务同步机制。3、设计实现了单数据节点上的基于Pivot Table的租户逻辑索引,大大提高了租户的请求处理效率,并通过实验验证了租户逻辑索引的优越性。4、设计实现了在多级索引架构下的缓存优化机制。该优化机制能够有效的提高多级索引架构的效率,并通过实验验证了优化机制的有效性。