[发明专利]一种基于共享内存的键值对存储方法及装置在审
申请号: | 201310412659.3 | 申请日: | 2013-09-11 |
公开(公告)号: | CN103473314A | 公开(公告)日: | 2013-12-25 |
发明(设计)人: | 闫永涛 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 共享 内存 键值 存储 方法 装置 | ||
技术领域
本发明涉及键值对的数据存储,特别涉及一种基于共享内存的键值对存储方法及装置。
背景技术
NoSQL存储指非关系型数据库,它以键值对存储,结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,不局限于固定的结构,可以减少一些时间和空间的开销。
键值存储,即Key-Value存储,简称KV存储。它是NoSQL存储的一种方式。它的数据按照键值对的形式进行组织,索引和存储。KV存储非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。
关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。它不能满足以下“高”需求:对数据库高并发读写的需求;对海量数据的高效率存储和访问的需求;对数据库的高可扩展性和高可用性的需求。为了解决这类问题,以非关系数据库应运而生,而键值对存储又是非关系数据库性能最高的数据存储之一。
发明内容
本发明所要解决的技术问题是提供一种提高共享内存存储性能的基于共享内存的键值对存储方法及系统。
本发明解决上述技术问题的技术方案如下:一种基于共享内存的键值对存储方法,包括以下步骤:
步骤1:在共享内存中创建内存索引单元和内存数据块单元,所述内存索引单元用于存储key在内存数据块单元中相对数据存储区域首地址的偏移量,所述内存数据块单元用于存储value;
步骤2:采用散列算法计算value的哈希值;
步骤3:将哈希值作为key在内存索引单元中的相对数据存储区域首地址的偏移量;
步骤4:若偏移量为零,将value存储于内存数据块单元的起始位置,若偏移量大于零,执行步骤5;
步骤5:比较与偏移量对应的内存数据块单元中的存储位置处已有的value与待存储的value的长度,根据比较结果,将待存储的value存储在内存数据块单元中。
本发明的有益效果是:采用散列算法确定数据存储地址,并且数据的存储通过静态共享内存实现,无需动态分配,极大程度的提高了共享内存的存储性能。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,比较与偏移量对应的内存数据块单元中的存储位置处已存储的value的长度是否大于待存储的value,如若已存储的value的长度大于或等于待存储的value,将待存储的value覆盖已存储的value,否则,将待存储的value存储于内存数据块单元中数据存储区域的末尾。
进一步,所述value在内存数据块单元中的存储位置为内存数据块单元中数据存储区域的首地址加上偏移量。
进一步,一种基于共享内存的键值对存储装置,包括创建存储单元模块,计算哈希模块,偏移量模块,判断模块和比较存储模块;
所述创建存储单元模块,用于在共享内存中创建内存索引单元和内存数据块单元,所述内存索引单元用于存储key在内存数据块单元中相对数据存储区域首地址的偏移量,所述内存数据块单元用于存储value,将内存索引单元信息的信息和内存数据块单元的信息发送给比较存储模块;
所述计算哈希模块,用于采用散列算法计算value的哈希值,将哈希值发送给偏移量模块;
所述偏移量模块,用于接收哈希值,将哈希值作为key在内存索引单元中的相对数据存储区域首地址的偏移量,将偏移量发送给判断模块;
所述判断模块,用于接收偏移量,若偏移量为零,将value存储于内存数据块单元的起始位置,若偏移量大于零,执行比较存储模块;
所述比较存储模块,用于接收内存索引单元信息的信息和内存数据块单元的信息,比较与偏移量对应的内存数据块单元中的存储位置处已有的value与待存储的value的长度,根据比较结果,将待存储的value存储在内存数据块单元中。
采用上述进一步方案的有益效果是采用散列算法确定数据存储地址,并且数据的存储通过静态共享内存实现,无需动态分配,极大程度的提高了共享内存的存储性能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310412659.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于信息增益的手机阅读推荐方法及装置
- 下一篇:一种重复数据处理技术