说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210920745.4 (22)申请日 2022.08.02 (71)申请人 上海金融期 货信息技 术有限公司 地址 200122 上海市浦东 新区自由贸易试 验区杨高南路28 8号19-21层 (72)发明人 王毅鹏 韩增 郑斌 曾柯杰  赵亚萍  (74)专利代理 机构 上海专利商标事务所有限公 司 31100 专利代理师 施浩 (51)Int.Cl. G06F 16/22(2019.01) G06F 16/2455(2019.01) (54)发明名称 一种唯一哈希序号 生成方法和系统 (57)摘要 本发明公开了唯一哈希序号生成方法和系 统, 解决哈希值范围区间大的问题, 提高以字符 串为索引的对象在存储时的空间利用率和数据 查询效率。 其技术方案为: 对字 符串处理, 生成从 0自增的哈希序号, 哈希序号作为索引代替原先 需要字符串作为索引的存储数据结构; 使用 cblock_map数据缓存结构, cblock_map对哈希项 存储时以哈希项哈希值为索引, 包含字符串和哈 希序号等信息。 在方法的运行过程中cblock_map 内存结构稳定, 所有可能使用的空间在构造方法 中已预先准备, 不存在当空间占满后重新创建对 象并拷贝数据的场景。 使用cblock_map提供高效 且稳定的读写能力, 对哈希值的索引存储位置支 持O(1)效率的查找, 即便遇到哈希冲突的情况, 也可以通过链表遍历的方式将查询时间控制在 常量范围。 权利要求书2页 说明书7页 附图5页 CN 115203211 A 2022.10.18 CN 115203211 A 1.一种唯一哈希序号生成方法, 其特征在于, 方法包括新建唯一哈希序号的流程, 新建 流程包括: 首先, 获取传入待取哈希序号的字符串, 使用哈希函数按字符处 理映射为哈希值; 以哈希值为索引, 检查cblock_map类型的code_table中, 索引对应位置是否存在有效 值, 若不存在, 则创建哈希项, 把哈希序号赋值给新建的哈希项, 并自增1, 同时创建以该哈 希项为头指针的哈希链表, 将哈希链表保存在code_table对应的索引位置后, 返回哈希序 号; 若索引对应位置在code_table中存在 有效值, 则将该有效值作为哈希链表的首节 点, 遍 历哈希链表的子项, 比较每个哈希项中缓存的字符串与传入的字符串是否相等, 若存在相 等字符串, 则返回该哈希项的哈希序号; 若不存在相等的字符串, 则 在链表尾节点创建新的 哈希项, 更新哈希项的哈希序号和字符串值, 哈希序号自增1, 并返回新哈希项的哈希序号。 2.根据权利要求1所述的唯一哈希序号生成方法, 其特征在于, 方法还包括获取哈希序 号的流程, 获取流 程包括: 首先, 获取传入待取哈希序号的字符串, 使用哈希函数按字符处 理映射哈希值; 以哈希值为索引检查cblock_map类型的code_table中, 检查索引对应位置是否存在有 效值, 若不存在有效值, 则返回查询失败; 若索引对应位置在code_t able中存在有效值, 则 将该有效值作为哈希链表的首节点, 遍历哈希链表的子项, 比较每个哈希项中缓存的字符 串与传入字符串是否相等, 若存在相等字符串, 则返回该哈希项的哈希序号; 若不存在相等 的字符串, 则返回查询失败。 3.根据权利要求2所述的唯一哈希序 号生成方法, 其特征在于, cblock_map的数据缓存 结构是根据索引快速读取缓存值, 其中cblock_ map的底层以二维指针数 组形式对 数据进行 存储和管理, 初始化时可定义行、 列数值, 但不进行内存 申请, 二维指针数组根据插入时索 引位置按需初始化, 每次初始化索引所在行的数组。 4.根据权利要求3所述的唯一哈希序 号生成方法, 其特征在于, cblock_map的底层存储 组件进一 步配置有初始化、 数据保存和数据读取的流 程, 其中: cblock_map类型的code_table初始化流程进一步配置为: 首先创建cblock_map类型的 指针, 构造方法中添加行数、 页数的参数, cblock_ map底层存储为二维指针数 组形式, 行数* 页数的值规定code_table支持的最大索引数, 在数 组初始化时, 统一将行数 组设为空指针, 并不进行额外的空间申请; cblock_map类型的code_table保存数据流程进一步配置为: 首先根据传入哈希序号 值, 判断所要保存的数据应该位于 哪个行数组内, 若 该行数组不存在, 则新建 并初始化行数 组, 再根据哈希序号对页数 取余, 得到具体的存 储位置, 把待存 储数组更新至该存 储位置; cblock_map类型的code_table读取数据流程进一步配置为: 先根据传入哈希序号值, 判断所要读取的数据应该位于 哪个行数组内, 若 该行数组不存在, 则返回读取失败; 根据哈 希序号对页数取余, 得到具体的存储位置, 判断存储位置是否为空, 为空则 返回查询失败, 反之返回该索引处存 储的值。 5.一种唯一哈希序号生成系统, 其特征在于, 系统包括: 新建唯一哈希序号的子系统, 其中新建唯一哈希序号的子系统进一 步包括: 新建哈希序号的映射模块, 获取传入待取哈希序号的字符串, 使用哈希函数按字符处 理映射为哈希值;权 利 要 求 书 1/2 页 2 CN 115203211 A 2新建哈希序号 的第一分支模块, 以哈希值为索引, 检查cblock_map类型的code_table 中, 索引对应位置是否存在有效值, 若不存在有效值, 则创建哈希项, 把哈希序号赋值给新 建的哈希项, 并自增1, 同时创建以该哈希项为头指针的哈希链表, 将哈希链表保存在code_ table对应的索引位置后, 返回哈希序号; 新建哈希序号 的第二分支模块, 以哈希值为索引, 检查cblock_map类型的code_table 中, 索引对应位置是否存在 有效值, 若索引对应位置在code_table中存在 有效值, 则将该有 效值作为哈希链表的首节点, 遍历哈希链表的子项, 比较每个哈希项中缓存的字符串与传 入的字符串 是否相等, 若存在相等字符串, 则返回该哈希项的哈希序号; 若不存在相等的字 符串, 则在链表尾节点创建新的哈希项, 更新哈希项的哈希序号和字符串值, 哈希序号自增 1, 并返回新哈希项的哈希序号。 6.根据权利要求5所述的唯一哈希序号生成系统, 其特征在于, 系统包括: 获取唯一哈 希序号的子系统, 其中获取唯一哈希序号的子系统进一 步包括: 获取哈希序号的映射模块, 获取传入待取哈希序号的字符串, 使用哈希函数按字符处 理映射哈希值; 获取哈希序号的第一分支模块, 以哈希值为索引检查cblock_map类型的code_table 中, 检查索引对应位置是否存在有效值, 若不存在有效值, 则返回查询失败; 获取哈希序号的第二分支模块, 以哈希值为索引检查cblock_map类型的code_table 中, 检查索引对应位置是否存在 有效值, 若索引对应位置在code_table中存在 有效值, 则将 该有效值作为哈希链表的首节点, 遍历哈希链表的子项, 比较每个哈希项中缓存的字符串 与传入字符串 是否相等, 若存在相等字符串, 则返回该哈希项的哈希序号; 若不存在相等的 字符串, 则返回查询失败。 7.根据权利要求6所述的唯一哈希序 号生成系统, 其特征在于, cblock_map的数据缓存 结构是根据索引快速读取缓存值, 其中cblock_ map的底层以二维指针数 组形式对 数据进行 存储和管理, 初始化时可定义行、 列数值, 但不进行内存 申请, 二维指针数组根据插入时索 引位置按需初始化, 每次初始化索引所在行的数组。 8.根据权利要求7所述的唯一哈希序 号生成系统, 其特征在于, 系统还包括cblock_map 的底层存储组件, cblock_map的底层存储组件进一步配置有初始化单元、 数据保存单元和 数据读取 单元, 其中: 初始化单元, 配置为先创建cblock_map类型的指针, 构造方法中添加行数、 页数的参 数, cblock_map底层存储为二维指针数 组形式, 行数*页数的值规定code_table支持的最大 索引数, 在数组初始化时, 统一将行 数组设为空指针, 并不进行额外的空间申请; 数据保存单元, 配置为先根据传入 哈希序号值, 判断所要保存的数据应该位于哪个行 数组内, 若该行数组不存在, 则新建并初始化行数组, 再根据哈希序号对页数取余, 得到具 体的存储位置, 把待存 储数组更新至该存 储位置; 数据读取单元, 配置为先根据传入 哈希序号值, 判断所要读取的数据应该位于哪个行 数组内, 若该行数组不存在, 则 返回读取失败; 根据哈希序号对页数取余, 得到具体的存储 位置, 判断存 储位置是否为空, 为空则返回查询失败, 反 之返回该索引处存 储的值。权 利 要 求 书 2/2 页 3 CN 115203211 A 3

.PDF文档 专利 一种唯一哈希序号生成方法和系统

文档预览
中文文档 15 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共15页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种唯一哈希序号生成方法和系统 第 1 页 专利 一种唯一哈希序号生成方法和系统 第 2 页 专利 一种唯一哈希序号生成方法和系统 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 17:14:31上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。