论文部分内容阅读
随着互联网和云计算技术的飞速发展,越来越多的Web系统采用SaaS(Software as a Service)化平台。而随着租户的规模逐渐增多,SaaS化平台中需要存储的数据量将会变得十分庞大。若采用传统分库分表的存储方式,则会带来巨大的存储开销。目前的研究趋势是采用共享数据库共享数据模式的存储方式,其优势在于既能够保障不同租户之间数据的隔离,又能使得租户最大程度地共享数据架构,节省存储成本。本文针对多租户数据共享存储模型的研究,主要解决以下几个方面的问题:(1)使不同租户共享数据库共享数据模式,同时保障租户之间的隔离性;(2)改善共享存储模型的定制能力,尤其是满足租户新定制需求的能力;(3)现有共享存储模型缺乏对模式映射和SQL重写两个功能进行实现的考虑,仅分析了理论上的可行性。因此,本文对现有共享存储模型的不足进行了分析,设计了两种改进的共享存储模型,并且为模式映射层提供了API支持。本文主要做了如下几个方面的工作:(1)现有共享存储模型在满足租户新定制需求时采用预留列和数据迁移的策略,会极大地影响数据库的性能和其他租户的使用。本文通过对模式映射机制进行研究,设计了宽表+块表、宽表+透视表两种共享存储模型,以及构建多个宽表、块表,透视表的策略。(2)结合共享存储的分层架构,分别对宽表+块表、宽表+透视表两种共享存储模型的工作原理进行分析,并通过对模式映射过程和关系代数运算的分析,分别证明了两种共享存储模型与传统关系模型的等价性。(3)针对模式映射层中的模式映射机制和逻辑SQL重写机制,设计和实现了支持字段映射和SQL重写两大功能的API,从而为多租户数据的共享存储和逻辑隔离提供了有效的保障。(4)对宽表+块表、宽表+透视表两种共享存储模型进行存储空间利用率和查询效率的实验测试及结果分析,并分别对两种共享存储模型中的字段映射和SQL重写作了功能验证。