Lsm数据合并排序方法和装置的制造方法_3

文档序号:9375675阅读:来源:国知局
进行合并排序操作。
[0053]S303:判断是否存在存储的数据大小是否超过预设阈值的级;若存在,执行S304,若不存在,执行S305。
[0054]S304:对存储的数据大小超过预设阈值的级的某个键范围的SSTable与下一级的同一键范围内的SSTable进行合并排序操作。
[0055]具体地,可以按照轮询的规则确定将哪个键范围内的SSTable与下一级的同一键范围内的SSTable进行合并排序操作;也可以根据键值相似度确定两级之间相似度最高的一对SSTable进行合并排序操作。优选后者,本发明对此不做限制。
[0056]S305:判断是否存在允许磁盘寻道次数值最小的键范围,若存在,执行S306,若不存在,执行S307。
[0057]S306:将允许磁盘寻道次数值最小的键范围的SSTable与下一级的同一键范围内的SSTable进行合并排序操作。
[0058]S307:获取相邻两级之间键值相似度最高的一对SSTable。
[0059]S308:对上述一对SSTable进行合并排序操作。
[0060]S307和S308的具体描述可以参见图2所示实施例的具体描述,在此不再赘述。
[0061]本实施例中,通过结合相邻两级之间键值相似度,确定进行合并排序操作的SSTab I e,能够最早最多的删除旧版本的键值,避免旧版本的键值在存储设备中存储较长时间,占用存储空间,从而,提闻存储空间的利用率。
[0062]需要说明的是,在上述各实施例中,由于采用本发明的技术方案能够最早最多的删除旧版本的键值,避免旧版本的键值在存储空间中存储较长时间,也避免了与下级进行合并排序操作,从而减少了输入输出(input/output,以下简称:1/0)访问次数。
[0063]图4为本发明LSM数据合并排序装置实施例一的结构示意图,如图4所示,本实施例的装置包括获取模块401和处理模块402,其中,获取模块401用于获取相邻两级之间键值相似度最高的一对排序字符串表;处理模块402用于对所述一对排序字符串表进行合并排序操作。
[0064]在上述实施例中,获取模块401具体用于以预设时间间隔获取相邻两级之间键值相似度最高的一对排序字符串表。
[0065]在上述实施例中,所述获取模块401具体用于判断所述相邻两级中的上一级存储的数据大小是否超过预设阈值;当所述相邻两级中的上一级存储的数据大小超过预设阈值时,则获取相邻两级之间键值相似度最高的一对排序字符串表。
[0066]在上述实施例中,所述处理模块402具体用于从所述一对排序字符串表的相同的键值中确定旧版本的键值;将所述旧版本的键值删除;对删除所述旧版本之后的所述一对排序字符串表中的各键值进行排序。
[0067]上述实施例的装置对应的可用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。
[0068]图5为本发明LSM数据合并排序装置实施例二的结构示意图,如图5所示,本实施例的装置至少包括:处理器501、存储器502、通信接口 503和总线504。其中,所述处理器501、所述存储器502和所述通信接口 503通过所述总线504通信。
[0069]所述存储器502用于存放程序。具体的,程序中可以包括程序代码,所述程序代码包括计算机执行指令。所述存储器502可以为高速RAM存储器,也可以为非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0070]所述处理器501用于执行所述存储器502存储的执行指令,可能为单核或多核CPU,或者为ASIC,或者为被配置成实施本发明实施例的一个或多个集成电路。
[0071]所述通信接口 503用于与转发设备进行通信。当LSM数据合并排序装置运行时,处理器501运行程序,以执行以下指令:
[0072]获取相邻两级之间键值相似度最高的一对排序字符串表;
[0073]对所述一对排序字符串表进行合并排序操作。
[0074]本发明实施例的装置可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0075]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0076]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种LSM数据合并排序方法,其特征在于,包括: 获取相邻两级之间键值相似度最闻的一对排序字符串表; 对所述一对排序字符串表进行合并排序操作。2.根据权利要求1所述的方法,其特征在于,所述获取相邻两级之间键值相似度最高的一对排序字符串表,包括: 以预设时间间隔获取相邻两级之间键值相似度最闻的一对排序字符串表。3.根据权利要求1所述的方法,其特征在于,所述获取相邻两级之间键值相似度最高的一对排序字符串表,包括: 判断所述相邻两级中的上一级存储的数据大小是否超过预设阈值; 当所述相邻两级中的上一级存储的数据大小超过预设阈值时,则获取相邻两级之间键值相似度最高的一对排序字符串表。4.根据权利要求1?3任一项所述的方法,其特征在于,所述对所述一对排序字符串表进行合并排序操作,包括: 从所述一对排序字符串表的相同的键值中确定旧版本的键值; 将所述旧版本的键值删除; 对删除所述丨H版本之后的所述一对排序字符串表中的各键值进行排序。5.一种LSM数据合并排序装置,其特征在于,包括: 获取t旲块,用于获取相邻两级之间键值相似度最闻的一对排序字符串表; 处理模块,用于对所述一对排序字符串表进行合并排序操作。6.根据权利要求5所述的装置,其特征在于,所述获取模块具体用于以预设时间间隔获取相邻两级之丨司键值相似度最闻的一对排序字符串表。7.根据权利要求5所述的装置,其特征在于,所述获取模块具体用于判断所述相邻两级中的上一级存储的数据大小是否超过预设阈值;当所述相邻两级中的上一级存储的数据大小超过预设阈值时,则获取相邻两级之间键值相似度最闻的一对排序字符串表。8.根据权利要求5?7任一项所述的装置,其特征在于,所述处理模块具体用于从所述一对排序字符串表的相同的键值中确定旧版本的键值;将所述旧版本的键值删除;对删除所述旧版本之后的所述一对排序字符串表中的各键值进行排序。
【专利摘要】本发明实施例提供一种LSM数据合并排序方法和装置,通过利用相邻两级之间SSTable的相似度,对相邻两级中键值相似度最高的一对SSTable进行合并排序操作,因为,键值相似度最高的一对SSTable内存在相同的键值最多,也就是存在键值的旧版本最多,因此,根据键值相似度确定进行合并排序操作的SSTable,能够最早最多的删除旧版本的键值,避免旧版本的键值在存储设备中存储较长时间,占用存储空间,从而,提高存储空间的利用率。
【IPC分类】G06F17/30
【公开号】CN105095287
【申请号】CN201410204080
【发明人】岳银亮, 张子刚, 潘锋烽, 刘扬宽
【申请人】华为技术有限公司, 中国科学院计算技术研究所
【公开日】2015年11月25日
【申请日】2014年5月14日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1