论文部分内容阅读
数据库是日常生产活动中重要的信息存储和检索工具,其设计一直随需求的变化而发展,系统架构从单机扩大为分布式集群,存储介质从磁盘转移到内存,数据组织从行式衍生出列式,而作为数据库重要优化手段之一的缓存技术也无时无刻不在演进。数据库缓存通常分析并结合系统特性,储存历史结果避免相似操作的重复执行,达到加速查询的目的。从缓存粒度层面可以将目前的缓存技术分为三类:Page缓存、Tuple缓存和语义缓存,前两者符合传统数据库的需求,语义缓存因抽象度高而适用面更广,但也因此降低了特定场景的优化能力。在低并发、高数据处理量的联机分析处理OLAP(On-Line Analytical Processing)场景下,如何针对基于内存的分布式列式数据库特点为其设计缓存,是当前热门研究课题之一。本论文以自主研发的分布式列式数据库Goldfish为背景,针对其列数据组织方式和异步推进的分布式计算模型,提出一套分布式物理执行计划语义缓存技术DPPSCache(Distributed Physical Planning Semantic Cache),暂存中间结果,避免重复计算并降低网络数据传输量,加速OLAP类查询。本论文阐述了DPPSCache的缓存组织方式、缓存匹配算法、代价模型和缓存淘汰算法、缓存可靠性,工作内容如下:1.DPPSCache缓存分布式物理执行计划中物理算子的执行结果,利用算子的局部语义和全局语义信息构建缓存特征树,并为其建立索引;2.分析特征点语义匹配和值区间匹配细节,衍生出特征树匹配方法,提出了基于特征树的缓存匹配算法CCTM(Cache Characteristic Tree Matching Algorithm);3.针对分布式列式数据库缓存特点,提出了基于代价模型的缓存淘汰算法RCBR(Reference and Cost Based Replacement Algorithm);4.分布式环境下,内存中的缓存对象难免因节点失效而丢失,因此本文设计了一套缓存可靠存储策略,包括多副本、纠删码和持久化。本论文在Goldfish数据库基础上,设计并实现了一套基于DPPSCache的分布式缓存管理系统,并同开源分布式数据库系统Hive和Spark SQL比较,从测试数据来看,配有缓存的Goldfish不仅提升了原有系统的性能,而且在查询性能方面明显高于对比系统。同时,在当前场景下RCBR淘汰算法要优于传统的最近最少使用算法LRU(Least Recently Used)和最少访问算法LFU(Least Frequently Used)。