数据库系统中的日志结构合并树性能优化

来源 :华东师范大学 | 被引量 : 1次 | 上传用户:jinr0op8
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
存储模型是线上系统稳定运行的基础,为各种关键性应用业务提供了高效存储和检索功能,是数据库管理系统中不可或缺的组成部分。而随着移动互联网、云计算产业、物联网等行业的快速迭代,数据存储正以指数级增长。这一现象给数据库系统中的存储模型带来了巨大的挑战。基于日志结构合并树(Log-Structured Merge-Tree,LSM-tree)实现的存储模型采用了异步更新(Out-of-place Update)方式和层次存储管理结构,能够将处理写请求的小颗粒随机写聚集成大颗粒连续写从而充分利用持久化存储硬件的带宽,因此具有高吞吐能力和高空间利用率并被广泛应用在各种数据库系统的存储模型中。随着业务的不断更新迭代,应用负载也向多样化的趋势发展,数据库系统面临的工作负载也逐渐变得复杂化和多样化。而日志结构合并树作为一种写优化的数据结构,在面对数据库系统的复杂和多样化负载时,现有的研究工作仍然存在一些不足且拥有进一步优化的空间。首先,日志结构合并树的异步更新方式让数据库系统在处理更新操作时存在更多可能性。更新操作产生的大量无效的旧版本数据在磁盘空间利用率、读写性能上都产生了较大影响,而现有的垃圾回收机制决定了日志结构合并树不能立即将其从系统中剔除。另一方面,数据库系统通常将增量存储或者全量存储作为系统唯一的更新操作的数据存储方式,如何细粒度地为每个更新操作选择合适的更新方式也值得研究。其次,日志结构合并树中频繁地触发合并操作会让系统的写性能存在较大的波动,而现有的优化手段通常是以牺牲查询性能为代价提升系统的写性能。因此,在保证稳定的写性能的前提下,提升日志结构合并树的范围查询性能是数据库系统的主要优化目标。最后,随着数据量的爆发式增长,单机的存储系统架构逐渐向分布式架构发展。在持续批量摄入数据的高并发场景中,基于日志结构合并树实现的分布式数据库系统面临的主要问题是各个存储节点承担的合并压力不同,导致应用不能充分利用分布式系统的高吞吐和高并行性的能力来完成数据摄入任务。尽管已有的一些负载均衡算法能够在一定程度上减少合并负载不均衡的现象,但是这些方法通常考虑的影响因素比较单一,不能够适用各种不均衡场景。因此,无论是在单机架构还是分布式架构下,数据库系统中的日志结构合并树在各种不同类型的工作负载下的性能仍然值得进一步研究和探索。基于上述三个关键问题,本文的主要工作和贡献总结如下:(1)针对日志结构合并树中的更新操作引起的垃圾回收问题以及更新操作如何选择更新方式问题,本文提出了快速的垃圾回收机制以及设计了一种自适应更新选择策略。首先,为了减少大量无效的旧版本数据在磁盘中的存活时间,本文设计了快速的垃圾回收机制。该机制将垃圾回收中识别无效的旧版本数据和删除旧版本数据两部分工作分开,为系统在控制写放大、空间放大等问题上提供了灵活性。并且能够保证每条被逻辑删除的数据能够只经历一次合并操作就能被永久地删除。另一方面,对于更新操作是否选择增量存储还是全量存储的方式,本文设计了一种自适应判断机制。该机制能够根据每个更新操作的特征选择合适的更新方式,从而在系统的写放大和读放大方面做到很好的权衡。(2)针对在混合负载中读写性能存在相互制约的问题,本文基于键值分离技术设计了读写均衡的键值数据库TargetedKV。为维护稳定高效的写入性能的同时不降低范围查询的性能,本文首先在SSTable层面采用键值存储分离方案。该方案支持在日志结构合并树重新组织数据时只维护磁盘组件的每层Key完全有序,维护Value部分有序,从而实现较低的写放大的同时满足范围查询的延迟需求。此外,本文还将磁盘组件的数据按照主键顺序分成多个数据分区,利用查询负载的局部性特征来指导合并操作,从而能够快速将某一范围的数据聚集在少数文件中,进一步提升范围查询的性能。(3)针对基于日志结构合并树实现的分布式数据库系统中存在的合并负载不均衡问题,本文提出了一个基于机器学习的均衡框架LeaBalancer。分布式数据库系统通常采用范围分区的方式实现水平扩展功能,而本文考虑到影响每个范围分区数据合并效率的各种因素,并通过机器学习方法将这些因素融合在一起来预测每个数据分区完成数据合并的时间。基于预测结果,本文分别设计了单节点调度策略和多节点之间的调度策略。通过两层调度方案,LeaBalancer可以在尽量少迁移数据的情况下完成节点之间的合并负载的均衡。综上所述,本文深入研究了数据库系统中基于日志结构合并树实现的存储模型在垃圾回收、范围查询、负载均衡等方面的研究工作存在的不足,并且基于不同场景特点提出了三种优化方案。前面两个工作主要解决单机架构下键值数据库的读写性能均衡问题以及更新操作引起的垃圾回收和更新数据存储问题。而最后一个工作主要探讨分布式架构下的日志结构合并树的合并负载不均衡问题,并给出了相应的调度方案。基于不同工作负载的大量实验验证了本文提出的优化方案的有效性。
其他文献
唐卡是藏族文化的重要组成部分。量度、色彩、仪轨是体现唐卡艺术价值的显著标志,更是唐卡的基本理论和主要艺术特色。唐卡在长期的发展进程中量度、色彩与仪轨形成了一套理论体系,体现在固定的方式、方法、规则之中。这些内容营造了唐卡绘画艺术的理论特色。虽然其重要性不言而喻,但是目前学术界对量度、色彩和仪轨等组成的理论体系尚未进行系统研究。因此,有必要进一步梳理和阐释量度、色彩、仪轨及其相关工序的形成、步骤、仪
学位
刘湛恩是中国近代著名的教育家、社会活动家、杰出的民主爱国人士。他一生坚持“教育救国”的理想,在服务基督教青年会期间,他组织参与平民教育、公民教育、职业教育中国近代三大教育运动,同时也被卷入了非基督教运动的漩涡。1928年,刘湛恩出任沪江大学首位华人校长,旨在打破教会大学封闭的藩篱,引导基督教教育中国化改革。他不仅调整沪大迅速适应中国社会,而且使沪大为中国社会发展和抗日救亡培养了许多杰出的人才,成为
学位
维数灾难(The curse of dimensionality),最早是由理查德·贝尔曼在1996年提出的,是指不同学科领域中由于数据维数的增加导致计算量呈指数增长趋势而造成的各种问题。在不丢失信息的前提下将高维数据映射到低维空间是一种用来应对维数灾难行之有效的方法。充分降维正是在这样的理念框架下展开的,通过寻找自变量的线性组合来完成数据降维,得益于其不依赖模型假定和结合了统计量充分性概念的特征
学位
网络舆情具有强烈的两面性,一方面,它能在一定程度上促进整个社会经济、文化的发展与进步,另一方面,谣言或偏激言论的广泛传播会影响到社会的正常秩序。“危险”舆情信息一旦没有被第一时间抓取、处理,错失舆情干预的最佳期,会导致负面网络舆情的产生,造成谣言肆虐、社会恐慌、次生隐形风险等难以控制的后果。预警是网络舆情治理的第一防线,通过建立一套科学合理的网络舆情预警机制能够推动舆情预警工作的精准化、高效化和科
学位
过氧化氢(H2O2)是一种通用且环境友好的氧化剂,被广泛应用于工业、农业、医药、能源和环境保护等领域。蒽醌氧化法是目前工业上制备H2O2的主流工艺,但存在操作复杂及污染严重等问题。以O2或H2O为原料,电能为能量来源的两电子氧还原(2e-ORR)和两电子水氧化(2e-WOR)电催化策略是新兴的H2O2制备技术,具有绿色安全、经济高效等特点。现阶段该领域面临的关键挑战在于如何设计兼具高选择性、高活性
学位
近几十年来,风能的发展在减少碳排放以满足缓解气候变化日益增长的需求方面发挥了关键作用。尽管风能通常被视为一种环境友好的替代能源,但风电场数量的持续增长可能会对周边鸟类的群落结构与种群特征产生长期和复杂的影响。繁殖生活史对于野生动物的种群维系至关重要,而当前缺乏研究关注风电场周边鸟类繁殖生活史变化及其相关机制,为了找到证据来证明风电场对鸟类影响程度,以及这些影响背后的作用机理,本研究结合当地风电场所
学位
膀胱癌是泌尿系统常见的恶性肿瘤之一,符合手术指征的膀胱癌患者的治疗方案目前主要是以手术治疗联合术后膀胱灌注治疗为主。对于晚期不可切除或转移性膀胱癌目前的治疗手段无法令人满意。膀胱癌中有较高比例的患者存在肿瘤的成纤维细胞生长因子受体3(Fibroblast growth factor receptor 3,FGFR3)的激活突变,这种突变使得膀胱癌的FGFR3信号通路被异常激活。针对这类FGFR3异
学位
本博士论文分为两部分。在第一部分中,我们证明了阿贝尔范畴的短正合列可以诱导复形范畴,同伦范畴和无界导出范畴的短正合列,从而推广Miyachi的结果.第二部分的目的是使用To(?)n和Brav-Dyckerhoff的相对Calabi-Yau结构理论来对具有系数的丛代数进行范畴化.丛范畴由Buan-Marsh-Reineke-Reiten-Todorov于2006年引入,以便对不带系数的丛代数进行范畴
学位
准晶作为涂层(薄膜)等表面改性材料已经广泛使用.由于压电效应,准晶在智能结构和系统设计中具有更好的传感器和执行器功能.随着压电准晶(PEQCs)制备技术的成熟和抗接触(摩擦)损伤的实际需求,开展对PEQCs涂层和功能梯度压电准晶(FG PEQCs)材料摩擦接触力学行为的研究既有理论价值,又有实际意义.一方面,不仅为现有弹性接触理论研究提供补充,将经典积分变换及势函数等方法的应用范围推广到更宽更新的
学位
时间约束规约语言(Clock Constraint Specification Language,CCSL)被越来越多的应用于嵌入式实时系统的建模和时间行为的分析。在系统设计过程中,需求工程师往往需要从自然语言撰写的需求文档中总结求解CCSL规约。然而随着系统复杂性的日益增高,需求工程师难以完整且准确的求解CCSL规约,这是因为需要工程师往往缺乏专业的形式化建模知识与经验。由于目前缺乏相关的自动化
学位