System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向元数据稀疏分布的LSM数据组织方法及装置制造方法及图纸_技高网

一种面向元数据稀疏分布的LSM数据组织方法及装置制造方法及图纸

技术编号:41404005 阅读:3 留言:0更新日期:2024-05-20 19:29
本发明专利技术公开了一种面向元数据稀疏分布的LSM数据组织方法及装置。本发明专利技术使用动态分区组织排序字符串表,具体先对键值对数据的键名进行聚类分析得到键名群组,然后修剪键名群组形成键值对分区,将键值对数据刷写进对应的键值对分区内形成排序字符串表,各键值对分区独立进行合并排序操作,从而有效限制了元数据稀疏分布的排序字符串表的形成,进而大大减少参与合并排序过程的高层级排序字符串表数量,减少高层级排序字符串表反复参与合并排序操作的次数,检索键值对数据时,键值对分区进一步加快定位键值对数据,从而实现系统读写性能的提升。

【技术实现步骤摘要】

本专利技术属于数据存储,具体涉及一种面向元数据稀疏分布的日志结构合并(log structured merge,以下简称:lsm)数据组织方法及装置。


技术介绍

1、基于lsm的数据库将海量键值对数据的随机读写实现为内存随机读写、顺序刷盘和定期归并,充分利用磁盘顺序写性能高于随机写的特性,内存中的mutable memtable(以下称为:可变内存表)达到阈值时会转化为immutable memtable(以下称为:不可变内存表)状态,后续刷写进磁盘中。

2、键值对数据刷写进磁盘时,先刷写形成排序字符串表并放入低层级,然后随着合并排序操作,键值对数据逐层向上迁移。其中,合并排序操作会先从低层级中选取某个排序字符串表作为低层级排序字符串表输入,然后在相邻高层级中选取键控范围和低层级排序字符串表键控范围存在交集的排序字符串表,并作为高层级排序字符串表输入,在内存中完成键值对数据的合并排序,并再次刷写进高层级中。若键值对数据写入速度大于合并排序操作的速度,就会使得低层级延迟完成排序字符串表迁移,延迟释放空间,进而阻塞写入,因而合并排序操作的速度直接影响系统的写入速度。然而,当面对元数据稀疏分布的低层级排序字符串表时,即低层级排序字符串表所含键值对数据较少,但键值对数据的键名分布范围较广,这种情况下,小体积的低层级排序字符串表会导致大量的高层级排序字符串表参与合并排序操作,随着层级的增加,反复参与合并排序过程的高层级排序字符串表的数量更多,体积更大,这将占用大量磁盘带宽、cpu等系统资源,极大地影响了系统的读写性能。


技术实现思路

1、针对现有技术中存在的问题,本专利技术的目的在于提供一种面向元数据稀疏分布的lsm数据组织方法及装置,用以提高基于lsm的数据库的读写性能,减轻现有技术中存在的lsm数据结构下元数据稀疏分布的排序字符串表导致大量高层级排序字符串表反复参与合并排序过程,占用大量系统资源,降低系统读写性能的问题。

2、本专利技术使用动态分区组织排序字符串表,具体先对键值对数据的键名进行聚类分析得到键名群组,然后修剪键名群组形成键值对分区,将键值对数据刷写进对应的键值对分区内形成排序字符串表,各键值对分区独立进行合并排序操作,从而有效限制了元数据稀疏分布的排序字符串表的形成,进而大大减少参与合并排序过程的高层级排序字符串表数量,减少高层级排序字符串表反复参与合并排序操作的次数,检索键值对数据时,键值对分区进一步加快定位键值对数据,从而实现系统读写性能的提升。

3、本专利技术提供的具体技术方案如下:

4、第一方面,提出一种面向元数据稀疏分布的lsm数据组织方法,包括以下步骤:

5、1)当键值对数据刷写进磁盘过程中,首次触发将可变内存表转变为不可变内存表时,依据键名距离对不可变内存表中的键值对数据的键名进行聚类分析,得到若干键名群组;

6、2)对每一所述键名群组进行修剪,得到键值对分区,将位于所述键值对分区内的键值对数据刷写形成排序字符串表;

7、3)内存中预先划分出的一个分区作为键值对数据暂存区;将位于所述键值对分区之外的键值对数据统一存入位于内存区域的键值对数据暂存区中;

8、4)当键值对数据刷写进磁盘过程中,非首次将可变内存表转变为不可变内存表时,按键控范围大小排序列举出全部键值对分区,获取所述键值对分区的信息,包括:所述键值对分区的键控范围记为[a,b],所述键值对分区的扩增系数记为t,所述键值对分区的键控范围大小阈值记为r等;

9、5)检索不可变内存表中的键值对数据,将键名位于区间[a-t,b+t]中的键值对数据筛选出来,并刷写到对应的键值对分区中形成排序字符串表,更新所述键值对分区的键控范围等信息;

10、6)获取上述筛选所剩键值对数据与所述键值对数据暂存区中的键值对数据的键名,并进行聚类分析操作,再次得到新的键名群组;

11、7)依据所述新的键名群组修剪得到新的键值对分区,将位于所述新的键值对分区内的键值对数据刷写形成排序字符串表。

12、进一步的,步骤2)中所述依据所述键名群组修剪得到键值对分区,其中,所述键值对分区的键控范围左边界值为所述键名群组中的最小键,所述键值对分区的键控范围右边界值为所述键名群组中的最大键,若所述键值对分区的键控范围右边界值与左边界值的绝对差值超过所述键值对分区的键控范围大小阈值r,则依据所述键值对分区的键控范围大小阈值r对所述键值对分区的键控范围进行修剪,修剪方式为按键大小依次淘汰最小键,直至所述键值对分区的键控范围右边界值与左边界值的绝对差值保持在所述键值对分区的键控范围大小阈值r之内。

13、进一步的,步骤7)中所述依据所述新的键名群组修剪得到新的键值对分区,其中,不仅需要进行上述处理,从而使得所述新的键值对分区的键控范围右边界值与左边界值的绝对差值保持在所述键值对分区的键控范围大小阈值r之内,还需要确定所述新的键值对分区和已有键值对分区的键控范围之间不存在交集。其中每一所述键值对分区的键控范围大小阈值r都相同。

14、进一步的,步骤3)中所述位于内存区域的键值对数据暂存区,该暂存区使用高效的检索数据结构实现,例如散列表,无需考虑频繁更新元素的场景,只需支持快速检索即可,同时,所述键值对数据暂存区需要向外部模块提供快速获取暂存区内全量键值对数据的接口f和获取暂存区内全量键名的接口g,f接口内部只需返回暂存区中存储了全部按键名排序的键值对数据的列表,g接口内部只需要返回暂存区中存储了全部键名的列表。

15、进一步的,步骤5)中所述将键名位于区间[a-t,b+t]中的键值对数据筛选出来,其中,区间[a-t,b+t]的左右边界值需要视情况调整,若当前筛选的键值对的键名所在的键值对分区i存在前一键值对分区j,则所述区间的左边界值a-t需要大于所述键值对分区j的键控范围右边界值,若所述键值对分区i存在后一键值对分区k,则所述区间右边界值b+t需要小于所述键值对分区k的键控范围左边界值,且所述区间的大小b-a+2*t需要保持在所述键值对分区的键控范围大小阈值r之内。

16、第二方面,提出一种面向元数据稀疏分布的lsm数据组织装置,包括:

17、键名获取模块,用于获取不可变内存表中键值对数据的键名,或者获取给定批量键值对数据的键名,包括获取步骤1)中所述不可变内存表中的键值对数据的键名,获取步骤6)中所述筛选所剩键值对数据的键名,获取步骤6)中所述键值对数据暂存区中的键值对数据的键名;

18、键名聚类分析模块,用于对批量键名做聚类分析得到键名群组,并进一步处理得到键值对分区,具体会依据所述键值对分区的键控范围大小阈值r和已有键值对分区对键名群组进行修剪,从而使其满足:1)所述键值对分区的键控范围右边界值与左边界值的绝对差值保持在所述键值对分区的键控范围大小阈值r之内;2)键值对分区和已有键值对分区的键控范围不存在交集,同时,模块内部支持定义满足业务需求的键名距离度量标准,支持配置具有本文档来自技高网...

【技术保护点】

1.一种面向元数据稀疏分布的LSM数据组织方法,其步骤包括:

2.根据权利要求1所述的方法,其特征在于,对每一所述键名群组进行修剪的方法为:将所述键名群组中的最小键作为对应键值对分区的键控范围左边界值,将所述键名群组中的最大键作为所述键值对分区的键控范围右边界值;若所述键值对分区的键控范围右边界值与左边界值的绝对差值超过所述键值对分区的键控范围大小阈值R,则依据所述键值对分区的键控范围大小阈值R对所述键值对分区的键控范围进行修剪,修剪方式为按键大小依次淘汰最小键,直至所述键值对分区的键控范围右边界值与左边界值的绝对差值保持在所述键值对分区的键控范围大小阈值R之内。

3.根据权利要求1或2所述的方法,其特征在于,所述新的键值对分区的键控范围右边界值与左边界值的绝对差值保持在所述键值对分区的键控范围大小阈值R之内,且所述新的键值对分区和已有键值对分区的键控范围之间不存在交集。

4.根据权利要求1所述的方法,其特征在于,所述键值对数据暂存区使用设定的检索数据结构实现,应用支持快速检索;所述键值对数据暂存区向外部模块提供获取暂存区内全量键值对数据和全量键名的接口。

5.根据权利要求1所述的方法,其特征在于,将键名位于区间[A-T,B+T]中的键值对数据筛选出来的过程中,若当前筛选的键值对的键名所在的键值对分区i存在前一键值对分区j,则所述区间的左边界值A-T需要大于所述键值对分区j的键控范围右边界值,若所述键值对分区i存在后一键值对分区k,则所述区间右边界值B+T需要小于所述键值对分区k的键控范围左边界值,且所述区间的大小B-A+2*T需要保持在所述键值对分区的键控范围大小阈值R之内。

6.根据权利要求1所述的方法,其特征在于,当存在多个所述不可变内存表时,使用刷写队列管理所述不可变内存表。

7.一种面向元数据稀疏分布的LSM数据组织装置,其特征在于,包括

8.一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1至6任一所述方法中各步骤的指令。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一所述方法的步骤。

...

【技术特征摘要】

1.一种面向元数据稀疏分布的lsm数据组织方法,其步骤包括:

2.根据权利要求1所述的方法,其特征在于,对每一所述键名群组进行修剪的方法为:将所述键名群组中的最小键作为对应键值对分区的键控范围左边界值,将所述键名群组中的最大键作为所述键值对分区的键控范围右边界值;若所述键值对分区的键控范围右边界值与左边界值的绝对差值超过所述键值对分区的键控范围大小阈值r,则依据所述键值对分区的键控范围大小阈值r对所述键值对分区的键控范围进行修剪,修剪方式为按键大小依次淘汰最小键,直至所述键值对分区的键控范围右边界值与左边界值的绝对差值保持在所述键值对分区的键控范围大小阈值r之内。

3.根据权利要求1或2所述的方法,其特征在于,所述新的键值对分区的键控范围右边界值与左边界值的绝对差值保持在所述键值对分区的键控范围大小阈值r之内,且所述新的键值对分区和已有键值对分区的键控范围之间不存在交集。

4.根据权利要求1所述的方法,其特征在于,所述键值对数据暂存区使用设定的检索数据结构实现,应用支持快速检索;所述键值对数据暂存区向外部模块提供获取暂存区内全量键值对数据和全...

【专利技术属性】
技术研发人员:李斌斌陈如阳贾思宇丁煜
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

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

1