[发明专利]面向容错的NVM持久化过程冗余信息的压缩方法和装置有效
申请号: | 201811457572.7 | 申请日: | 2018-11-30 |
公开(公告)号: | CN109542356B | 公开(公告)日: | 2021-12-31 |
发明(设计)人: | 彭林;张文喆;陈俊峰;黄春;唐滔;方建滨;左克;姜浩 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 容错 nvm 持久 过程 冗余 信息 压缩 方法 装置 | ||
1.一种面向容错的NVM持久化过程冗余信息的压缩方法,其特征在于实施步骤包括:
1)在支持事务持久化的线程中分配写集合WriteSet、地址队列queue以及多个值队列vqueue_X,其中值队列vqueue_X用于记录新旧只有低X位不同的值,在压缩值时各记录值的低X位写入持久化日志中,且不同值队列vqueue_X的X值不同;
2)在NVM中分配持久化日志保存区;
3)在事务期间将所有持久化写操作信息写入写集合WriteSet;
4)扫描写集合WriteSet,对新旧值完全相同的写集合元素进行过滤,对新旧值不完全相同的写集合元素,将新旧只有低X位不同的值的写集合元素的值分别加入相应的值队列vqueue_X,并按照值队列vqueue_X中X的值从大到小的顺序将新旧值不完全相同的写集合元素的地址加入地址队列queue;
5)针对地址队列queue中的地址信息进行压缩使得一组相邻地址的相同部分被消除,将压缩后的地址信息写入地址记录;
6)将各个值队列vqueue_X中所有元素的N位值的低X位写入值记录,从而将值的冗余信息消除;
步骤5)的详细步骤包括:
5.1)构造处理子队列,将所述处理子队列中初始放入地址队列queue的前两个地址,初始化当前的压缩模式为不可压缩,压缩模式包括不可压缩、连续地址压缩、高32bit相同地址压缩三种,连续地址压缩模式是指对一组相邻地址的差值相同的地址队列进行压缩,高32bit相同地址压缩模式是指对一组具有相同的高32bit的地址队列进行压缩;
5.2)依次遍历地址队列queue中的后续地址Addr,每遍历一个地址Addr,则将当前遍历的地址Addr加入处理子队列,跳转执行步骤5.3);直至遍历完成,跳转执行步骤5.5);
5.3)判断处理子队列在地址Addr加入前后是否均为不可压缩,如果处理子队列在Addr加入前后均不可压缩,则取出处理子队列第一个地址,写入地址记录,跳转执行步骤5.2);否则,跳转执行步骤5.4);
5.4)判断处理子队列的压缩模式是否在地址Addr加入后发生变化,如果处理子队列对应的压缩模式在地址Addr加入后发生变化,则取出处理子队列中位于地址Addr之前的所有地址进行压缩,如果原压缩模式为连续地址压缩,则进行连续地址压缩,如果原压缩模式为高32bit相同地址压缩,则进行高32bit相同地址压缩,写入地址记录;跳转执行步骤5.2);
5.5)判断处理子队列是否为空,如果判断处理子队列为空,则跳转执行步骤5.7);否则,跳转执行步骤5.6);
5.6)判断处理子队列是否可压缩,如果处理子队列可压缩,则根据处理子队列的内容确定处理子队列新的压缩模式,并取出处理子队列所有地址进行压缩,如果新的压缩模式为连续地址压缩,则进行连续地址压缩,如果新的压缩模式为高32bit相同地址压缩,则进行高32bit相同地址压缩,写入地址记录,跳转执行步骤5.7);否则,取出处理子队列所有地址不压缩,写入地址记录,跳转执行步骤5.7);
5.7)判定将压缩后地址信息的写入地址记录结束。
2.根据权利要求1所述面向容错的NVM持久化过程冗余信息的压缩方法,其特征在于,步骤1)中的多个值队列vqueue_X包括值队列vqueue_N、vqueue_N/2、vqueue_N/22、…、vqueue_16、vqueue_8,其中,N为持久化日志的位宽,vqueue_N用于记录新旧完全不同的值,在压缩值时各记录值的低N位写入持久化日志中;vqueue_N/2用于记录新旧只有低N/2位不同的值,在压缩值时各记录值的低N/2位写入持久化日志中;……;vqueue_16用于记录新旧只有低16位不同的值,在压缩值时各记录值的低16位写入持久化日志中;vqueue_8用于记录新旧只有低8位不同的值,在压缩值时各记录值的低8位写入持久化日志中。
3.根据权利要求2所述面向容错的NVM持久化过程冗余信息的压缩方法,其特征在于,步骤2)中在NVM中分配持久化日志保存区时每一个持久化日志包含3个部分,对应各个值队列vqueue_X的值的数目、多个压缩地址的记录、多个压缩值的记录。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811457572.7/1.html,转载请声明来源钻瓜专利网。