【技术实现步骤摘要】
基于多级索引的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所述的基于多...
【专利技术属性】
技术研发人员:徐锐波,卢文伟,幸福,魏来,
申请(专利权)人:瞰客信息科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。