[发明专利]一种KV存储实现方法和装置在审
申请号: | 201510881687.9 | 申请日: | 2015-12-03 |
公开(公告)号: | CN105426131A | 公开(公告)日: | 2016-03-23 |
发明(设计)人: | 胡波 | 申请(专利权)人: | 成都华为技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 广州三环专利代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 610041 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 kv 存储 实现 方法 装置 | ||
技术领域
本发明涉及存储技术领域,尤其涉及一种键值(Key-Value,KV)存储实现方法和装置
背景技术
KV存储技术是目前应用十分广泛的存储技术,其中,目前KV存储技术中写入的流程如下:
用户发起一个键(Key)的写入申请,在存储介质中查找空闲地址,将该Key的值(Value)写入该空闲地址,再将Key和地址信息写入索引区;
KV存储技术中的读取的流程如下:
用户发起一个Key的读取申请,在索引区查找该Key对应的地址信息并读取该地址信息,在该地址信息对应的地址中读取该Key对应的Value。
通过上述可知,在目前的KV存储技术中写入的流程中至少会存在两次写操作,而在上述读取的流程中至少会存在两次读操作。可见,目前的KV存储技术中存在输入/输出((Input/Output,IO)操作次数过多的问题。
发明内容
本发明实施例提供了一种KV存储实现方法和装置,可以减少KV存储技术中IO操作次数。
第一方面,本发明实施例提供一种KV存储实现方法,包括:
当需要对第一KV进行存储时,对所述第一KV的键Key进行特定运算,获取运算结果;
将所述第一KV的值Value存储至存储介质中所述运算结果匹配的存储地址;
当需要对所述第一KV进行读取时,对所述第一KV的Key进行所述特定运算,获取所述运算结果;
在所述存储介质中所述运算结果匹配的所述存储地址中读取所述第一KV的Value。
该实现方式中,可以实现在对KV进行存储和读取操作时都只进行一次IO操作,从而可以减少KV存储技术中IO操作次数。
在第一方面的第一种可能的实现方式中,所述方法还可以包括如下步骤:
将所述存储介质按照地址空间划分为若干个存储地址,并为每个存储地址分配一个标识,其中,所述运算结果匹配的存储地址包括标识与所述运算结果匹配的存储地址。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:
当需要对第二KV进行存储时,对所述第二KV的Key进行所述特定运算,获取运算结果;
当对所述第二KV的Key进行所述特定运算的运算结果匹配的存储地址存储有Value时,查找所述存储介质的空闲存储地址,并将所述第二KV的Value存储至所述空闲存储地址;
将所述空闲存储地址的地址信息添加至对所述第二KV的Key进行所述特定运算的运算结果匹配的存储地址的特定位置;
当需要对所述第二KV进行读取时,对所述第二KV的Key进行所述特定运算,获取运算结果;
在对所述第二KV的Key进行所述特定运算的运算结果匹配的存储地址的特定位置读取所述空闲存储地址,并在所述空闲存储地址读取所述第二KV的Value。
该实现方式中,可以实现当第一KV和第二KV在运算时冲突,即第一KV的运算结果和第二KV的运算结果匹配同一存储地址时,可以将第二KV的Value空闲存储地址中,以解决冲突问题。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述查找存储介质的空闲存储地址,并将所述第二KV的Value存储至所述空闲存储地址,包括:
在所述存储介质的特定区域中查找空闲存储地址,并将所述第二KV的Value存储至所述空闲存储地址,其中,所述特定区域为所述存储介质中预先设置的用于存储运算结果冲突的KV的Value。
该实现方式中,可以实现设置一个特定区域专门用于存储运算结果冲突的KV的Value,以减少冲突问题,因为该特定区域的存储地址可以是不与任意KV的运算结果匹配。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述对所述第一KV的Key进行特定运算,获取运算结果,包括:
使用预先设置的公式对所述第一KV的Key进行运算,获取运算结果;或者
使用预先设置的公式对所述第一KV的Key和所述存储介质的参数进行运算,获取运算结果。
第二方面,本发明实施例提供一种KV存储实现装置,包括:第一运算单元、存储单元、第二运算单元和读取单元,其中:
所述第一运算单元,用于当需要对第一KV进行存储时,对所述第一KV的键Key进行特定运算,获取运算结果;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都华为技术有限公司,未经成都华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510881687.9/2.html,转载请声明来源钻瓜专利网。