应用于跳跃表重复索引数据的范围查询方法及装置制造方法及图纸

技术编号:37466090 阅读:21 留言:0更新日期:2023-05-06 09:40
本发明专利技术公开了应用于跳跃表重复索引数据的范围查询方法,包括:在存储数据中的同一个Key值进行多次修改操作时,针对每次修改操作按序分配修改序号seq,生成操作记录(key,seq);将操作记录(key,seq)写入到跳跃表中,在生成节点时,针对相同key值的操作记录赋值起始指针f i rst和结束指针l ast,起始指针f i rst指向相同key值操作记录(key,seq)中修改序号seq最小的节点,结束指针l ast指向相同key值操作记录(key,seq)中修改序号seq最大的节点;在进行范围查询时,根据查询key值在跳跃表中查找对应的节点,基于起始指针f i rst和结束指针l ast定位到查询key值的查询范围。本发明专利技术提出了起始指针f i rst和结束指针l ast解决重复索引key值内部的管理方案,优化了传统跳跃表在大量重复索引key值的范围查询的性能。能。能。

【技术实现步骤摘要】
应用于跳跃表重复索引数据的范围查询方法及装置


[0001]本专利技术存储
,具体的涉及应用于跳跃表重复索引数据的范围查询方法及装置。

技术介绍

[0002]存储领域中,LSM树是一种存储引擎技术,LSM树:LSM树全称是Log Structured Merge Tree,是一种分层、有序、面向磁盘的数据结构。LSM树把增量的修改操作全部记录下来,等到一定大小后,将这些修改操作批量应用到磁盘中。这些增量的修改操作,先是记录在内存中,之后增长到某个设定值后才会应用到磁盘。跳跃表是LSM树中常用的一种内存索引,这些增量的修改操作填充到跳跃表中,可提供基于key值的查询和范围操作。实际应用中有一种这样的场景,对同一个key值大量的set/incr操作,这些修改操作会全部记录到内存中。当调用范围查询时,会在第L0层进行前向/后向指针的遍历,当同一个key值有很多的记录时,这些记录条目的遍历是相当耗时的。
[0003]具体地,LSM树存储引擎会为每一个修改操作分配一个修改序号seq,来区分对同一个key值的多次操作。分配的策略是从1开始顺序增本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.应用于跳跃表重复索引数据的范围查询方法,其特征在于,包括:在存储数据中的同一个Key值进行多次修改操作时,针对每次修改操作按序分配修改序号seq,生成操作记录(key,seq);将所述操作记录(key,seq)写入到跳跃表中,在生成节点时,针对相同key值的操作记录赋值起始指针first和结束指针last,起始指针first指向相同key值操作记录(key,seq)中修改序号seq最小的节点,结束指针last指向相同key值操作记录(key,seq)中修改序号seq最大的节点;在进行范围查询时,根据查询key值在所述跳跃表中查找对应的节点,基于起始指针first和结束指针last定位到查询key值的查询范围。2.根据权利要求1所述的应用于跳跃表重复索引数据的范围查询方法,其特征在于,将所述操作记录(key,seq)写入到跳跃表中,在生成节点时,针对相同key值的操作记录赋值起始指针first和结束指针last包括:根据修改序号seq将所述操作记录(key,seq)写入到跳跃表中,新生成节点;检查当前新生成节点的key值与前向节点的key值是否相同;若不相同,则忽略起始指针first和结束指针last的赋值;若相同,则获取前向节点的起始指针first,赋值为当前新生成节点的起始指针first,获取起始指针first指向的起始节点,将起始节点的结束指针last修改为当前新生成节点。3.根据权利要求2所述的应用于跳跃表重复索引数据的范围查询方法,其特征在于,包括:起始节点(key,seq1)新生成时,跳跃表不进行起始指针first和结束指针last的赋值;当新生成节点(key,seq2)的key值与起始节点的key值相同,且新生成节点(key,seq2)的前向指针指向起始节点(key,seq1);则向新生成节点(key,seq2)赋值起始指针first,所述起始指针first指向起始节点(key,seq1),向起始节点(key,seq1)赋值结束指针last,所述的结束指针last指向新生成节点(key,seq2)。4.根据权利要求3所述的应用于跳跃表重复索引数据的范围查询方法,其特征在于,包括:当新生成节点(key,seqn)的key值与起始节点的key值相同,新生成节点(key,seqn)与起始节点(key,seq1)之间具有中间节点(key,seq2),

,(key,seqn

1),且新生成节点(key,seqn)的前向指标指向中间节点(key,seqn

1),后一中间节点的前向指标指向前一中间节点;则向新生成节点(key,seqn)赋值起始指针first,所述起始指针first指向起始节点(key,seq1),修改起始节点(key,seq1)的结束指针last指向新生成节点(key,seqn)。5.根据权利要求1所述的应用于跳跃表重复索引数据的范围查询方法,其特征在于,所述在进行范围查询时,根据查询key值在所述跳跃表中查找对应的节点,基于起始指针first和结束指针last定位到查询key值的查询范围包括:根据查询ke...

【专利技术属性】
技术研发人员:徐锐波幸福卢文伟刘方
申请(专利权)人:北京云思智学科技有限公司
类型:发明
国别省市:

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

1