CN107678892A - 基于跳跃恢复链的连续数据保护方法 - Google Patents
基于跳跃恢复链的连续数据保护方法 Download PDFInfo
- Publication number
- CN107678892A CN107678892A CN201711086161.7A CN201711086161A CN107678892A CN 107678892 A CN107678892 A CN 107678892A CN 201711086161 A CN201711086161 A CN 201711086161A CN 107678892 A CN107678892 A CN 107678892A
- Authority
- CN
- China
- Prior art keywords
- data
- field
- block
- write operation
- buffering area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
基于跳跃恢复链的连续数据保护方法,属于计算机存储技术领域,目的在于减少连续数据保护的数据恢复时间,提高写操作性能和数据恢复性能。所述算法包括写操作算法和数据恢复算法,采用跳跃恢复链技术,在不需要插入快照的情况下保证系统可以短时间内恢复到故障前的任意时间点,即数据恢复耗时和恢复点时间跨度无关,有效解决久远数据的快速恢复问题;同时,在写操作算法和数据恢复算法中采用了数据缓冲技术,提高跳跃恢复链的写操作性能和数据恢复性能。
Description
技术领域
本发明属于计算机存储技术领域,具体涉及一种基于跳跃恢复链的连续数据保护方法。
背景技术
随着科技的进步和生产力的发展,人们对数据的依赖越来越高。传统的数据保护技术如周期性备份、快照等只能将数据恢复到故障前的固定时间点,不能完全避免数据丢失的可能,难以满足高连续性应用场合的需求。
连续数据保护技术(Continuous Data Protection,CDP)能够将数据恢复到故障前的任意时间点,完全避免数据丢失的可能,因而成为近年来数据保护领域的研究热点。
CDP技术捕捉应用对数据块的每一次写操作,也就是在对数据块的每一次写操作前都对数据块的原内容进行备份并记录下当时时间作为时间戳,然后才写入新内容,由备份的数据块内容和时间戳等信息组成日志块,按照时间戳顺序将所有的日志块组成日志链。日志链记录了应用对数据的所有写操作历史,当系统发生故障时,逆着日志链便能将系统恢复到故障前的任意时间点。
但是上述技术在密集型写负载下很容易耗尽存储媒介上的空闲空间,因此已有研究如TRAP(timely Recovery to Any Point-in-time)阵列等注重于提高CDP空间利用率,以最小的空间开销实现了任意时间点恢复。
TRAP不在日志块中存储原数据块内容,而是存储原数据块内容和待写入的新数据块内容的异或校验值,由于修改内容的局部性,通常写前后平均数据改变量很小,因此异或校验值的绝大部分数据位为 0,这便于采用压缩算法对该校验值进行压缩,极大地节省记录日志链的存储空间。
但TRAP等已有CDP技术随着时间的增加,日志链越来越长,链条失效的概率较高,恢复久远数据的耗时较长,难以满足数据快速恢复的需要。
ST-CDP在保留TRAP原有数据记录方式的基础上,按一定间隔值在日志链中插入对应时间点的快照数据,来解决TRAP的链条易失效和恢复时间过长问题。但ST-CDP会产生额外的快照维护开销(如快照保存区的创建、指针维护等),快照点插入越多,对快照进行维护的开销就会越大。同时该方案没有考虑到不同数据块的写操作频率不同的问题,写操作较频繁的数据块,其相邻快照之间的日志链条较长,而对写操作不频繁的数据块,其写操作可能需要同时修改多个快照指针,写性能较差。
鉴于此,需要开发一种新的连续数据保护技术,在不需要插入快照的情况下保证系统用较短的时间恢复到故障前的任意时间点。
发明内容
本发明旨在提供一种基于跳跃恢复链的连续数据保护方法,使用效果好,其可以在不需要插入快照的情况下保证系统用较短的时间恢复到故障前的任意时间点。
为解决上述技术问题,本发明提供了如下的技术方案:基于跳跃恢复链的连续数据保护方法,所述跳跃恢复链由日志块组成,日志块为校验块或指针块;日志块由块号字段、时间戳字段、计数器字段和载荷字段组成;
包括写操作算法和数据恢复算法;所述写操作算法依次包括如下步骤:
(1)初始化步骤:
首先:从磁盘配置文件上读取参数k,其中,k为设定的指针块插入周期,k为大于1的正整数,在内存中生成一个结点数为0的写操作缓冲区;
然后:判断是否是系统配置初期,如是则在内存中生成一个空的计数布隆过滤器;如否从磁盘配置文件上将备份的计数布隆过滤器读入内存;
(2)接收写请求步骤:
从文件系统接收写操作请求,从写操作请求中提取数据块的逻辑单元号和内容,分别记数据块的逻辑单元号值为n,数据块的内容为D1;n为正整数;
(3)过滤器查询步骤:
在计数布隆过滤器中查询值n,如果查到则转步骤(5);否则,转步骤(4);
(4)第一类写步骤,
首先:将值n插入计数布隆过滤器;
然后:从数据区中读取逻辑单元号值为n的数据块,其内容记为D0,将数据区中逻辑单元号为n的数据块的内容更新为D1;
随后:在内存中生成一个校验块,将该校验块的块号字段值设置为n、计数器字段设置为1、时间戳字段设置为当前系统时间、载荷字段设置为异或校验值D0⊕D1,其中⊕为异或运算符;
将该校验块写入日志区,并追加到跳跃恢复链的尾部;
最后:在内存中生成一个写操作缓冲区结点,将该写操作缓冲区结点的块号字段值设置为n、 计数器字段设置为1、 时间戳字段设置为当前系统时间,将该结点插入写操作缓冲区中,判断写操作缓冲区是否满,如否则进行步骤(12),如是,则将按时间戳字段的大小从小到大删除写操作缓冲区结点,直至写操作缓冲区有空余空间,并转步骤(12);
(5)缓冲区查询步骤:
在写操作缓冲区中查询块号字段值为n的写操作缓冲区结点,如查到,则记查到的写操作缓冲区结点为node,转步骤(6);如否,则转步骤(9);
(6)计数器判断步骤:
记node的计数器字段值为c,判断设定的指针块插入周期k是否大于计数器字段值c,如是,则转步骤(7);否则,转步骤(8);
(7)第二类写步骤:
首先:从数据区中读取逻辑单元号值为n的数据块,其内容记为D0,将数据区中逻辑单元号值为n的数据块的内容更新为D1;
然后:在内存中生成一个校验块,将该校验块的块号字段值设置为n、计数器字段设置为c+1、时间戳字段设置为当前系统时间、载荷字段设置为异或校验值D0⊕D1,其中⊕为异或运算符;
随后:将该校验块写入日志区,追加到跳跃恢复链的尾部;
最后:将写操作缓冲区中node结点的计数器字段更新为c+1、时间戳字段更新为当前系统时间;转步骤(12);
(8)第三类写步骤:
首先:从数据区中读取逻辑单元号为值n的数据块,将该数据块写入备份区,并将其在备份区中的地址记为addr,将数据区中逻辑单元号值为n的数据块的内容更新为D1;
然后:在内存中生成一个指针块,将该指针块的块号字段值设置为n、计数器字段设置为0、时间戳字段设置为当前系统时间、载荷字段设置为addr,将该指针块写入日志区,追加到跳跃恢复链的尾部;
最后:将node结点从写操作缓冲区中删除,将值n从计数布隆过滤器中删除;转步骤(12);
(9)日志查询步骤:
首先:从尾部开始向前扫描跳跃恢复链,直至找到第一个块号字段值为n的日志块,转步骤(10);否则,转步骤(4);
(10)日志判断步骤:
判断日志块的类型:如是指针块,转步骤(4);如是校验块,记为P,并转步骤(11);
(11)写缓冲区步骤:
首先:在内存中生成一个写操作缓冲区结点,记为node,将node的块号字段值设置为n、计数器字段设置为P的计数器字段值、时间戳字段设置为当前系统时间;
然后:将node插入写操作缓冲区中,判断写操作缓冲区是否满,如否则转步骤(6),如是将按时间戳字段的大小,从小到达删除写操作缓冲区结点,直至写操作缓冲区有空余空间,并转步骤(6);
(12)运行结束判断步骤:
判断是否接收到运行结束指令,如否则转步骤(2);如是,则转步骤(13);
(13)结束步骤:
停止接收文件系统写操作请求,将内存中计数布隆过滤器的内容写入磁盘配置文件后退出。
所述数据恢复算法依次包括如下步骤:
第一步:初始化步骤:
首先:退出写操作算法,停止接收文件系统写操作请求;
然后:设置恢复目标时间点,在内存中生成一个结点数为0的数据恢复缓冲区,设置读指针,将其指向日志区中跳跃恢复链尾部的日志块;
第二步:读日志步骤:
从跳跃恢复链中读取一个日志块,读指针向跳跃恢复链头部方向移动一步,指向下一个日志块;
第三步:日志读完判断步骤:
判断跳跃恢复链中的日志块是否读完,如是则转第八步;如否则转第四步;
第四步:时间点判断步骤:
判断是否日志块的时间戳字段是否小于或等于恢复目标时间点,如是则转第八步;如否则转第五步;
第五步:日志判断步骤:
判断日志块的类型,如是指针块,转第七步;如是校验块,转第六步;
第六步:校验块处理步骤:
首先:读取校验块的块号字段值,记为n1;
然后:在数据恢复缓冲区中查找块号字段为n1的数据恢复缓冲区结点,如果查到,则将校验块的载荷字段值插入该数据恢复缓冲结点的校验值队列中;否则,在内存中生成一个数据恢复缓冲区结点,将该结点的块号字段值设置为n1、 备份数据块指针字段设置为空,将校验块的载荷字段值插入该结点的校验值队列中,并将该结点插入数据恢复缓冲区,转第二步;
第七步:指针块处理步骤:
首先:读取指针块的块号字段值,记为n2,在数据恢复缓冲区中查找块号字段为n2的数据恢复缓冲区结点,如果查到,则将指针块的载荷字段值存入该数据恢复缓冲区结点的备份数据块指针字段,并将该数据恢复缓冲区结点的校验值队列清空;否则,在内存中生成一个数据恢复缓冲区结点,将该结点的块号字段设置为n2、校验值队列设置为空,将指针块的载荷字段值存入该结点的备份数据块指针字段,并将该结点插入数据恢复缓冲区,转第二步;
第八步:数据恢复步骤:
首先:从数据缓冲区取出一个数据恢复缓冲区结点,读取该数据恢复缓冲区结点的块号字段值,记为n3,将该数据恢复缓冲区结点的校验值队列中的所有校验值依次进行异或运算,得到结果P1;
然后:判断该数据恢复缓冲区结点的备份数据块指针字段是否为空,如是则从数据区中读取逻辑单元号为n3的数据块,将该数据块和P1进行异或运算,结果写入该数据块;如否,从备份区中读取地址为该数据恢复缓冲区结点的备份数据块指针字段值的数据块,将该数据块和P1进行异或运算,结果写入数据区中逻辑单元号为n3的数据块,将该数据恢复缓冲区结点从数据恢复缓冲区中删除;
第九步:数据恢复结束判断步骤:
判断数据恢复缓冲区是否为空,如为非空,转第八步,如为空,则数据恢复结束。
所述计数布隆过滤器留驻在内存中。
步骤(3)中在计数布隆过滤器中查询值n,如果没查到,则表明该数据块的最近写操作次数为0。
所述数据块的最近写操作次数分两种情况,第一种为没有产生过该数据块的指针块,则其最近写操作次数是指自第一次对该数据块进行写操作以来对该数据块的写操作次数,第二种为产生过该数据块的指针块,则其最近写操作次数是指自最近一次产生该数据块的指针块以来对该数据块的写操作次数。
所述写操作缓冲区留驻在内存中。
所述写操作缓冲区和数据恢复缓冲区为内存哈希表;所述内存哈希表由桶组和结点链组成;所述桶组里的每个桶对应一个编号,并建立数据块逻辑单元号到桶编号之间的映射,桶里存放该桶所属结点链的头指针,桶所属结点链里的结点存储映射到该桶的数据块的信息;如果内存哈希表用作写操作缓冲区,则其桶所属结点链里的结点为写操作缓冲区结点,否则为数据恢复缓冲区结点。
所述写操作缓冲区结点包括块号字段、时间戳字段、计数器字段和链表指针字段;块号字段、时间戳字段和计数器字段分别记录该写操作缓冲区结点对应的校验块的块号字段值、时间戳字段值和计数器字段值;所述链表指针字段用于链接该写操作缓冲区中同一个桶中的结点。
所述数据恢复缓冲区结点包括块号字段、备份数据块指针字段、校验值队列指针字段和链表指针字段;块号字段用于存储待恢复数据块的逻辑单元号;所述备份数据块指针字段用于存储待恢复数据块的备份数据块的地址;所述校验值队列指针字段用于存储该结点的校验值队列的地址;所述校验值队列用于存储待恢复数据块的异或校验值;所述链表指针字段用于链接该数据恢复缓冲区中同一个桶中的结点。
跳跃恢复链的生成过程为:
首先:数据块B中的内容为BT(0);
然后:在T(m) 时刻,对数据块B有写操作请求,待写入内容为BT(m),系统为该写操作请求生成了一个指针块RT(m),则BT(0)被写入备份区,同时数据区中数据块B的内容更新为BT(m),并把BT(0)在备份区中的地址写入指针块RT(m)的载荷字段;其中,m的取值为大于等于0的正整数;
随后:在时刻T(m+1),T(m+2),…,T(m+k),对数据块B有写操作请求,待写入的内容分别为BT(m+1),BT(m+2),…,BT(m+k),则对于每一个写请求,系统会生成一个校验块,将校验块写入日志区,并将数据区中数据块B的内容更新,所生成的校验块为PT(m+1),PT(m+2),…,PT(m+k),其中,校验块的异或校验值通过算式PT(m+i)= BT(m+i)⊕BT(m+i-1)得到,
其中,i=1,2,…,k,记校验块PT(m+i)的异或校验值为PT(m+i),⊕为异或运算符;
生成连续k个校验块后;
对于下一个时刻T(m+k+1)的写操作请求,系统又生成一个指针块RT(m+k+1),如此周期性地进行,在日志区中形成跳跃恢复链。
通过以上技术方案,本发明的有益效果为:本发明所述的写操作算法保证了每一个数据块在经过连续k次写操作生成k个校验块后下一次写操作必生成一个指针块,也就是对任意一个数据块来说,在跳跃恢复链中每连续k个校验块后周期性地插入一个指针块,这样,在数据恢复算法的日志扫描过程结束后,数据恢复缓冲区中每一个结点的校验值队列的长度都小于或等于k,这保证了任意数据块的数据恢复过程最多执行k次异或操作,从而保证了数据恢复过程的时间开销和恢复目标时间点无关,也就是说,本发明的数据恢复时间和恢复点时间跨度基本无关,有效地解决了久远数据的快速恢复问题,本发明采用跳跃恢复链技术,可以在不需要插入快照的情况下保证系统用较短的时间恢复到故障前的任意时间点;在写操作算法和数据恢复算法中采用了数据缓冲技术,从而提高了跳跃恢复链的写操作性能和数据恢复性能。
附图说明
图1为本发明的写操作算法流程图;
图2为本发明的数据恢复算法流程图;
图3 为本发明的内存哈希表结构示意图;
图4 为本发明的写操作缓冲区结点结构图;
图5 为本发明的数据恢复缓冲区结点结构图;
图6为本发明的日志块格式示意图;
图7为本发明的跳跃恢复链生成示意图。
具体实施方式
基于跳跃恢复链的连续数据保护方法,如图1~7所示,其中,所述跳跃恢复链的生成过程为:
首先:数据块B中的内容为BT(0);
然后:在T(m) 时刻,对数据块B有写操作请求,待写入内容为BT(m),系统为该写操作请求生成了一个指针块RT(m),则BT(0)被写入备份区,同时数据区中数据块B的内容更新为BT(m),并把BT(0)在备份区中的地址写入指针块RT(m)的载荷字段;m的取值为大于等于0的正整数。
随后:在时刻T(m+1),T(m+2),…,T(m+k),对数据块B有写操作请求,待写入的内容分别为BT(m+1),BT(m+2),…,BT(m+k),则对于每一个写请求,系统会生成一个校验块,将校验块写入日志区,并将数据区中数据块B的内容更新,所生成的校验块为PT(m+1),PT(m+2),…,PT(m+k),其中,校验块的异或校验值通过算式PT(m+i)= BT(m+i)⊕BT(m+i-1)得到,
其中,i=0,1,…,k,记校验块PT(m+i)的异或校验值为PT(m+i),⊕为异或运算符;
生成连续k个校验块后;
对于下一个时刻T(m+k+1)的写操作请求,系统又生成一个指针块RT(m+k+1),如此周期性地进行,在日志区中形成跳跃恢复链。
本发明的跳跃恢复链有利于数据的快速恢复,在任意时刻,想要恢复到过去的某个时间点T(m+i)时状态(此时数据块B的内容为BT(m+i))只需要执行如下操作:BT(m+i) =BT(m+k)⊕PT(m+k) ⊕PT(m+k-1)⊕…⊕PT(m+i+1) (i=0,1,…,k),其中数据块BT(m+k)由指针块RT(m+k+1)得到,上述异或运算最多执行k次,保证了数据恢复耗时和恢复点时间跨度无关,也就是和恢复起始时间点到恢复目标时间点之间的时间跨度无关,有效地解决了久远数据的快速恢复问题。
所述的跳跃恢复链由日志块组成,日志块为校验块或指针块;日志块由块号字段、时间戳字段、计数器字段和载荷字段组成。
所述块号字段存储该日志块所对应的数据块在数据区中的逻辑单元号;所述时间戳字段存储该日志块生成时的时间戳,也是该日志块所对应的数据块的写操作时间;所述计数器字段表示该日志块在跳跃恢复链中的周期性编号,计数器字段为0时标明该日志块为指针块,计数器字段为大于0小于或等于k的正整数时标明该日志块为校验块;所述载荷字段的意义决定于该日志块的类型,当该日志块为指针块时表示所对应的备份数据块在备份区的地址,当该日志块为校验块时表示写操作前后对应的数据块的异或校验值。
本发明所述的方法包括写操作算法和数据恢复算法;其中写操作算法依次包括如下步骤:
(1)初始化步骤:
首先:从磁盘配置文件上读取参数k,其中,k为设定的指针块插入周期,k为大于1的正整数,在内存中生成一个结点数为0的写操作缓冲区,所述写操作缓冲区留驻在内存中,便于快速查询。所述的写操作缓冲区结点包括块号字段、时间戳字段、计数器字段和链表指针字段;块号字段、时间戳字段和计数器字段分别记录该写操作缓冲区结点对应的校验块的块号字段值、时间戳字段值和计数器字段值;所述链表指针字段用于链接该写操作缓冲区中同一个桶中的结点。
其中,指针块插入周期k是一个重要参数,k设置过小,备份区存储开销较大,k设置过大,数据恢复耗时较长,因此需要根据系统使用情况设置恰当的k值,对于写操作频繁的系统,k可设置为较大的数值,反之则设置为较小的数值,在典型应用下,k可设置为64。
然后:判断是否是系统配置初期,如是则在内存中生成一个空的计数布隆过滤器;如否从磁盘配置文件上将备份的计数布隆过滤器读入内存;本实施例中,所述计数布隆过滤器留驻在内存中,便于快速查询。其中,判断系统配置初期的方法为成熟的现有技术。
其中,计数布隆过滤器大小可以根据系统规模来设定,设x为计数布隆过滤器中计数器的个数,u为计数布隆过滤器的计数器位数,y为计数布隆过滤器中存储的数据块逻辑单元号的个数,b为数据块大小,假设系统中所有的数据块的逻辑单元号都存储在计数布隆过滤器中,实际上,仅仅最近写操作次数大于0的数据块的逻辑单元号存储在其中,则y就是系统中所有数据块的个数,代表了系统规模;要保证计数布隆过滤器的误警率小于2%,只须保证x/y大于8,在典型应用下,u可取值4,b一般为2KB,则计数布隆过滤器大小可设为ux=4x=32y,对于一个1TB容量的系统,其包含的数据块个数y=1TB/2KB=229,计数布隆过滤器大小可设为229*32bit,即2GB。
(2)接收写请求步骤:
从文件系统接收写操作请求,从写操作请求中提取数据块的逻辑单元号和内容,分别记数据块逻辑单元号值为n;数据块的内容为D1;
(3)过滤器查询步骤:
在计数布隆过滤器中查询逻辑单元号值n,如果查到则转步骤(5);否则,转步骤(4);
(4)第一类写步骤,
首先:将逻辑单元号的值n插入计数布隆过滤器;
然后:从数据区中读取逻辑单元号值为n的数据块,其内容记为D0,将数据区中逻辑单元号值为n的数据块的内容更新为D1;
随后:在内存中生成一个校验块,将该校验块的块号字段值设置为n、计数器字段设置为1、时间戳字段设置为当前系统时间、载荷字段设置为异或校验值D0⊕D1,其中⊕为异或运算符;
将该校验块写入日志区,并追加到跳跃恢复链的尾部;
最后:在内存中生成一个写操作缓冲区结点,将该写操作缓冲区结点的块号字段值设置为n、 计数器字段设置为1、 时间戳字段设置为当前系统时间,将该结点插入写操作缓冲区中,判断写操作缓冲区是否满,如否则进行步骤(12),如是,则将按时间戳字段的大小从小到大删除写操作缓冲区结点,直至写操作缓冲区有空余空间,并转步骤(12);
(5)缓冲区查询步骤:
在写操作缓冲区中查询块号字段值为n的写操作缓冲区结点,如查到,则记查到的写操作缓冲区结点为node,转步骤(6);如否,则转步骤(9);
(6)计数器判断步骤:
记node的计数器字段值为c,判断设定的指针块插入周期k是否大于计数器字段值c,如是,则转步骤(7);否则,转步骤(8);
(7)第二类写步骤:
首先:从数据区中读取逻辑单元号为n的数据块,其内容记为D0,将数据区中逻辑单元号值为n的数据块的内容更新为D1;
然后:在内存中生成一个校验块,将该校验块的块号字段值设置为n、计数器字段设置为c+1、时间戳字段设置为当前系统时间、载荷字段设置为异或校验值D0⊕D1,其中⊕为异或运算符;
随后:将该校验块写入日志区,追加到跳跃恢复链的尾部;跳跃恢复链的尾部为跳跃恢复链的终点。
最后:将写操作缓冲区中node结点的计数器字段更新为c+1、时间戳字段更新为当前系统时间;转步骤(12);
(8)第三类写步骤:
首先:从数据区中读取逻辑单元号值为n的数据块,将该数据块写入备份区,并将其在备份区中的地址记为addr,将数据区中逻辑单元号为n的数据块的内容更新为D1;
然后:在内存中生成一个指针块,将该指针块的块号字段值设置为n、计数器字段设置为0、时间戳字段设置为当前系统时间、载荷字段设置为addr,将该指针块写入日志区,追加到跳跃恢复链的尾部;
最后:将node结点从写操作缓冲区中删除,将值n从计数布隆过滤器中删除;转步骤(12);
(9)日志查询步骤:
首先:从尾部开始向前扫描跳跃恢复链,直至找到第一个块号字段值为n的日志块,转步骤(10);否则,转步骤(4);
(10)日志判断步骤:
判断日志块的类型:如是指针块,转步骤(4);如是校验块,记为P,并转步骤(11);
(11)写缓冲区步骤:
首先:在内存中生成一个写操作缓冲区结点,记为node,将node的块号字段值设置为n、计数器字段值设置为P的计数器字段值、时间戳字段设置为当前系统时间;
然后:将node插入写操作缓冲区中,判断写操作缓冲区是否满,如否则转步骤(6),如是将按时间戳字段的大小,从小到达删除写操作缓冲区结点,直至写操作缓冲区有空余空间,并转步骤(6);
(12)运行结束判断步骤:
判断是否接收到运行结束指令,如否则转步骤(2);如是,则转步骤(13);
(13)结束步骤:
停止接收文件系统写操作请求,将内存中计数布隆过滤器的内容写入磁盘配置文件后退出。
步骤(3)中在计数布隆过滤器中查询值n,如果没查到,则表明该数据块的最近写操作次数为0。其中,所述数据块的最近写操作次数分两种情况,第一种为没有产生过该数据块的指针块,则其最近写操作次数是指自第一次对该数据块进行写操作以来对该数据块的写操作次数,第二种为产生过该数据块的指针块,则其最近写操作次数是指自最近一次产生该数据块的指针块以来对该数据块的写操作次数。
所述的写操作算法使用了三级查询机构,即过滤器查询步骤,缓冲区查询步骤和日志查询步骤可以快速确定待写数据块的类型。
所述数据恢复算法包括日志扫描过程和数据恢复过程,其中数据恢复算法依次包括如下步骤:
第一步:初始化步骤:
首先:退出写操作算法,停止接收文件系统写操作请求;
然后:设置恢复目标时间点,在内存中生成一个结点数为0的数据恢复缓冲区,设置读指针,将其指向日志区中跳跃恢复链尾部的日志块;
其中,所述的数据恢复缓冲区结点包括块号字段、备份数据块指针字段、校验值队列指针字段和链表指针字段;块号字段用于存储待恢复数据块的逻辑单元号;所述备份数据块指针字段用于存储待恢复数据块的备份数据块的地址;所述校验值队列指针字段用于存储该结点的校验值队列的地址;所述校验值队列用于存储待恢复数据块的异或校验值;所述链表指针字段用于链接该数据恢复缓冲区中同一个桶中的结点。
第二步:读日志步骤:
从跳跃恢复链中读取一个日志块,读指针向跳跃恢复链头部方向移动一步,指向下一个日志块; 其中,跳跃恢复链头部为跳跃恢复链的初始端。
第三步:日志读完判断步骤:
判断跳跃恢复链中的日志块是否读完,如是则转第八步;如否则转第四步;
第四步:时间点判断步骤:
判断日志块的时间戳字段是否小于或等于恢复目标时间点,如是则转第八步;如否则转第五步;
第五步:日志判断步骤:
判断日志块的类型,如是指针块,转第七步;如是校验块,转第六步;
第六步:校验块处理步骤:
首先:读取校验块的块号字段值,记为n1;
然后:在数据恢复缓冲区中查找块号字段为n1的数据恢复缓冲区结点,如果查到,则将校验块的载荷字段值插入该数据恢复缓冲区结点的校验值队列中;否则,在内存中生成一个数据恢复缓冲区结点,将该结点的块号字段设置为n1、 备份数据块指针字段设置为空,将校验块的载荷字段值插入该结点的校验值队列中,并将该结点插入数据恢复缓冲区,转第二步;
第七步:指针块处理步骤:
首先:读取指针块的块号字段值,记为n2,在数据恢复缓冲区中查找块号字段为n2的数据恢复缓冲区结点,如果查到,则将指针块的载荷字段值存入该数据恢复缓冲区结点的备份数据块指针字段,并将该数据恢复缓冲区结点的校验值队列清空;否则,在内存中生成一个数据恢复缓冲区结点,将该结点的块号字段值设置为n2、校验值队列设置为空,将指针块的载荷字段值存入该结点的备份数据块指针字段,并将该结点插入数据恢复缓冲区,转第二步;
第八步:数据恢复步骤:
首先:从数据缓冲区取出一个数据恢复缓冲区结点,读取该数据恢复缓冲区结点的块号字段值,记为n3,将该数据恢复缓冲区结点的校验值队列中的所有校验值依次进行异或运算,得到结果P1;
然后:判断该数据恢复缓冲区结点的备份数据块指针字段是否为空,如是则从数据区中读取逻辑单元号为n3的数据块,将该数据块和P1进行异或运算,结果写入该数据块;如否,从备份区中读取地址为该数据恢复缓冲区结点的备份数据块指针字段值的数据块,将该数据块和P1进行异或运算,结果写入数据区中逻辑单元号为n3的数据块,将该数据恢复缓冲区结点从数据缓冲区中删除;
进入第九步;
第九步:数据恢复结束判断步骤:
判断数据缓冲区是否为空,如为非空,转第八步,如为空,则数据恢复结束。
本实施例中,所述写操作缓冲区和数据恢复缓冲区设计为内存哈希表;所述内存哈希表由桶组和结点链组成;所述桶组里的每个桶对应一个编号,并建立数据块逻辑单元号到桶编号之间的映射,桶里存放该桶所属结点链的头指针,桶所属结点链里的结点存储映射到该桶的数据块的信息;如果内存哈希表用作写操作缓冲区,则其桶所属结点链里的结点为写操作缓冲区结点,否则为数据恢复缓冲区结点。
在实施的时候,写操作算法保证了每一个数据块在经过连续k次写操作生成k个校验块后下一次写操作必生成一个指针块,也就是对任意一个数据块来说,在跳跃恢复链中每连续k个校验块后周期性地插入一个指针块,这样,在数据恢复算法的日志扫描过程结束后,数据恢复缓冲区中每一个结点的校验值队列的长度都小于或等于k,这保证了任意数据块的数据恢复过程最多执行k次异或操作,从而保证了数据恢复过程的时间开销和恢复目标时间点无关,也就是说,本发明的数据恢复时间和恢复点时间跨度基本无关,有效地解决了久远数据的快速恢复问题。
本发明所述的基于跳跃恢复链的连续数据保护方法,针对传统的连续数据保护技术日志链条长,链条失效概率高,恢复久远数据耗时较长的缺点,采用跳跃恢复链技术,预设一个大于1的正整数k,对任一数据块,在对该数据块进行k次写操作、并记录下了每次写操作前后数据块的异或校验值后,周期性地备份一次该数据块,将备份数据块的地址记录在该数据块的指针块中,将指针块插入日志链中形成跳跃恢复链,从而使得数据恢复时间和恢复点时间跨度无关,有效解决久远数据的快速恢复问题;本发明周期性地在日志链条中插入指针块而不是按照固定时间间隔在其中插入整个系统的快照,既考虑到了数据块的写操作频率差异,又完全避免了快照维护开销。
Claims (10)
1.基于跳跃恢复链的连续数据保护方法,所述跳跃恢复链由日志块组成,日志块为校验块或指针块;日志块由块号字段、时间戳字段、计数器字段和载荷字段组成;
其特征在于:包括写操作算法和数据恢复算法;所述写操作算法依次包括如下步骤:
(1)初始化步骤:
首先:从磁盘配置文件上读取参数k,其中,k为设定的指针块插入周期,k为大于1的正整数,在内存中生成一个结点数为0的写操作缓冲区;
然后:判断是否是系统配置初期,如是则在内存中生成一个空的计数布隆过滤器;如否从磁盘配置文件上将备份的计数布隆过滤器读入内存;
(2)接收写请求步骤:
从文件系统接收写操作请求,从写操作请求中提取数据块的逻辑单元号和内容,分别记数据块的逻辑单元号值为n,数据块的内容为D1;n为正整数;
(3)过滤器查询步骤:
在计数布隆过滤器中查询值n,如果查到则转步骤(5);否则,转步骤(4);
(4)第一类写步骤,
首先:将值n插入计数布隆过滤器;
然后:从数据区中读取逻辑单元号值为n的数据块,其内容记为D0,将数据区中逻辑单元号为n的数据块的内容更新为D1;
随后:在内存中生成一个校验块,将该校验块的块号字段值设置为n、计数器字段设置为1、时间戳字段设置为当前系统时间、载荷字段设置为异或校验值D0⊕D1,其中⊕为异或运算符;
将该校验块写入日志区,并追加到跳跃恢复链的尾部;
最后:在内存中生成一个写操作缓冲区结点,将该写操作缓冲区结点的块号字段值设置为n、 计数器字段设置为1、 时间戳字段设置为当前系统时间,将该结点插入写操作缓冲区中,判断写操作缓冲区是否满,如否则进行步骤(12),如是,则将按时间戳字段的大小从小到大删除写操作缓冲区结点,直至写操作缓冲区有空余空间,并转步骤(12);
(5)缓冲区查询步骤:
在写操作缓冲区中查询块号字段值为n的写操作缓冲区结点,如查到,则记查到的写操作缓冲区结点为node,转步骤(6);如否,则转步骤(9);
(6)计数器判断步骤:
记node的计数器字段值为c,判断设定的指针块插入周期k是否大于计数器字段值c,如是,则转步骤(7);否则,转步骤(8);
(7)第二类写步骤:
首先:从数据区中读取逻辑单元号值为n的数据块,其内容记为D0,将数据区中逻辑单元号值为n的数据块的内容更新为D1;
然后:在内存中生成一个校验块,将该校验块的块号字段值设置为n、计数器字段设置为c+1、时间戳字段设置为当前系统时间、载荷字段设置为异或校验值D0⊕D1,其中⊕为异或运算符;
随后:将该校验块写入日志区,追加到跳跃恢复链的尾部;
最后:将写操作缓冲区中node结点的计数器字段更新为c+1、时间戳字段更新为当前系统时间;转步骤(12);
(8)第三类写步骤:
首先:从数据区中读取逻辑单元号为值n的数据块,将该数据块写入备份区,并将其在备份区中的地址记为addr,将数据区中逻辑单元号值为n的数据块的内容更新为D1;
然后:在内存中生成一个指针块,将该指针块的块号字段值设置为n、计数器字段设置为0、时间戳字段设置为当前系统时间、载荷字段设置为addr,将该指针块写入日志区,追加到跳跃恢复链的尾部;
最后:将node结点从写操作缓冲区中删除,将值n从计数布隆过滤器中删除;转步骤(12);
日志查询步骤:
首先:从尾部开始向前扫描跳跃恢复链,直至找到第一个块号字段值为n的日志块,转步骤(10);否则,转步骤(4);
(10)日志判断步骤:
判断日志块的类型:如是指针块,转步骤(4);如是校验块,记为P,并转步骤(11);
(11)写缓冲区步骤:
首先:在内存中生成一个写操作缓冲区结点,记为node,将node的块号字段值设置为n、计数器字段设置为P的计数器字段值、时间戳字段设置为当前系统时间;
然后:将node插入写操作缓冲区中,判断写操作缓冲区是否满,如否则转步骤(6),如是将按时间戳字段的大小,从小到大删除写操作缓冲区结点,直至写操作缓冲区有空余空间,并转步骤(6);
(12)运行结束判断步骤:
判断是否接收到运行结束指令,如否则转步骤(2);如是,则转步骤(13);
(13)结束步骤:
停止接收文件系统写操作请求,将内存中计数布隆过滤器的内容写入磁盘配置文件后退出。
2.如权利要求1所述的基于跳跃恢复链的连续数据保护方法,其特征在于:
所述数据恢复算法依次包括如下步骤:
第一步:初始化步骤:
首先:退出写操作算法,停止接收文件系统写操作请求;
然后:设置恢复目标时间点,在内存中生成一个结点数为0的数据恢复缓冲区,设置读指针,将其指向日志区中跳跃恢复链尾部的日志块;
第二步:读日志步骤:
从跳跃恢复链中读取一个日志块,读指针向跳跃恢复链头部方向移动一步,指向下一个日志块;
第三步:日志读完判断步骤:
判断跳跃恢复链中的日志块是否读完,如是则转第八步;如否则转第四步;
第四步:时间点判断步骤:
判断是否日志块的时间戳字段是否小于或等于恢复目标时间点,如是则转第八步;如否则转第五步;
第五步:日志判断步骤:
判断日志块的类型,如是指针块,转第七步;如是校验块,转第六步;
第六步:校验块处理步骤:
首先:读取校验块的块号字段值,记为n1;
然后:在数据恢复缓冲区中查找块号字段为n1的数据恢复缓冲区结点,如果查到,则将校验块的载荷字段值插入该数据恢复缓冲结点的校验值队列中;否则,在内存中生成一个数据恢复缓冲区结点,将该结点的块号字段值设置为n1、 备份数据块指针字段设置为空,将校验块的载荷字段值插入该结点的校验值队列中,并将该结点插入数据恢复缓冲区,转第二步;
第七步:指针块处理步骤:
首先:读取指针块的块号字段值,记为n2,在数据恢复缓冲区中查找块号字段为n2的数据恢复缓冲区结点,如果查到,则将指针块的载荷字段值存入该数据恢复缓冲区结点的备份数据块指针字段,并将该数据恢复缓冲区结点的校验值队列清空;否则,在内存中生成一个数据恢复缓冲区结点,将该结点的块号字段设置为n2、校验值队列设置为空,将指针块的载荷字段值存入该结点的备份数据块指针字段,并将该结点插入数据恢复缓冲区,转第二步;
第八步:数据恢复步骤:
首先:从数据缓冲区取出一个数据恢复缓冲区结点,读取该数据恢复缓冲区结点的块号字段值,记为n3,将该数据恢复缓冲区结点的校验值队列中的所有校验值依次进行异或运算,得到结果P1;
然后:判断该数据恢复缓冲区结点的备份数据块指针字段是否为空,如是则从数据区中读取逻辑单元号为n3的数据块,将该数据块和P1进行异或运算,结果写入该数据块;如否,从备份区中读取地址为该数据恢复缓冲区结点的备份数据块指针字段值的数据块,将该数据块和P1进行异或运算,结果写入数据区中逻辑单元号为n3的数据块,将该数据恢复缓冲区结点从数据恢复缓冲区中删除;
第九步:数据恢复结束判断步骤:
判断数据缓冲区是否为空,如为非空,转第八步,如为空,则数据恢复结束。
3.如权利要求1或2所述的基于跳跃恢复链的连续数据保护方法,其特征在于:所述计数布隆过滤器留驻在内存中。
4.如权利要求3所述的基于跳跃恢复链的连续数据保护方法,其特征在于:步骤(3)中在计数布隆过滤器中查询值n,如果没查到,则表明该数据块的最近写操作次数为0。
5.如权利要求4所述的基于跳跃恢复链的连续数据保护方法,其特征在于:所述数据块的最近写操作次数分两种情况,第一种为没有产生过该数据块的指针块,则其最近写操作次数是指自第一次对该数据块进行写操作以来对该数据块的写操作次数,第二种为产生过该数据块的指针块,则其最近写操作次数是指自最近一次产生该数据块的指针块以来对该数据块的写操作次数。
6.如权利要求5所述的基于跳跃恢复链的连续数据保护方法,其特征在于:所述写操作缓冲区留驻在内存中。
7.如权利要求6所述的基于跳跃恢复链的连续数据保护方法,其特征在于:所述写操作缓冲区和数据恢复缓冲区为内存哈希表;所述内存哈希表由桶组和结点链组成;所述桶组里的每个桶对应一个编号,并建立数据块逻辑单元号到桶编号之间的映射,桶里存放该桶所属结点链的头指针,桶所属结点链里的结点存储映射到该桶的数据块的信息;如果内存哈希表用作写操作缓冲区,则其桶所属结点链里的结点为写操作缓冲区结点,否则为数据恢复缓冲区结点。
8.如权利要求7所述的基于跳跃恢复链的连续数据保护方法,其特征在于:所述写操作缓冲区结点包括块号字段、时间戳字段、计数器字段和链表指针字段;块号字段、时间戳字段和计数器字段分别记录该写操作缓冲区结点对应的校验块的块号字段值、时间戳字段值和计数器字段值;所述链表指针字段用于链接该写操作缓冲区中同一个桶中的结点。
9.如权利要求8所述的基于跳跃恢复链的连续数据保护方法,其特征在于:所述数据恢复缓冲区结点包括块号字段、备份数据块指针字段、校验值队列指针字段和链表指针字段;块号字段用于存储待恢复数据块的逻辑单元号;所述备份数据块指针字段用于存储待恢复数据块的备份数据块的地址;所述校验值队列指针字段用于存储该结点的校验值队列的地址;所述校验值队列用于存储待恢复数据块的异或校验值;所述链表指针字段用于链接该数据恢复缓冲区中同一个桶中的结点。
10.如权利要求9所述的基于跳跃恢复链的连续数据保护方法,其特征在于:跳跃恢复链的生成过程为:
首先:数据块B中的内容为BT(0);
然后:在T(m) 时刻,对数据块B有写操作请求,待写入内容为BT(m),系统为该写操作请求生成了一个指针块RT(m),则BT(0)被写入备份区,同时数据区中数据块B的内容更新为BT(m),并把BT(0)在备份区中的地址写入指针块RT(m)的载荷字段;其中,m的取值为大于等于0的正整数;
随后:在时刻T(m+1),T(m+2),…,T(m+k),对数据块B有写操作请求,待写入的内容分别为BT(m+1),BT(m+2),…,BT(m+k),则对于每一个写请求,系统会生成一个校验块,将校验块写入日志区,并将数据区中数据块B的内容更新,所生成的校验块为PT(m+1),PT(m+2),…,PT(m+k),其中,校验块的异或校验值通过算式PT(m+i)= BT(m+i)⊕BT(m+i-1)得到,
其中,i=1,2,…,k,记校验块PT(m+i)的异或校验值为PT(m+i),⊕为异或运算符;
生成连续k个校验块后;
对于下一个时刻T(m+k+1)的写操作请求,系统又生成一个指针块RT(m+k+1),如此周期性地进行,在日志区中形成跳跃恢复链。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711086161.7A CN107678892B (zh) | 2017-11-07 | 2017-11-07 | 基于跳跃恢复链的连续数据保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711086161.7A CN107678892B (zh) | 2017-11-07 | 2017-11-07 | 基于跳跃恢复链的连续数据保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107678892A true CN107678892A (zh) | 2018-02-09 |
CN107678892B CN107678892B (zh) | 2021-05-04 |
Family
ID=61146459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711086161.7A Active CN107678892B (zh) | 2017-11-07 | 2017-11-07 | 基于跳跃恢复链的连续数据保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107678892B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445703A (zh) * | 2018-10-26 | 2019-03-08 | 黄淮学院 | 一种基于块级数据去重的Delta压缩存储组件 |
CN111400212A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 一种基于远程直接数据存取的传输方法、设备 |
CN111581018A (zh) * | 2020-04-20 | 2020-08-25 | 深圳震有科技股份有限公司 | 一种数据恢复方法、智能终端及存储介质 |
CN111813121A (zh) * | 2020-07-13 | 2020-10-23 | 陕西理工大学 | 基于距离-角度优先级的多移动机器人编队避障方法 |
WO2024056182A1 (en) * | 2022-09-16 | 2024-03-21 | Huawei Technologies Co., Ltd. | Method and system for making a file-level backup from a first storage to a second storage |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100122053A1 (en) * | 2005-12-19 | 2010-05-13 | Commvault Systems, Inc. | Systems and methods for performing data replication |
CN102063264A (zh) * | 2009-11-18 | 2011-05-18 | 成都市华为赛门铁克科技有限公司 | 一种处理数据的方法、设备及系统 |
CN102508781A (zh) * | 2004-09-14 | 2012-06-20 | 科威尔公司 | 多核架构中的调试 |
CN104115133A (zh) * | 2012-02-16 | 2014-10-22 | 苹果公司 | 复合非易失性存储设备的数据迁移 |
CN104781791A (zh) * | 2011-12-05 | 2015-07-15 | 持续电信解决方案公司 | 通用可插拔云灾难恢复系统 |
CN104866435A (zh) * | 2015-06-06 | 2015-08-26 | 成都云祺科技有限公司 | 一种连续数据保护方法 |
US20150370860A1 (en) * | 2010-04-06 | 2015-12-24 | Percona, Llc | High-Performance Streaming Dictionary |
CN105474166A (zh) * | 2013-03-15 | 2016-04-06 | 先进元素科技公司 | 用于有目的计算的方法和系统 |
CN105487939A (zh) * | 2014-10-10 | 2016-04-13 | 中兴通讯股份有限公司 | 一种闪存文件的数据恢复方法和装置 |
CN105843707A (zh) * | 2016-03-28 | 2016-08-10 | 上海上讯信息技术股份有限公司 | 数据库快速恢复方法及设备 |
-
2017
- 2017-11-07 CN CN201711086161.7A patent/CN107678892B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508781A (zh) * | 2004-09-14 | 2012-06-20 | 科威尔公司 | 多核架构中的调试 |
US20100122053A1 (en) * | 2005-12-19 | 2010-05-13 | Commvault Systems, Inc. | Systems and methods for performing data replication |
CN102063264A (zh) * | 2009-11-18 | 2011-05-18 | 成都市华为赛门铁克科技有限公司 | 一种处理数据的方法、设备及系统 |
US20150370860A1 (en) * | 2010-04-06 | 2015-12-24 | Percona, Llc | High-Performance Streaming Dictionary |
CN104781791A (zh) * | 2011-12-05 | 2015-07-15 | 持续电信解决方案公司 | 通用可插拔云灾难恢复系统 |
CN104115133A (zh) * | 2012-02-16 | 2014-10-22 | 苹果公司 | 复合非易失性存储设备的数据迁移 |
CN105474166A (zh) * | 2013-03-15 | 2016-04-06 | 先进元素科技公司 | 用于有目的计算的方法和系统 |
CN105487939A (zh) * | 2014-10-10 | 2016-04-13 | 中兴通讯股份有限公司 | 一种闪存文件的数据恢复方法和装置 |
CN104866435A (zh) * | 2015-06-06 | 2015-08-26 | 成都云祺科技有限公司 | 一种连续数据保护方法 |
CN105843707A (zh) * | 2016-03-28 | 2016-08-10 | 上海上讯信息技术股份有限公司 | 数据库快速恢复方法及设备 |
Non-Patent Citations (1)
Title |
---|
石伟: ""基于闪存特性的存储优化及应用研究"", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445703A (zh) * | 2018-10-26 | 2019-03-08 | 黄淮学院 | 一种基于块级数据去重的Delta压缩存储组件 |
CN109445703B (zh) * | 2018-10-26 | 2019-10-25 | 黄淮学院 | 一种基于块级数据去重的Delta压缩存储组件 |
CN111400212A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 一种基于远程直接数据存取的传输方法、设备 |
CN111581018A (zh) * | 2020-04-20 | 2020-08-25 | 深圳震有科技股份有限公司 | 一种数据恢复方法、智能终端及存储介质 |
CN111813121A (zh) * | 2020-07-13 | 2020-10-23 | 陕西理工大学 | 基于距离-角度优先级的多移动机器人编队避障方法 |
CN111813121B (zh) * | 2020-07-13 | 2023-07-18 | 陕西理工大学 | 基于距离-角度优先级的多移动机器人编队避障方法 |
WO2024056182A1 (en) * | 2022-09-16 | 2024-03-21 | Huawei Technologies Co., Ltd. | Method and system for making a file-level backup from a first storage to a second storage |
Also Published As
Publication number | Publication date |
---|---|
CN107678892B (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107678892A (zh) | 基于跳跃恢复链的连续数据保护方法 | |
CN101930404B (zh) | 存储装置及其操作方法 | |
US8166263B2 (en) | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices | |
CN101430657B (zh) | 一种连续数据保护方法 | |
US20100146213A1 (en) | Data Cache Processing Method, System And Data Cache Apparatus | |
CN103270499B (zh) | 日志存储方法及系统 | |
CN106682077A (zh) | 一种基于Hadoop技术的海量时序数据存储实现方法 | |
CN109445702A (zh) | 一种块级数据去重存储系统 | |
WO2014015828A1 (zh) | 数据存储空间的处理方法、处理系统及数据存储服务器 | |
CN102521269A (zh) | 一种基于索引的计算机连续数据保护方法 | |
CN101419564A (zh) | 一种采用快照恢复数据的方法和装置 | |
CN108399047A (zh) | 一种闪存文件系统及其数据管理方法 | |
US11269737B2 (en) | Incrementally updating recovery map data for a memory system | |
CN105930097B (zh) | 一种消除局部并行中小写操作的分布校验式磁盘阵列 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN101625703A (zh) | 一种内存数据库的日志合并方法和系统 | |
CN102033930A (zh) | 分布式内存数据库系统 | |
CN105892950A (zh) | 一种磁盘阵列的重建方法及系统 | |
CN105447168B (zh) | Mp4格式的碎片文件恢复与重组的方法 | |
JP2015204125A (ja) | テープメディアへファイルを書き込む所要時間の低減 | |
CN106407224A (zh) | 一种键值存储系统中文件压实的方法和装置 | |
CN103164528B (zh) | 一种音视频数据的索引建立方法 | |
CN111722962A (zh) | 一种针对cdp数据的存储系统及其方法 | |
CN103902434A (zh) | 一种报警日志管理方法及系统 | |
WO2015087509A1 (ja) | 状態保存復元装置、状態保存復元方法、および、記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |