[发明专利]无锁共享内存处理方法、装置、电子设备及可读存储介质有效
| 申请号: | 201910591481.0 | 申请日: | 2019-07-02 |
| 公开(公告)号: | CN110287044B | 公开(公告)日: | 2021-08-03 |
| 发明(设计)人: | 陈慕仪 | 申请(专利权)人: | 广州虎牙科技有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 唐维虎 |
| 地址: | 511400 广东省广州市番禺*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 共享 内存 处理 方法 装置 电子设备 可读 存储 介质 | ||
1.一种无锁共享内存处理方法,其特征在于,应用于电子设备,所述方法包括:
针对每个数据业务,配置该数据业务的内存配置数据,所述内存配置数据包括所需的数据块大小、数据块数量以及共享内存文件路径;
根据所述数据块大小和数据块数量计算该数据业务所需的共享内存空间;
根据所述共享内存文件路径打开共享内存文件,并根据所述共享内存空间,通过预设的内存映射方式将所述共享内存文件映射到共享内存区域中,并获取映射完成后的映射返回值;
根据所述映射返回值得到所述共享内存区域中对应的映射区域的起始指针地址和偏移记录指针地址,并将所述起始指针地址和偏移记录指针地址记录到所述数据业务对应的应用程序的内存中;
对所述共享内存区域进行辅助数据的原子映射后,为所述共享内存区域分配索引区、哈希数组数据区、提取池以及存储数据区的原子数据结构,以完成该数据业务的无锁共享内存处理;
所述为所述共享内存区域分配索引区、哈希数组数据区、提取池以及存储数据区的原子数据结构的步骤,包括:
为所述共享内存区域分配索引区,并在所述索引区中分配用于数据索引的多个VerIdx数组以及校验信息列表,所述VerIdx数组中存储有每个数据块的编号对应的哈希值;
为所述共享内存区域分配哈希数组数据区,并对所述哈希数组数据区进行原子映射,通过数据链表记录每个数据块的元数据;
为所述共享内存区域分配提取池,所述提取池对应的原子整形指针队列中记录了全局的数据块信息以及每个数据块的下一个数据块的标识信息;
为所述共享内存区域分配存储数据区,所述存储数据区的大小等于哈希桶的数量与大小的乘积。
2.根据权利要求1所述的无锁共享内存处理方法,其特征在于,所述对所述共享内存区域进行辅助数据的原子映射的步骤,包括:
生成所述共享内存区域的备注信息区;
在所述备注信息区中的第一个字节的位置配置标记值;
在所述备注信息区中的第二个字节的位置配置当前的数据容量;
所述备注信息区中的第三个字节的位置配置数据块大小;
所述备注信息区中的第四个字节的位置配置数据块数量;
分别通过所述应用程序的内存中的四个原子的int型指针分别指向所述第一个字节、所述第二个字节、所述第三个字节以及第四个字节数据的数据字节块,以通过所述四个原子的int型指针类型分别控制所述第一个字节、所述第二个字节、所述第三个字节以及第四个字节的无锁读写。
3.根据权利要求1所述的无锁共享内存处理方法,其特征在于,所述校验信息列表包括根据哈希桶的数量得到的存储字节以及所述存储字节添加16个字节后的扩展字段;
所述元数据通过原子整形进行存储,所述元数据包括数据块长度、数据块版本号、数据块标识、数据块哈希值、数据块删除标记以及数据块引用计数中的一种或者多种的组合;
所述提取池通过64位原子指针指向下一个可以写入的内存区域,并记录下一个数据块的位置。
4.根据权利要求1-3中任意一项所述的无锁共享内存处理方法,其特征在于,所述方法还包括:
在接收到针对数据业务的并发数据处理请求时,根据所述并发数据处理请求获得待处理数据的标识号;
计算所述标识号对应的哈希值,并根据所述哈希值对所述待处理数据执行对应的操作。
5.根据权利要求4所述的无锁共享内存处理方法,其特征在于,若所述并发数据处理请求为数据写入请求,则根据所述哈希值对所述待处理数据执行对应的操作的步骤,包括:
根据所述哈希值计算所述待处理数据所需的数据块数量;
从配置的提取池中提取与所述数据块数量对应的空闲数据块,并将所述空闲数据块的信息写入到所述哈希数组数据区中;
将所述待处理数据写入到所述存储数据区中与所述空闲数据块对应的数据区中;
将所述空闲数据块的信息写入到所述索引区中的VerIdx数组中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州虎牙科技有限公司,未经广州虎牙科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910591481.0/1.html,转载请声明来源钻瓜专利网。





