[发明专利]基于非易失性内存的可在线恢复对象分配器设计方法有效
申请号: | 201611060153.0 | 申请日: | 2016-11-24 |
公开(公告)号: | CN106598730B | 公开(公告)日: | 2020-06-12 |
发明(设计)人: | 陈海波;董明凯;余倩倩;臧斌宇 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 郭国中;樊昕 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 非易失性 内存 在线 恢复 对象 分配器 设计 方法 | ||
本发明提供一种基于非易失性内存的可在线恢复的对象分配器设计方法,包括:使用两个版本号保存每个对象的分配信息;使用版本矩阵保存非易失性内存中每个对象的版本号;在对象分配和对象释放过程中不需要进行持久化操作;故障后的恢复过程中,分配器无需等待恢复完成,可根据已持久化的信息处理新的请求;使用两个版本号在恢复过程中验证一个对象是否在恢复中被重新分配。本发明消除了在分配和释放的时的持久化操作,在故障发生后能够在对分配信息进行恢复的同时,根据已经持久化的信息处理新的请求,提高了正常运行情况下以及在故障发生后对象分配的性能,减少了因故障宕机和恢复导致的服务中断时间。
技术领域
本发明涉及一种对象分配器设计方法,具体地,涉及一种基于非易失性内存的可在线恢复的对象分配器设计方法。
背景技术
随着STT-MRAM、Phase Change Memory、NVDIMM、3D XPoint以及Memristor等非易失性内存技术的兴起和成熟,非易失性内存成为替代传统磁盘的持久存储的选择之一。非易失性内存具有延迟低、带宽高、可字节寻址、能耗低等优点,因而出现了很多基于非易失性内存的文件系统和应用。在这些系统中,不可避免的是对于内存对象的分配管理。现有的非易失性内存对象分配器的具体流程包括:
(1)加载阶段,在非易失性内存被使用之前,分配器需先读取存储在非易失性内存中的点阵(Bitmap),并将其转化为易失性内存中的数据结构(如空闲链表);
(2)分配阶段,查找易失性内存中的数据结构,在找到合适的空闲内存区间之后,将易失性内存数据结构中的相关地方标记为已分配;
(3)释放阶段,在易失性内存数据结构的进行查找,在找到相应的内存区域之后,将其易失性内存数据结构中相应地方标记为未分配;
(4)保存阶段,在非易失性内存使用完毕之后,分配器将易失性内存数据结构中保存的分配信息转化成点阵,保存在非易失性内存之中,供下次使用时读取;
(5)恢复阶段,在系统发生故障或因断电而重启后,非易失性内存中保存的点阵分配信息与非易失性内存的实际事情情况发生偏差。分配需要先从非易失性内存中的根节点开始扫描整个数据结构,从而获知那些区域已经被分配,哪些区域是空闲区域。在扫描完毕之后,分配器将扫描得到的信息进行保存,之后才可以继续处理分配和释放内存等请求。
上述的对象分配器的好处在于不需要频繁的进行持久化操作,因而在分配阶段和释放阶段对于系统的整体性能影响较小。但其缺点在于需要加载阶段和保存阶段,另外当系统发生故障或因断电而需要重启后,恢复阶段的时间过长,且此时分配器是完全无法工作的,因而整个非易失性内存都无法使用。
另外一种分配器设计方式是将最新的分配信息直接保存在非易失性内存中。在这种设计中,不需要上述的加载、保存和恢复阶段;但其缺点在于:若想获得较快的分配和释放性能,保存分配信息的结构需要复杂,涉及到大量的零散的内存操作,而若要保证分配信息的持久化,每次分配或释放结束后,需要调用大量的持久化操作,对性能造成影响;若使用点阵等简单的结构,则在释放和分配内存时需要进行大量的查找操作,性能差。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于非易失性内存的可在线恢复的对象分配器设计方法,其充分利用非易失性内存的特点,采用版本阵列的取消在分配和释放的时候的持久化操作,并在故障发生后能够在线地对分配信息进行恢复,提高对象分配器在正常运行情况下以及故障恢复时的性能。
为达到上述目的,本发明所采用的技术方案如下:
一种基于非易失性内存的可在线恢复的对象分配器设计方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611060153.0/2.html,转载请声明来源钻瓜专利网。