[发明专利]数据的存取方法和装置有效
申请号: | 201510766796.6 | 申请日: | 2015-11-11 |
公开(公告)号: | CN105320775B | 公开(公告)日: | 2019-05-14 |
发明(设计)人: | 徐文平 | 申请(专利权)人: | 中科曙光信息技术无锡有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 北京新知远方知识产权代理事务所(普通合伙) 11397 | 代理人: | 艾凤英 |
地址: | 214000 江苏省无锡市菱湖*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种数据的存取方法和装置,属于数据库技术领域。所述方法包括:获取数据的存取方式和key;根据key的哈希值在内存的哈希跳表中或磁盘中的哈希索引区中确定数据的存取位置,其中,哈希索引区按变形B+树的方式建立;在数据的存取位置处根据存取方式存取数据。磁盘中的哈希值以变形B+树方式存储,哈希值存储提高了数据查找效率,变形B+树的方式增强了数据存储的扩展性,该种存取方式可以提高磁盘中数据查找效率,基于该种存取方式,本发明存取时,根据哈希值在内存或磁盘中确定数据的存取位置后,可以直接从所述存取位置存取数据,既降低了对内存配置的要求,又避免了现有技术中将数据读回至内存的步骤。 | ||
搜索关键词: | 数据 存取 方法 装置 | ||
【主权项】:
1.一种数据的存取方法,其特征在于,包括:获取数据的存取方式和所述数据的第一关键字key;计算所述第一key的第一哈希值;根据所述第一哈希值在内存的哈希跳表中或磁盘中的哈希索引区中确定所述数据的存取位置,所述哈希索引区按变形B+树的方式建立;在所述数据的存取位置处根据所述存取方式存取所述数据;其中,所述变形的B+树为每一层级中除最后一个节点外,其他节点都是满阶的B+树;所述方法,还包括:在内存中建立哈希跳表,所述哈希跳表用于存储数据的哈希值、key、value;获取哈希值范围,根据所述哈希值范围在所述磁盘中建立哈希索引区和数据区,所述数据区用于存储数据的key和value,所述哈希索引区用于存储索引,所述索引为数据的哈希值和数据在数据区的存储位置;所述在所述内存中建立哈希跳表之后,还包括:在所述内存中建立与所述哈希跳表关联的冲突哈希跳表,所述冲突哈希跳表用于存储冲突数据,所述冲突数据的哈希值与所述哈希跳表中哈希值相同,但所述冲突数据对应的key与所述哈希跳表中相同哈希值对应的key不同;所述根据所述第一哈希值在内存的哈希跳表中或磁盘的哈希索引区中确定所述数据的存取位置,包括:确定内存的哈希跳表中是否有与所述第一哈希值相同的第二哈希值;若哈希跳表中有与所述第一哈希值相同的第二哈希值,则确定所述第二哈希值对应的第二key是否与所述第一key相同;若第二key与所述第一key相同,则将所述第二哈希值对应数据值value的存储位置确定为所述数据的存取位置;若第二key与所述第一key不相同,则确定所述内存中是否有所述冲突哈希跳表;若所述内存中有冲突哈希跳表,则确定所述冲突哈希跳表中是否有与所述第一哈希值相同的第三哈希值;若所述冲突哈希跳表中有与所述第一哈希值相同的第三哈希值,则确定所述第三哈希值对应的第三key是否与所述第一key相同;若第三key与所述第一key相同,则将所述第三哈希值对应数据值value的存储位置确定为所述数据的存取位置;若第三key与所述第一key不相同,则根据所述存取方式从所述哈希跳表或哈希索引区中确定所述数据的存取位置;若所述冲突哈希跳表中未有与所述第一哈希值相同的第三哈希值,则根据所述存取方式从所述哈希跳表或哈希索引区中确定所述数据的存取位置;若所述内存中未有冲突哈希跳表,则根据所述存取方式从所述哈希跳表或哈希索引区中确定所述数据的存取位置;若哈希跳表中未有与所述第一哈希值相同的第二哈希值,则根据所述存取方式从哈希跳表或哈希索引区中确定所述数据的存取位置。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科曙光信息技术无锡有限公司,未经中科曙光信息技术无锡有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510766796.6/,转载请声明来源钻瓜专利网。
- 上一篇:一种应用程序推荐方法及装置
- 下一篇:消息异常度值的获取方法和装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置