【技术实现步骤摘要】
基于哈希算法的内存结构持久化方法、装置、设备及介质
[0001]本公开涉及数据处理
,尤其涉及一种基于哈希算法的内存结构持久化方法、装置、设备及介质。
技术介绍
[0002]对于如今大规模、高性能的计算机系统,基于键值对(k
‑
v)的数据结构发挥着重要作用,HashMap是其典型代表,它能提供O(1)级别的查询时间复杂度。
[0003]在一些典型应用中,HashMap中的数据不能丢失,需要持久化存储。如果HashMap的数据经常发生变动,还需要不停地进行持久化,并且在系统启动时,能将持久化的数据快速地恢复为HashMap以支撑上层业务快速查询。
[0004]相关技术中,可以直接使用Java原生的序列化方式将HashMap对象序列化到磁盘上,但是如果HashMap的k
‑
v键值对非常多,达到千万量级时,这种(反)序列化方式非常缓慢,超出一般系统的要求。
[0005]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领 ...
【技术保护点】
【技术特征摘要】
1.一种基于哈希算法的内存结构持久化方法,其特征在于,包括:将基于哈希算法的内存结构HashMap分成多个子HashMap,每个子HashMap对应一个用于保存键值对的文件;使用内存映射,将每个子HashMap对应的文件映射到页高速缓冲存储器中。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在新增键值对时,根据子HashMap的个数,使用哈希算法定位到相应的子HashMap;将键值对增补到所述子HashMap对应的内存映射文件尾部;记录所述键值对在所述内存映射文件中的起始位置;将所述起始位置作为新的value值,与原始的key放入所述子HashMap对应的文件中。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在查询一个key时,从子HashMap中查询到内存映射文件的位置;从所述内存映射文件的位置处解析得到value值。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在反序列化时,使用多线程并发地从内存映射文件中读取键值对;将读取到的所述键值对,插入到对应的子HashMap中。5.根据权利要求1所述的方法,其特征在于,所述将HashMap分成多个子HashMap,包括:预测HashMap的数据量;根据所述HashMap的数据量,规划子HashMap的数量;基于所述子HashMap的数量,将所述HashMap分为子HashMap。6.一种基于哈希算法的内存结构持久化装置,其特征...
【专利技术属性】
技术研发人员:杨鹏,
申请(专利权)人:中国电信股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。