支持SaaS应用的索引模型研究
发布时间:2017-11-11 17:14
本文关键词:支持SaaS应用的索引模型研究
【摘要】:SaaS(Software as a Service)是一种软件交付方式,软件及其相关数据被集中存储,并由服务提供商统一维护。这可以充分利用规模经济以降低租户应用软件的平均成本。SaaS应用的数据存储方案中,稀疏表(sparse table)存储模型被广泛使用,通过将部分多租户数据共享存储于一个物理稀疏表中以合理控制物理数据表的数量。基于租户对SaaS应用的定制,不同实际数据类型的业务数据可共享存储于稀疏表的一个松散列,故租户数据表的逻辑视图与物理存储结构不同。 随着SaaS应用中租户数量和租户数据量的增多,需要为业务数据建立索引以保证大数据集下的查询性能。但是原有的关系型数据索引模型并非针对SaaS应用设计,无法意识到多租户特性。特别地,稀疏表存储模型中的数据列是松散的,直接在其上建立物理索引是低效的。 本文首先提出一种基于稀疏表存储模型的多租户索引模型,并建立了适宜的索引数据共享、隔离存储层级。索引模型利用租户索引类型在同一逻辑表上的相似性,依据逻辑表、索引列数据类型和是否具有唯一性约束将被索引的数据同步存储到特定的索引数据表。与数据表的稀疏存储相比,索引模型的空间利用率较高;基于逻辑表而非其他多租户管理平台中使用的租户作为先导条件分离索引数据,可以防止由索引数据表数量与租户数量线性相关引起的物理表数量暴涨问题;通过对一个索引数据表承担的租户索引数量设置阂值,可以平衡索引数据表的负载。实验基于SaaS应用交付平台中的数据管理平台,实验数据表明,租户索引操作查询效率显著优于无索引环境。 对于数据流式增长的SaaS应用,如在线文档系统,网盘等,为保持较高的空间利用率,计算节点数量随着业务数据量的增加逐渐增加;以具有实际意义的列作分片键的存储模型需要提前分片,且随着新计算节点的加入,数据迁移时有发生。本文使用无实际意义的行id做分片键,一个租户逻辑表的一份数据副本的数据会分散于多个计算节点。由此产生的问题是,租户执行查询时需要在所有的计算节点中并行检索,即使在查询条件上建有本地索引;而查询结果大多仅位于部分计算节点中,尤其是单值查询。 为提高并行检索的效率,本文提出一种多级索引模型。将CG (Cloud Global)索引引入SaaS应用,实现一种基于BATON (BAlanced Tree Overlay Network)的多租户、多级索引模型。将部分本地B+树的结点发布到全局的BATON中,建立全局索引。执行查询时,使用全局索引减少参与并行本地检索的计算节点的数量;同时,本地检索只需从被发布的结点处而非本地索引树的根结点处开始,从而降低了本地B+树搜索的深度。此索引模型的索引数据共享、隔离存储策略基于上一个索引模型。实验基于Mongodb,实验数据表明,多级索引有效降低了并行检索操作的资源占用,提高了查询效率和并发度。
【学位授予单位】:山东大学
【学位级别】:硕士
【学位授予年份】:2014
【分类号】:TP333;TP393.09
【参考文献】
中国期刊全文数据库 前2条
1 孔兰菊;李庆忠;史玉良;王学;;面向SaaS应用基于键值对模式的多租户索引研究[J];计算机学报;2010年12期
2 史英杰;孟小峰;;云数据管理系统中查询技术研究综述[J];计算机学报;2013年02期
,本文编号:1172320
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/1172320.html