[发明专利]一种保证非易失内存中故障原子性的方法及系统有效
申请号: | 202010407572.7 | 申请日: | 2020-05-14 |
公开(公告)号: | CN111638996B | 公开(公告)日: | 2023-04-11 |
发明(设计)人: | 童薇;冯丹;刘景宁;魏学亮;朱蔚霖 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F11/34 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 保证 非易失 内存 故障 原子 方法 系统 | ||
1.一种保证非易失内存中故障原子性的方法,其特征在于,包括:
按照如下步骤执行由一个或多个需要保证故障原子性的操作封装而成的事务:
(S1)依次执行当前事务内的各项操作,对于当前事务内的每个写操作,若其对应的数据的最旧值未被保存到所述非易失内存的日志中,则为其创建UndoRedo日志项,若其对应的数据的最旧值已被保存到所述非易失内存的日志中,则为其创建Redo日志项;
创建日志项的同时,根据日志项的类型采用相应的日志管理策略对所创建的日志项进行管理;
(S2)执行完当前事务内的所有操作后,提交当前事务;
(S3)当前事务执行完成;
其中,所述UndoRedo日志项记录的信息包括:事务编号、写操作地址、对应数据的最旧值和新值;所述Redo日志项记录的信息包括:事务编号、写操作地址以及对应数据的新值;数据的最旧值为当前事务刚开始执行时该数据的值,数据的新值为对应的写操作执行完成后该数据的值;
所述非易失内存的处理器中预先创建有积极日志缓存和懒惰日志缓存;
所述日志管理策略包括:积极写回策略和懒惰写回策略;所述步骤(S1)中,采用积极写回策略管理UndoRedo日志项,并且采用懒惰写回策略管理Redo日志项;
其中,采用积极写回策略管理UndoRedo日志项,包括:UndoRedo日志项创建后,先将其缓存在所述积极日志缓存内,经过预设的时间间隔后再将其写回所述非易失内存;所述时间间隔小于数据从所述处理器的一级缓存写回所述非易失内存所需的时间;
采用懒惰写回策略管理Redo日志项,包括:Redo日志项创建后,先将其缓存在所述处理器的一级缓存中,在该Redo日志项所在缓存行被驱逐或被其他事务更新时,将该Redo日志项缓存在所述懒惰日志缓存中;在所述懒惰日志缓存满后,将所述懒惰日志缓存中的Redo日志项写回所述非易失内存;所述懒惰写回策略在管理Redo日志项的过程中,会合并事务编号和写操作地址相同的日志项。
2.如权利要求1所述的保证非易失内存中故障原子性的方法,其特征在于,所述积极写回策略在管理UndoRedo日志项过程中,会合并事务编号和写操作地址相同的日志项。
3.如权利要求1所述的保证非易失内存中故障原子性的方法,其特征在于,将所述积极日志缓存或所述懒惰日志缓存中的日志项写回所述非易失内存,包括:
并行地采用多个不同的适用于非易失内存的编码策略对待写入所述非易失内存的日志项进行编码后,选择写开销最小的编码结果写入所述非易失内存。
4.如权利要求1-3任一项所述的保证非易失内存中故障原子性的方法,其特征在于,将所述积极日志缓存或所述懒惰日志缓存中的日志项写回所述非易失内存时,所采用的编码策略包括差异日志数据压缩策略;
所述差异日志数据压缩策略执行编码的方式包括:丢弃被日志项所对应的写操作更新前、后数据值未发生变化的部分,然后对剩余部分进行压缩,将压缩结果作为对日志项的编码结果。
5.如权利要求1所述的保证非易失内存的故障原子性的方法,其特征在于,所述步骤(S2)中,提交当前事务,包括:
(S21)根据系统设置判断事务提交时是否需要保证事务的持久性,若需要保证事务的持久性,则转入步骤(S22);若不需要保证事务的持久性,则转入步骤(S23);
(S22)将所述积极日志缓存、所述懒惰日志缓存以及所述处理器的一级缓存中,属于当前事务的所有日志项均写回所述非易失内存;
(S23)创建当前事务的提交记录后,在所述非易失内存的日志区中写入当前事务的提交记录;
其中,所述提交记录中记录的信息包括:事务编号、日志项计数和ULog计数;日志项计数为在创建该提交记录时当前事务位于积极日志缓存、懒惰日志缓存、非易失内存的日志项的数量;ULog计数为创建该提交记录时所述一级缓存中属于当前事务且处于ULog状态的数据的条数,ULog状态表示数据被当前事务更新过,且该数据的最旧值被保存到所述非易失内存的日志中,而该数据的新值未被保存到所述非易失内存的日志中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010407572.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种防爆司钻控制台
- 下一篇:一种跨平台高效键值存储方法