[发明专利]一种实现数据加锁的方法及装置在审
申请号: | 201811360325.5 | 申请日: | 2018-11-15 |
公开(公告)号: | CN109446203A | 公开(公告)日: | 2019-03-08 |
发明(设计)人: | 程雨佳 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 哈希表 访问目标数据 目标数据块 数据加锁 数据锁 等待状态 分布存储 使用效率 数据块 线程 申请 | ||
1.一种实现数据加锁的方法,其特征在于,将哈希表划分为多个部分哈希表,每个所述部分哈希表设置有数据锁;所述方法包括:
将各个数据块分布存储在各个部分哈希表中;
当线程访问目标数据块时,确定所述目标数据块所在的部分哈希表;
判断所述目标数据块所在的部分哈希表的数据锁是否被占用,如果被占用,则进入等待状态,如果未被占用,则访问所述目标数据块。
2.根据权利要求1所述的方法,其特征在于,所述将各个数据块分布存储在各个部分哈希表中,包括:
利用哈希函数计算待存储数据块的标识的第一哈希值;
将所述第一哈希值对所述部分哈希表的总数量取模,得到所述待存储数据块对应的第一部分哈希表序号;
将所述待存储数据块存储到所述第一部分哈希表序号对应的部分哈希表中。
3.根据权利要求1所述的方法,其特征在于,所述将各个数据块分布存储在各个部分哈希表中,包括:
利用哈希函数计算待存储数据块的标识的第一哈希值,利用所述哈希函数计算所述第一哈希值的第二哈希值;
将所述第二哈希值对所述部分哈希表的总数量取模,得到所述待存储数据块对应的第二部分哈希表序号;
将所述待存储数据块存储到所述第二部分哈希表序号对应的部分哈希表中。
4.根据权利要求2所述的方法,其特征在于,所述确定所述目标数据块所在的部分哈希表,包括:
利用所述哈希函数计算所述目标数据块的标识的第三哈希值;
将所述第三哈希值对所述部分哈希表的总数量取模,得到所述目标数据块对应的第三部分哈希表序号,所述目标数据块对应的第三部分哈希表序号用于标识所述目标数据块所在的部分哈希表。
5.根据权利要求3所述的方法,其特征在于,所述确定所述目标数据块所在的部分哈希表,包括:
利用所述哈希函数计算所述目标数据块的标识的第三哈希值,利用所述哈希函数计算所述第三哈希值的第四哈希值;
将所述第四哈希值对所述部分哈希表的总数量取模,得到所述目标数据块对应的第四部分哈希表序号,所述目标数据块对应的第四部分哈希表序号用于标识所述目标数据块所在的部分哈希表。
6.一种实现数据加锁的装置,其特征在于,所述装置包括:
设置单元,用于将哈希表划分为多个部分哈希表,每个所述部分哈希表设置有数据锁;
存储单元,用于将各个数据块分布存储在各个部分哈希表中;
确定单元,用于当线程访问目标数据块时,确定所述目标数据块所在的部分哈希表;
判断单元,用于判断所述目标数据块所在的部分哈希表的数据锁是否被占用;
访问单元,用于如果所述判断单元的判断结果为被占用,则进入等待状态,如果所述判断单元的判断结果为未被占用,则访问所述目标数据块。
7.根据权利要求6所述的装置,其特征在于,所述存储单元包括:
第一计算子单元,用于利用哈希函数计算待存储数据块的标识的第一哈希值;
第一取模子单元,用于将所述第一哈希值对所述部分哈希表的总数量取模,得到所述待存储数据块对应的第一部分哈希表序号;
第一存储子单元,用于将所述待存储数据块存储到所述第一部分哈希表序号对应的部分哈希表中。
8.根据权利要求6所述的装置,其特征在于,所述存储单元包括:
第二计算子单元,用于利用哈希函数计算待存储数据块的标识的第一哈希值,利用所述哈希函数计算所述第一哈希值的第二哈希值;
第二取模子单元,用于将所述第二哈希值对所述部分哈希表的总数量取模,得到所述待存储数据块对应的第二部分哈希表序号;
第二存储子单元,用于将所述待存储数据块存储到所述第二部分哈希表序号对应的部分哈希表中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811360325.5/1.html,转载请声明来源钻瓜专利网。