论文部分内容阅读
随着云计算发展,软件开发作为一种服务已经受到越来越多的关注。为了让独立软件开发商(ISV)能够将精力集中在核心业务应用的开发上,更加方便、灵活、快捷地构建SaaS系统,平台即服务(PaaS)理念因此发展起来。SaaS最大的优点是将应用在同一时间提供给多个租户使用,并且一个租户下可能有1个或者多个用户,对租户来说感觉不到其他租户的存在。当云计算快速发展,SaaS应用交付平台的数据正从单一的节点到多节点,数据量和租户的数量呈指数增长,存储在多个节点上的用户数据均匀的分散在多个数据节点。面对海量的数据和频繁的并发访问,将会给SaaS平台带来以下问题:(1)元数据存在单一的元数据节点上,所有数据节点使用的是同一份元数据,元数据节点上硬件或者软件若发生故障,则该元数据节点就不能完成任何数据的查询工作了。用户使用SaaS应用时,无从获取租户定制信息,无法进行模式映射和SQL重写,SaaS平台将是不可用的。(2)租户的资源需求是动态变化的,当租户需要的资源空间是随着时间动态变化的且各个数据节点的负载不均衡下,就会出现热点数据,不仅元数据节点可能出现过载,数据节点也可能出现过载,那么租户的SLA(Service-Level-Agreement)将得不到保障。针对以上,本文基于SaaS应用的特性,提出了支持数据迁移的多租户数据存储模型,然后在此基础上,提出了能够识别租户特性的云中多节点的SaaS平台多租户数据动态数据迁移算法。本文的主要工作如下:(1)提出了基于共享数据库共享表模式下的云中SaaS应用的多元数据节点模型。在共享SaaS多租户数据存储模式以及云中多个数据节点的基础上,针对SaaS平台单一元数据节点问题,提出了多元数据节点模型。模型中选取一个元数据节点作为元数据管理节点。阐述了模型中元数据结构,提出了SaaS平台多元数据节点模型下,元数据分布策略,包括元数据划分策略和基于分割定义的放置策略。并提出了基于分割访问计数属性等动态负载调整算法。该模型能有效解决单一元数据节点的失效、性能瓶颈、扩展性问题。(2)提出了在云中多元数据节点模型基础上的SaaS数据动态迁移策略。首先该策略考虑到多租户的特征;其次,数据迁移是在线的,为了保证租户对迁移中的数据能够进行正常访问,特别是正在进行迁移的源数据节点和目标数据节点,本章提出了“单写双读”的访问模式,这样不仅不会造成租户访问的中断,还可以保证服务提供商许诺的SLA。最后,将传统的两阶段提交的策略进行了扩展,保证数据一致性。该策略能够将迁移成本降至最低,能够按照租户数据的优先级进行迁移,缩小每次迁移的数据量,节省网络带宽,防止SaaS平台性能降低。文章最后我们给出“单写双读”的多租户数据访问方式,保证迁移中数据的可用性和用户访问的不中断性。