[发明专利]一种基于RDMA的内存管理方法及装置有效
申请号: | 202110255646.4 | 申请日: | 2021-03-09 |
公开(公告)号: | CN113238856B | 公开(公告)日: | 2022-07-26 |
发明(设计)人: | 宋江波;周耀辉;吴军疆 | 申请(专利权)人: | 西安奥卡云数据科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F15/173;G06F11/30;G06F11/32 |
代理公司: | 西安维赛恩专利代理事务所(普通合伙) 61257 | 代理人: | 李明全 |
地址: | 710000 陕西省西安市西咸新区秦*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 rdma 内存 管理 方法 装置 | ||
1.一种基于RDMA的内存管理方法,其特征在于,包括以下步骤:
获取用于注册给网卡的内存空间,并根据所述内存空间构建第一内存状态位图;
根据所述第一内存状态位图,获取待存储数据在所述内存空间中的存储位置信息;
当所述待存储数据存储至所述内存空间后,更新所述第一内存状态位图;
当所述内存空间存满数据时,获取远端服务器的第二内存状态位图;
比较所述第一内存状态位图和所述第二内存状态位图,根据比较结果更新所述第一内存状态位图;
根据更新后的所述第一内存状态位图,删除所述内存空间中的存储数据;
其中,比较所述第一内存状态位图和所述第二内存状态位图包括:
将所述第一内存状态位图与所述第二内存状态位图中序数相同的位的状态进行位与运算。
2.如权利要求1所述的一种基于RDMA的内存管理方法,其特征在于,获取用于注册给网卡的内存空间包括:
根据内存块的预定空间大小、以及预定的内存块数量,计算所述内存空间的大小;
根据所述内存空间的大小确定所述内存空间的起始地址和结束地址。
3.如权利要求2所述的一种基于RDMA的内存管理方法,其特征在于,根据所述内存空间构建内存状态位图包括:
根据所述内存块的数量构建与所述内存空间对应的内存状态位图;其中,所述内存状态位图的位数等于所述内存块的数量。
4.如权利要求2或3所述的一种基于RDMA的内存管理方法,其特征在于,构建内存状态位图后还包括:初始化所述内存状态位图。
5.如权利要求4所述的一种基于RDMA的内存管理方法,其特征在于,当网卡的事件线程收到事件后还包括:
判断所述事件是远端事件还是本端事件;
当所述事件为远端事件时,向所述远端事件对应的应用程序发送通知,所述通知的内容为应用程序在所述内存空间中获取数据;
检测到所述应用程序获取数据后,将所述第一内存状态位图中与该数据对应的位的状态更新为闲置。
6.如权利要求5所述的一种基于RDMA的内存管理方法,其特征在于,当所述事件为本端事件时,不进行操作。
7.如权利要求6所述的一种基于RDMA的内存管理方法,其特征在于,获取待存储数据在所述内存空间中的存储位置信息包括:
从所述第一内存状态位图的起始位开始搜索,直至找到第一个状态为闲置的位;
将该第一个状态为闲置的位对应的存储块的起始地址作为所述待存储数据在所述内存空间中的起始存储地址。
8.一种基于RDMA的内存管理装置,其特征在于,包括:
构建模块,用于获取用于注册给网卡的内存空间,并根据所述内存空间构建第一内存状态位图;
第一获取模块,用于根据所述第一内存状态位图,获取待存储数据在所述内存空间中的存储位置信息;
更新模块,用于当所述待存储数据存储至所述内存空间后,更新所述第一内存状态位图;
第二获取模块,用于当所述内存空间存满数据时,获取远端服务器的第二内存状态位图;
比较模块,用于比较所述第一内存状态位图和所述第二内存状态位图,根据比较结果更新所述第一内存状态位图;
删除模块,用于根据更新后的所述第一内存 状态位图,删除所述内存空间中的存储数据;
其中,比较所述第一内存状态位图和所述第二内存状态位图包括:
将所述第一内存状态位图与所述第二内存状态位图中序数相同的位的状态进行位与运算。
9.一种基于RDMA的内存管理装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的一种基于RDMA的内存管理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安奥卡云数据科技有限公司,未经西安奥卡云数据科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110255646.4/1.html,转载请声明来源钻瓜专利网。