全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210641049.X (22)申请日 2022.06.08 (71)申请人 珠海金山数字网络科技有限公司 地址 519000 广东省珠海市高新区唐家湾 镇前岛环路325号102室、 202室、 302 室、 402室,327号102室、 202室,329号 302室 (72)发明人 钟俊奇 邓勇 黄照荣  (74)专利代理 机构 北京智信禾专利代理有限公 司 11637 专利代理师 张瑞 (51)Int.Cl. G06F 16/22(2019.01) G06F 16/21(2019.01) G06F 16/23(2019.01) (54)发明名称 哈希表处理方法及装置 (57)摘要 本申请提供哈希表处理方法及 装置, 其中所 述哈希表处理方法包括: 获取哈希表创建请求, 所述哈希表创建请求中携带哈希表 容量信息; 根 据所述哈希表容量信息和所述哈希表创建请求 关联的存储数据类型, 计算内存空间信息; 响应 于所述哈希表创建请求, 按照所述内存空间信息 在内存中申请连续内存作为哈希表数据块; 在接 收到针对所述哈希表数据块关联的哈希表提交 的操作请求的情况下, 根据所述操作请求对所述 哈希表进行更新。 权利要求书3页 说明书15页 附图5页 CN 114860736 A 2022.08.05 CN 114860736 A 1.一种哈希 表处理方法, 其特 征在于, 包括: 获取哈希 表创建请求, 所述哈希 表创建请求中携带哈希 表容量信息; 根据所述哈希表容量信 息和所述哈希表创建请求关联的存储数据类型, 计算内存空间 信息; 响应于所述哈希表创建请求, 按照所述内存空间信 息在内存中申请连续内存作为哈希 表数据块; 在接收到针对所述哈希表数据块关联的哈希表提交 的操作请求的情况下, 根据 所述操 作请求对所述哈希 表进行更新。 2.根据权利要求1所述的方法, 其特征在于, 所述响应于所述哈希表创建请求, 按照所 述内存空间信息在内存中申请连续内存作为哈希 表数据块 步骤执行之后, 还 包括: 对所述连续内存中的冗余数据进行删除处理, 以及初始化所述哈希表对应的哈希表信 息; 其中, 所述哈希 表信息包括哈希 表空闲槽索引信息和哈希 表已用槽数量信息 。 3.根据权利要求1所述的方法, 其特征在于, 所述响应于所述哈希表创建请求, 按照所 述内存空间信息在内存中申请连续内存作为哈希 表数据块 步骤执行之后, 还 包括: 根据所述哈希 表容量信息确定所述哈希 表对应的哈希值范围; 确定所述哈希表包含的数据槽位, 并根据 所述哈希值范围创建所述数据槽位对应的索 引信息。 4.根据权利要求1所述的方法, 其特征在于, 所述根据所述操作请求对所述哈希表进行 更新, 包括: 在所述操作请求为数据插入请求的情况下, 确定所述数据插入请求中携带的第 一数据 索引信息和第一数据; 通过哈希函数计算所述第一数据索引信息对应的第一哈希值; 在所述哈希表中确定所述第 一哈希值关联的第 一槽位, 并将所述第 一数据写入所述第 一槽位, 作为对所述哈希 表的更新。 5.根据权利要求4所述的方法, 其特征在于, 所述在所述哈希表中确定所述第 一哈希值 关联的第一槽位, 包括: 在所述哈希表中确定所述第 一哈希值对应的第 二槽位, 并检测所述第 二槽位的存储状 态; 在所述第二槽位的存储状态为空闲状态的情况下, 将所述第二槽位作为所述第一槽 位; 在所述第二槽位的存储状态为占用状态的情况下, 在所述哈希表中确定第一空闲槽 位, 并根据所述第一空 闲槽位确定所述第一槽位。 6.根据权利要求5所述的方法, 其特征在于, 所述根据所述第 一空闲槽位确定所述第 一 槽位, 包括: 确定所述第 二槽位关联的第 二数据索引信 息对应的第 二哈希值, 并将所述第 二哈希值 与所述第一哈希值进行比较; 在所述第二哈希值与 所述第一哈希值相同的情况下, 根据 所述第二槽位和所述第 一空 闲槽位组成第一链 表, 并将所述第一链 表中的空 闲槽位作为所述第一槽位; 在所述第二哈希值与 所述第一哈希值不相同的情况下, 将所述第 二槽位中存储的占位权 利 要 求 书 1/3 页 2 CN 114860736 A 2数据写入所述第一空 闲槽位, 并根据写入结果将所述第二槽位作为第一槽位。 7.根据权利要求1所述的方法, 其特征在于, 所述根据所述操作请求对所述哈希表进行 更新, 包括: 在所述操作请求为数据查询请求的情况下, 确定所述数据查询请求携带的第 三数据索 引信息, 并通过哈希函数计算所述第三数据索引信息对应的第三哈希值; 根据所述哈希表对应的槽位信 息, 判断所述哈希表中是否存在关联所述第 三哈希值的 第二链表; 若存在, 根据所述第三数据索引信息遍历所述第二链表, 获得响应于所述数据查询请 求的第一目标 数据, 作为对所述哈希 表的更新; 若不存在, 根据所述第三哈希值在所述哈希表中确定第三槽位, 并读取所述第三槽位 存储的第二目标 数据, 作为对所述哈希 表的更新。 8.根据权利要求1所述的方法, 其特征在于, 所述根据所述操作请求对所述哈希表进行 更新, 包括: 在所述操作请求为数据删除请求的情况下, 确定所述数据删除请求携带的第四数据索 引信息, 并通过哈希函数计算所述第四数据索引信息对应的第四哈希值; 根据所述哈希表对应的槽位信 息, 判断所述哈希表中是否存在关联所述第四哈希值的 第三链表; 若存在, 根据所述第四数据索引信息遍历所述第三链表, 获得所述数据删除请求对应 的第四槽位, 对所述第三链表进行更新, 并根据更新结果删除所述第四槽位中存储的第三 目标数据, 作为对所述哈希 表的更新; 若不存在, 根据所述第 四哈希值在所述哈希表中确定第五槽位, 并删除所述第五槽位 中存储的第四目标 数据, 作为对所述哈希 表的更新。 9.根据权利要求6所述的方法, 其特征在于, 所述根据所述操作请求对所述哈希表进行 更新步骤执行之后, 还 包括: 在所述哈希表满足扩容条件的情况下, 按照设定倍数在所述内存中申请目标连续内 存; 将所述连续内存中的所述哈希表迁移至所述目标连续内存, 并对所述目标连续内存中 的所述哈希 表进行更新。 10.根据权利要求1 ‑9任一项所述的方法, 其特征在于, 所述根据所述操作请求对所述 哈希表进行更新步骤执行之后, 还 包括: 在接收到针对所述哈希表提交 的迁移请求的情况下, 对源进程中的所述哈希表进行序 列化处理, 获得待迁移哈希 表; 响应于所述迁移请求在目标进程中对所述待迁移哈希表进行反序列化处理, 获得所述 哈希表。 11.一种哈希 表处理装置, 其特 征在于, 包括: 获取模块, 被配置为获取哈希表创建请求, 所述哈希表创建请求中携带哈希表容量信 息; 计算模块, 被配置为根据所述哈希表容量信 息和所述哈希表创建请求关联的存储数据 类型, 计算内存空间信息;权 利 要 求 书 2/3 页 3 CN 114860736 A 3

PDF文档 专利 哈希表处理方法及装置

文档预览
中文文档 24 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共24页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 哈希表处理方法及装置 第 1 页 专利 哈希表处理方法及装置 第 2 页 专利 哈希表处理方法及装置 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-24 00:49:35上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。