基于多级索引的KV数据写入读取方法、装置及存储介质制造方法及图纸

技术编号:33289350 阅读:33 留言:0更新日期:2022-05-01 00:04
本发明专利技术公开了基于多级索引的KV数据写入读取方法、装置及存储介质,所述基于多级索引的KV数据写入读取方法包括KV数据写入流程,所述KV数据写入流程包括:针对KV数据的key做哈希运算,得到key的哈希值hash(key);根据所述哈希值hash(key)选择对应的B族树;判断KV数据的value值是否超过预设阈值;若判断结果为否,则将KV数据直接存储在对应的B族树中;若判断结果为是,则将KV数据存储在哈希索引bithash文件中。本发明专利技术通过B族树和哈希索引bithash文件的组合,通过多级索引,可以实现O(1)的时间复杂度,在保证写操作性能不弱化的前提下,极大的提升了读操作效率,提供了一种性能更优的KV数据库存储引擎,适用于在大量读操作的场景。景。景。

【技术实现步骤摘要】
基于多级索引的KV数据写入读取方法、装置及存储介质


[0001]本专利技术涉及数据库存储
,具体的涉及基于多级索引的KV数据写入读取方法、装置及存储介质。

技术介绍

[0002]KV数据库是指Key

value数据库,是一种以键值对存储数据的一种数据库。而为了提高数据库的查询速度,需要针对数据库建立数据库索引,针对KV数据库比较常见的三种数据库索引的数据结构:哈希表、有序数组和搜索树。
[0003]哈希表里面存储的是key

value键值对。利用哈希表来存储索引的话,得先利用哈希函数把key换算成数组中对应的一个Index位置,然后把value放在这个位置,如果多个key换算后得到了相同的index,那么就在这里追加一条链表,存储哈希值相同的key

value对象。如果给你一个指定的key让你查询对应的value,需要先根据哈希函数换算数组的index值,如果该位置有多个值,那么遍历链表即可。哈希表的缺点很明显,由于哈希表是无序的,所以哈希索引做区间查询的速度是很慢的。<本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.基于多级索引的KV数据写入读取方法,其特征在于,包括KV数据写入流程,所述KV数据写入流程包括:针对KV数据的key做哈希运算,得到key的哈希值hash(key);根据所述哈希值hash(key)选择对应的B族树;判断KV数据的value值是否超过预设阈值;若判断结果为否,则将KV数据直接存储在对应的B族树中;若判断结果为是,则将KV数据存储在哈希索引bithash文件中。2.根据权利要求1所述的基于多级索引的KV数据写入读取方法,其特征在于,所述将KV数据存储在哈希索引bithash文件中包括:所述哈希索引bithash文件包括数据区、哈希hash区以及位图bitmap区;将KV数据写到哈希索引bithash文件的数据区,记录在数据区的偏移和大小S[offset+size];计算KV数据中key的哈希值hash(key),更新位图bitmap区中位图bitmap中哈希值hash(key)对应的第hashID位的bit值;所述hashID,key,S[offset+size]作为key

value数据写入时的哈希索引记录,并将所述哈希索引记录写入在哈希索引bithash文件中对应分区中。3.根据权利要求2所述的基于多级索引的KV数据写入读取方法,其特征在于,所述哈希索引bithash文件包括:校验区:使用循环校验码对数据区做数据校验;冲突区:用于存放具有相同哈希值的key及其在数据区的偏移和数据大小;以及注脚区:定长存储数据区、校验区、冲突区、哈希hash区、bitmap区的偏移和大小。4.根据权利要求1或2所述的基于多级索引的KV数据写入读取方法,其特征在于,所述哈希索引bithash文件预设存储阈值,当哈希索引bithash文件存储的数据达到预设存储阈值,或者哈希索引bithash文件的剩余存储空间不足以存储新的KV数据,则新建所述哈希索引bithash文件。5.根据权利要求4所述的基于多级索引的KV数据写入读取方法,其特征在于,当判断所述KV数据的value值超过预设阈值,根据所述的哈希值hash(key)确定KV数据在所述B族树上的存储位置,并在该存储位置上存储哈希值hash(key)以及对应KV数据存储在所述哈希索引bithash文件中的索引信息。6.根据权利要求1所述的基于多...

【专利技术属性】
技术研发人员:徐锐波卢文伟幸福魏来
申请(专利权)人:瞰客信息科技上海有限公司
类型:发明
国别省市:

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

1