【技术实现步骤摘要】
应用于跳跃表重复索引数据的范围查询方法及装置
[0001]本专利技术存储
,具体的涉及应用于跳跃表重复索引数据的范围查询方法及装置。
技术介绍
[0002]存储领域中,LSM树是一种存储引擎技术,LSM树:LSM树全称是Log Structured Merge Tree,是一种分层、有序、面向磁盘的数据结构。LSM树把增量的修改操作全部记录下来,等到一定大小后,将这些修改操作批量应用到磁盘中。这些增量的修改操作,先是记录在内存中,之后增长到某个设定值后才会应用到磁盘。跳跃表是LSM树中常用的一种内存索引,这些增量的修改操作填充到跳跃表中,可提供基于key值的查询和范围操作。实际应用中有一种这样的场景,对同一个key值大量的set/incr操作,这些修改操作会全部记录到内存中。当调用范围查询时,会在第L0层进行前向/后向指针的遍历,当同一个key值有很多的记录时,这些记录条目的遍历是相当耗时的。
[0003]具体地,LSM树存储引擎会为每一个修改操作分配一个修改序号seq,来区分对同一个key值的多次操作。分配的策略是从1开始顺序增大,每一个修改操作都会使用新的修改序号seq。LSM树存储引擎会首先将这些修改操作记录到内存,通常用的是跳跃表,记录的格式如图1所示,跳跃表的基础数据结构:{prev,next},保存的是前向指针/后向指针。
[0004]a,写入流程:写入时,顺序将这些修改操作(key,seq)应用到跳跃表中,查找节点(该节点比该key+seq小,该节点的next节点比该key+seq ...
【技术保护点】
【技术特征摘要】
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...
【专利技术属性】
技术研发人员:徐锐波,幸福,卢文伟,刘方,
申请(专利权)人:北京云思智学科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。