[发明专利]一种唯一哈希序号生成方法和系统在审
| 申请号: | 202210920745.4 | 申请日: | 2022-08-02 |
| 公开(公告)号: | CN115203211A | 公开(公告)日: | 2022-10-18 |
| 发明(设计)人: | 王毅鹏;韩增;郑斌;曾柯杰;赵亚萍 | 申请(专利权)人: | 上海金融期货信息技术有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455 |
| 代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 施浩 |
| 地址: | 200122 上海市浦东新区*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 唯一 序号 生成 方法 系统 | ||
1.一种唯一哈希序号生成方法,其特征在于,方法包括新建唯一哈希序号的流程,新建流程包括:
首先,获取传入待取哈希序号的字符串,使用哈希函数按字符处理映射为哈希值;
以哈希值为索引,检查cblock_map类型的code_table中,索引对应位置是否存在有效值,若不存在,则创建哈希项,把哈希序号赋值给新建的哈希项,并自增1,同时创建以该哈希项为头指针的哈希链表,将哈希链表保存在code_table对应的索引位置后,返回哈希序号;若索引对应位置在code_table中存在有效值,则将该有效值作为哈希链表的首节点,遍历哈希链表的子项,比较每个哈希项中缓存的字符串与传入的字符串是否相等,若存在相等字符串,则返回该哈希项的哈希序号;若不存在相等的字符串,则在链表尾节点创建新的哈希项,更新哈希项的哈希序号和字符串值,哈希序号自增1,并返回新哈希项的哈希序号。
2.根据权利要求1所述的唯一哈希序号生成方法,其特征在于,方法还包括获取哈希序号的流程,获取流程包括:
首先,获取传入待取哈希序号的字符串,使用哈希函数按字符处理映射哈希值;
以哈希值为索引检查cblock_map类型的code_table中,检查索引对应位置是否存在有效值,若不存在有效值,则返回查询失败;若索引对应位置在code_table中存在有效值,则将该有效值作为哈希链表的首节点,遍历哈希链表的子项,比较每个哈希项中缓存的字符串与传入字符串是否相等,若存在相等字符串,则返回该哈希项的哈希序号;若不存在相等的字符串,则返回查询失败。
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读取数据流程进一步配置为:先根据传入哈希序号值,判断所要读取的数据应该位于哪个行数组内,若该行数组不存在,则返回读取失败;根据哈希序号对页数取余,得到具体的存储位置,判断存储位置是否为空,为空则返回查询失败,反之返回该索引处存储的值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海金融期货信息技术有限公司,未经上海金融期货信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210920745.4/1.html,转载请声明来源钻瓜专利网。





