[发明专利]一种唯一ID的存储方法、装置、设备及可读存储介质在审
| 申请号: | 202011496497.2 | 申请日: | 2020-12-17 |
| 公开(公告)号: | CN112527696A | 公开(公告)日: | 2021-03-19 |
| 发明(设计)人: | 孔令威;范渊;苗春雨 | 申请(专利权)人: | 杭州安恒信息技术股份有限公司 |
| 主分类号: | G06F12/02 | 分类号: | G06F12/02 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张春辉 |
| 地址: | 310000 浙江省*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 唯一 id 存储 方法 装置 设备 可读 介质 | ||
本申请公开了一种唯一ID的存储方法,该方法对ID的记录存储方式进行了优化,一方面,不直接存储ID,而是存储ID元素,从而避免信息泄露;另一方面,由于在ID元素数量大于一定阈值时,使用bitmap存储占用空间少,反之使用集合存储占用空间少,因此该方法在ID元素较少时,使用集合结构存储以节省存储空间,反之使用bitmap进行存储,减少存储空间占用。此外,本申请还提供了一种唯一ID的存储装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应。
技术领域
本申请涉及计算机技术领域,特别涉及一种唯一ID的存储方法、装置、设备及可读存储介质。
背景技术
生成和分配唯一ID是软件运行中的常见场景。在一些特定场景中,不仅要保持分配ID的唯一性,还需要支持已分配ID的回收以及已回收之后的重复利用。
具有ID回收需求的常见场景有地址空间分配、IP地址分配等。在这种系统中,不仅需要定义唯一ID的生成方法,也要追踪记录ID的使用情况,将已经回收的ID标记为可分配ID,以供在未来分配时重新使用。当可分配的ID数量多时,就需要大量的存储空间来记录ID的使用情况。
一种常见的存储方式是使用一个集合数据结构存储可分配ID,当进行ID分配时,从集合中按照一定方法选取一个ID,将其从集合中移除后返回。当ID回收时,将ID重新加入集合。该方法的主要问题是当可分配ID数量大时,集合结构会占用大量存储空间。以IP地址分配为例,不考虑特殊地址情况下,IPv4可用地址为2^32个,每个地址占用32bit,使用集合结构将占用2^37bits空间,约为16GiB。
另一种存储方式是使用bitmap压缩集合结构,该存储方式占用空间减少,2^32bits约占用512MiB。但是,使用bitmap需要提前预留空间,不论存储了多少可用ID,都需要占用这部分空间,在系统运行初期和负载较小时依然有存储空间利用率低的问题。
可见,目前的唯一ID存储方案存在占用空间过大的缺陷,如何克服该缺陷是亟待本领域技术人员解决的问题。
发明内容
本申请的目的是提供一种唯一ID的存储方法、装置、设备及可读存储介质,用以解决当前唯一ID的存储方案占用空间较大的问题。其具体方案如下:
第一方面,本申请提供了一种唯一ID的存储方法,包括:
持续监测ID元素的数量,其中所述ID元素经过映射函数运算得到可分配ID;
在所述ID元素的数量从不满足预设条件变化为满足所述预设条件时,初始化bitmap,将集合中的ID元素存储至所述bitmap,清空所述集合;
在所述ID元素的数量从满足所述预设条件变化为不满足所述预设条件时,将bitmap中的ID元素存储至集合,释放所述bitmap的内存;
其中,所述预设条件包括:ID元素的数量大于等于预设阈值。
优选的,在所述初始化bitmap,将集合中的ID元素存储至所述bitmap之后,还包括:
设置目标指针指向所述bitmap的内存地址;
相应的,在所述将bitmap中的ID元素存储至集合,释放所述bitmap的内存之后,还包括:
设置目标指针为空指针。
优选的,还包括:
在接收到ID分配请求时,确定ID元素的存储方式;
若所述存储方式为集合,则从集合中获取ID元素,对所述ID元素进行映射函数运算,得到可分配ID;
若所述存储方式为bitmap,则从bitmap中获取ID元素,对所述ID元素进行映射函数运算,得到可分配ID。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州安恒信息技术股份有限公司,未经杭州安恒信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011496497.2/2.html,转载请声明来源钻瓜专利网。





