热点感知的日志结构合并树读写性能优化方法及相关设备技术

技术编号:36221262 阅读:52 留言:0更新日期:2023-01-04 12:19
本发明专利技术公开了热点感知的日志结构合并树读写性能优化方法及相关设备,属于数据存储技术领域,包括:在内存中维护粗粒度缓存和细粒度缓存,分别以数据块和键值对为粒度对系统中最近被访问的数据进行缓存;粗粒度缓存为只读缓存,用于服务范围查询操作;细粒度缓存为读写混合缓存,用于服务点查询操作和写操作;在硬盘上引入热点感知的数据合并方法,设计实现了数据热度的计算方法,基于数据访问热度调度日志结构合并树中内部数据合并操作的执行,同时对参与合并的无效数据进行快速剪枝,合并完成后预取较热的新数据块到粗粒度缓存中。本发明专利技术能够提升缓存命中率,缩短读写路径,对日志结构合并树的读写性能进行优化。结构合并树的读写性能进行优化。结构合并树的读写性能进行优化。

【技术实现步骤摘要】
热点感知的日志结构合并树读写性能优化方法及相关设备


[0001]本专利技术属于数据存储
,更具体地,涉及热点感知的日志结构合并树读写性能优化方法及相关设备。

技术介绍

[0002]随着信息技术的高速发展以及数据量的爆炸式增长,各个行业领域都产生了海量数据,对于存储系统的性能要求也进一步提高,而传统数据存储系统中常常使用相对固定的数据模型来组织管理数据,通常基于一些简单的数据场景来建立数据模型,例如使用简单的逻辑二维表来表现展示数据,所以无法应对大数据时代数据形式多样化的趋势以及高性能的并发读写需求,非结构化数据存储系统应运而生。
[0003]基于日志结构合并树(Log

Structured Merge Tree,LSM

Tree)的非结构化数据库近年来成为了现代存储系统的基础设施,以键值存储的形式对外提供关键的数据存储服务。基于日志结构合并树的存储系统充分考虑了存储设备顺序读写性能远好于随机读写性能的特性,采用内存延迟批量写入的方式获得了较高的写性能,广泛应用于写密集的应用场景中。
[0004]日志结构合并树虽然可以提供优异的写性能,但因为需要在后台不断地进行合并操作及时地删除过期数据并保证存储设备上数据的有序性,导致日志结构合并树的读性能相比于写性能较低,不足以应用到更广泛的读写混合场景。其次,如今的应用负载常常包含数据热点,即少部分数据占据了大部分的请求访问,而现有的日志结构合并树并没有考虑到负载的热点特征,且还会因为合并操作使得热点数据在存储设备上反复读写,和前台的用户请求争用内部服务器资源,造成读写性能的下降。
[0005]总的来说,现有的基于日志结构合并树的存储系统,读写性能有待进一步提高。

技术实现思路

[0006]针对现有技术的缺陷和改进需求,本专利技术提供了一种热点感知的日志结构合并树读写性能优化方法及相关设备,其目的在于,对日志结构合并树的读写性能进行优化。
[0007]为实现上述目的,按照本专利技术的一个方面,提供了一种热点感知的日志结构合并树读写性能优化方法,包括:
[0008]在内存中维护粗粒度缓存和细粒度缓存,分别以数据块和键值对为粒度对系统中最近被访问的数据进行缓存;
[0009]并且,用于查询目标键值对的点查询操作,其执行包括:
[0010](R1)在细粒度缓存中查询目标键值对,若查询成功,则转入步骤(R4);否则,转入步骤(R2);
[0011](R2)按照写缓冲、只读写缓冲、粗粒度缓存以及日志结构合并树的顺序依次访问各组件,直至查询到目标键值对,若在所有组件中均未查询到目标键值对,则点查询操作结束;否则,转入步骤(R3);
[0012](R3)将查询到的键值对缓存到细粒度缓存中;若目标键值对在日志结构合并树中被查询到,则将目标键值对所在数据块缓存到粗粒度缓存中;
[0013](R4)返回查询到的键值对,点查询操作结束。
[0014]进一步地,细粒度缓存中还维护有脏数据队列,用于记录细粒度缓存中因更新而产生的脏数据;
[0015]并且,写操作的执行包括:
[0016](W1)将待写入的键值对写入写前日志中;
[0017](W2)判断待写入的键值对是否位于细粒度缓存,若是,则通过就地更新的方式将待写入的键值对写入细粒度缓存,并将待写入数据记录到脏数据队列中,设置对应的脏数据标识位,之后转入步骤(W3);否则,将待写入的键值对写入写缓冲,之后转入步骤(W3);
[0018](W3)返回更新结果,写操作结束。
[0019]进一步地,用于查询指定范围内的键值对的范围查询操作,其执行包括:
[0020](S1)若脏数据队列不为空,则对细粒度缓存中的所有脏数据进行批量读取并排序后,批量写入写缓冲,之后转入步骤(S2);否则,直接转入步骤(S2);
[0021](S2)从写缓冲、只读写缓冲中读取位于指定范围内的键值对,并确定日结结构合并树中与指定范围存在键值范围重叠的数据块,若数据块中已缓存到粗粒度缓存,则从粗粒度缓存中读取相应数据块,否则,从日志结构合并树中读取数据块并缓存至粗粒度缓存中;从所读取的数据块中读取位于指定范围内的键值对;
[0022](S4)对所读取到的键值对进行合并,返回合并后的键值对集合,范围查询操作结束。
[0023]进一步地,粗粒度缓存被划分为多个第一分区,各第一分区中采用哈希表管理数据块;细粒度缓存被划分为多个第二分区,各第二分区中采用哈希表管理键值对。
[0024]进一步地,日志结构合并树的合并操作包括:
[0025]确定日志结构合并树中需要发起合并的层次,计算该层次中各数据表的热度,选取其中热度最小的数据表发起合并操作;
[0026]其中,数据表的热度为数据表中所有数据块的热度之和;数据块的热度为数据块中所有键值对的热度之和。
[0027]进一步地,日志结构合并树中,键值对的热度计算方式包括:
[0028]判断键值对是否位于细粒度缓存,若是,则将其读热度设置为s
r
,否则,将其读热度设置为0;s
r
>0;
[0029]判断键值对是否在之前的合并操作中被丢弃过,若是,则将其写热度设置为s
w
,否则,将其写热度设置为0;s
w
>0;
[0030]将键值对的读热度和写热度之和作为键值对的热度。
[0031]进一步地,日志结构合并树的合并操作还包括:
[0032]对于在合并过程中产生的新的数据块,计算各数据块的热度以及平均热度,选取热度大于平均热度的数据块,替换粗粒度缓存中因为合并而失效的数据块。
[0033]进一步地,日志结构合并树的合并操作还包括:
[0034]对于日志结构合并树中需要合并的键值对,若在细粒度缓存、写缓冲或只读写缓冲中已经缓存了更新版本的数据,则将该键值对丢弃。
[0035]按照本专利技术的另一个方面,提供了一种存储控制器,包括:计算机可读存储介质和处理器;计算机可读存储介质中存储有计算机程序;处理器用于读取计算机可读存储介质中的计算机程序,执行本专利技术提供的上述热点感知的日志结构合并树读写性能优化方法。
[0036]按照本专利技术的又一个方面,提供了一种基于日志结构合并树的存储系统,包括:内存、存储设备以及本专利技术提供的上述存储控制器。
[0037]总体而言,通过本专利技术所构思的以上技术方案,能够取得以下有益效果:
[0038](1)本专利技术提供的热点感知的日志结构合并树读写性能优化方法及相关设备,在内存中维护了双重粒度缓存,即粗粒度缓存和细粒度缓存,二者分别以数据块和键值对为粒度进行数据缓存,其中的细粒度缓存用于缓存最近被访问的键值对,并且作为服务点查询请求的第一个组件,基于键值对访问的时间局部性,点查询操作将很大概率上命中细粒度缓存,无需进一步访问其他组件,因此,本专利技术能够充分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种热点感知的日志结构合并树读写性能优化方法,其特征在于,包括:在内存中维护粗粒度缓存和细粒度缓存,分别以数据块和键值对为粒度对系统中最近被访问的数据进行缓存;并且,用于查询目标键值对的点查询操作,其执行包括:(R1)在所述细粒度缓存中查询所述目标键值对,若查询成功,则转入步骤(R4);否则,转入步骤(R2);(R2)按照写缓冲、只读写缓冲、所述粗粒度缓存以及所述日志结构合并树的顺序依次访问各组件,直至查询到所述目标键值对,若在所有组件中均未查询到所述目标键值对,则点查询操作结束;否则,转入步骤(R3);(R3)将查询到的键值对缓存到所述细粒度缓存中;若所述目标键值对在所述日志结构合并树中被查询到,则将所述目标键值对所在数据块缓存到所述粗粒度缓存中;(R4)返回查询到的键值对,点查询操作结束。2.如权利要求1所述的热点感知的日志结构合并树读写性能优化方法,其特征在于,所述细粒度缓存中还维护有脏数据队列,用于记录细粒度缓存中因更新而产生的脏数据;并且,写操作的执行包括:(W1)将待写入的键值对写入写前日志中;(W2)判断待写入的键值对是否位于所述细粒度缓存,若是,则通过就地更新的方式将待写入的键值对写入所述细粒度缓存,并将待写入数据记录到所述脏数据队列中,并设置对应的脏数据标志位,之后转入步骤(W3);否则,将待写入的键值对写入所述写缓冲,之后转入步骤(W3);(W3)返回更新结果,写操作结束。3.如权利要求2所述的热点感知的日志结构合并树读写性能优化方法,其特征在于,用于查询指定范围内的键值对的范围查询操作,其执行包括:(S1)若所述脏数据队列不为空,则对所述细粒度缓存中的所有脏数据进行批量读取并排序后,批量写入所述写缓冲,之后转入步骤(S2);否则,直接转入步骤(S2);(S2)从所述写缓冲、所述只读写缓冲中读取位于所述指定范围内的键值对,并确定所述日结结构合并树中与所述指定范围存在键值范围重叠的数据块,若数据块中已缓存到所述粗粒度缓存,则从所述粗粒度缓存读取相应数据块,否则,从所述日志结构合并树中读取数据块并缓存至所述粗粒度缓存中;从所读取的数据块中读取位于所述指定范围内的键值对;(S4)对所读取到的键值对进行合并,返回合并后的键值对集合,范围查询操作结束。4.如权利要...

【专利技术属性】
技术研发人员:王芳冯丹张健顺董超
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1