一种索引数据的处理方法、装置及电子设备制造方法及图纸

技术编号:23764341 阅读:48 留言:0更新日期:2020-04-11 19:02
本申请公开了一种索引数据的处理方法、装置及电子设备,所述方法包括:接收数据处理请求,所述数据处理请求中至少包括:索引关键值;从索引树中的根节点开始,将所述索引树中的节点与所述索引关键值进行比对,直到查找到与所述索引关键值相匹配的目标叶子节点;其中,在所述索引树中查找所述目标叶子节点的过程中,对开始与所述索引关键值之间进行比对的节点加读锁,对结束与所述索引关键值之间的比对的节点释放所述读锁;对所述目标叶子节点加目标锁,所述目标锁的属性与所述数据处理请求的处理属性相对应;对所述目标叶子节点进行与所述数据处理请求对应的数据处理操作;对所述目标叶子节点释放所述目标锁。

An index data processing method, device and electronic equipment

【技术实现步骤摘要】
一种索引数据的处理方法、装置及电子设备
本申请涉及索引树
,尤其涉及一种索引数据的处理方法、装置及电子设备。
技术介绍
数据库在支持区间索引时,多采用b-tree结构,以及b+tree,r-tree,b-link_tree等相关变种。由于树在插入节点时,叶子节点可能会分裂,从而可能引起父节点的分裂,树的结构可能需要递归调整到根节点;树在删除节点时,叶子节点可能要合并,从而可能引起父节点的合并,树的结构可能需要递归调整到根节点。目前在对索引进行读写时,为保证索引准确性,需要通过一个读写锁,将整棵索引树锁住,读和读可以并发,一旦有写操作,其它的读和写操作都需要等待,并发性极低。
技术实现思路
有鉴于此,本申请提供一种索引数据的处理方法、装置及电子设备,用以解决现有技术中对索引树的索引数据处理时并发性较低的技术问题,如下:一种索引数据的处理方法,包括:接收数据处理请求,所述数据处理请求中至少包括:索引关键值;从索引树中的根节点开始,将所述索引树中的节点与所述索引关键值进行比对,直到查找到与所述本文档来自技高网...

【技术保护点】
1.一种索引数据的处理方法,其特征在于,包括:/n接收数据处理请求,所述数据处理请求中至少包括:索引关键值;/n从索引树中的根节点开始,将所述索引树中的节点与所述索引关键值进行比对,直到查找到与所述索引关键值相匹配的目标叶子节点;其中,在所述索引树中查找所述目标叶子节点的过程中,对开始与所述索引关键值之间进行比对的节点加读锁,对结束与所述索引关键值之间的比对的节点释放所述读锁;/n对所述目标叶子节点加目标锁,所述目标锁的属性与所述数据处理请求的处理属性相对应;/n对所述目标叶子节点进行与所述数据处理请求对应的数据处理操作;/n对所述目标叶子节点释放所述目标锁。/n

【技术特征摘要】
1.一种索引数据的处理方法,其特征在于,包括:
接收数据处理请求,所述数据处理请求中至少包括:索引关键值;
从索引树中的根节点开始,将所述索引树中的节点与所述索引关键值进行比对,直到查找到与所述索引关键值相匹配的目标叶子节点;其中,在所述索引树中查找所述目标叶子节点的过程中,对开始与所述索引关键值之间进行比对的节点加读锁,对结束与所述索引关键值之间的比对的节点释放所述读锁;
对所述目标叶子节点加目标锁,所述目标锁的属性与所述数据处理请求的处理属性相对应;
对所述目标叶子节点进行与所述数据处理请求对应的数据处理操作;
对所述目标叶子节点释放所述目标锁。


2.根据权利要求1所述的方法,其特征在于,所述索引树中的根节点和中间节点中至少包括第一指针、第二指针、第三指针和至少一个索引标记值,所述索引树中的叶子节点中至少包括索引标记值;
其中,所述索引树中处于同一层的节点的第一指针指向所属节点的右兄弟节点,所述索引树中每一层中最右节点的第一指针指向下一层最右节点;所述索引树中处于同一层的节点的第二指针指向所属节点被合并前的左兄弟节点,所述第三指针指向所属节点的子节点;每个所述节点具有读锁和写锁;
在所述索引树中的当前节点中的索引标记值的数量大于第一阈值时,所述当前节点根据所述索引标记值分裂出所述当前节点的新的右兄弟节点,所述当前节点的第一指针指向所述新的右兄弟节点,所述新的右兄弟节点的第一指针指向所述当前节点的原始的右兄弟节点,并对所述当前节点在所述索引树中的父节点中相应的节点数据进行插入处理,以所述父节点为当前节点,返回执行所述步骤在所述索引树中的当前节点中的索引标记值的数量大于所述第一阈值时,所述当前节点根据所述索引标记值分裂出所述当前节点的新的右兄弟节点,直到所述当前节点中的索引标记值的数量小于或等于所述第一阈值;
在所述索引树中的当前节点和其左兄弟节点的索引标记值的总数量小于第二阈值时,所述当前节点与其左兄弟节点进行合并,所述当前节点的第二指针指向所述当前节点的左兄弟节点,并对所述当前节点在所述索引树中的父节点中相应的节点数据进行删除处理,以所述父节点为当前节点,返回执行所述步骤在所述索引树中的当前节点和其左兄弟节点的索引标记值的总数量小于第二阈值时,所述当前节点与其左兄弟节点进行合并,直到所述当前节点和其左兄弟节点的索引标记值的总数量大于或等于第二阈值。


3.根据权利要求2所述的方法,其特征在于,在所述索引树中查找所述目标叶子节点,包括:
对所述索引树的根节点加读锁;
以所述根节点作为父节点,将所述父节点的索引标记值与所述索引关键值进行比对,以确定与所述索引关键值相匹配的子节点对应的第三指针;
利用所述子节点对应的第三指针,确定所述子节点;
对所述父节点释放所述读锁,并对所述子节点加读锁;
以所述子节点为父节点,返回执行所述将所述父节点的索引标记值与所述索引关键值进行比对的步骤,直到查找到与所述索引关键值相匹配的目标叶子节点。


4.根据权利要求3所述的方法,其特征在于,在对所述子节点加读锁之后,所述方法还包括:
判断所述子节点中的第二指针是否非空,如果非空,利用所述子节点的第二指针,确定所述子节点的左兄弟节点,对所述子节点释放所述读锁,并对所述子节点的左兄弟节点加读锁。


5.根据权利要求3所述的方法,其特征在于,在对所述子节点加读锁之后,所述方法还包括:
判断所述索引关键值是否大于所述子节点中的最大的索引标记值,如果是,利用所述子节点的第一指针,确定所述子节点的右兄弟节点,对所述子节点释放读锁,对所述子节点的右兄弟节点加读锁。


6.根据权利要求1所述的方法,其特征在于,对所述目标叶子节点加目标锁,包括:
对所述目标叶子节点加读锁;
其中,对所述目标叶子节点进行与所述数据处理请求对应的数据处理操作,包括:
获取所述目标叶子节点对应的索引数据中与所述数据处理请求对应的目标数据。


7.根据权利要求2所述的方法,其特征在于,对所述目标叶子节点加目标锁,包括:
对所述目标叶子节点加写锁;
其中,对所述目标叶子节点进行与所述数据处理请求对应的数据处理操作,至少包括:...

【专利技术属性】
技术研发人员:褚华兴张智佳宋凯曹升东龚岩
申请(专利权)人:亚信科技中国有限公司
类型:发明
国别省市:北京;11

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

1