一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种重复数据删除系统中快速备份点合并的方法与流程

2022-02-24 16:30:00 来源:中国专利 TAG:


1.本发明涉及数据存储技术领域,特别涉及一种重复数据删除系统中快速备份点合并的方法。


背景技术:

2.典型的重复数据删除系统将一个备份会话的源数据保存为三种文件,即索引文件、引用文件和数据文件。数据文件用于保存数据块,引用文件用于记录这些数据块的元数据。因此,每个数据文件必须有并且只有一个相应的引用文件。另一方面,索引文件被视为源数据的表示,它们不包含真实数据,但它们可以通过指向引用文件来判断从哪里可以找到真实数据。显然,索引文件中的条目可以指向多个引用文件,因此,后续的备份能够引用备份了的数据块,从而实现重复数据删除(参考图1)。
3.假设备份2有3个唯一的数据块(d1'、d2'、d3'),这些数据块在去重复系统中从未存在过,因此它必须为它们编写新的索引、引用和数据条目。再假设最后2个数据块(d4、d5))与备份1中的块相同,它只需要编写索引条目 i4'和 i5',然后使它们指向备份1的相应引用条目。因此,备份2不必再次写重复的方块,如有必要,它可以从备份1中读取它们。这是重复数据删除系统的基本概念和典型布局(参考图2)。
4.用户的备份空间是有限的,而要备份的数据是无限的。因此,备份软件通常通过合并超过保留策略的备份点,节约用户存储空间,避免完备无法实现、存储容量较少的情况。备份点合并是大多数基于块的备份应用程序中回收存储空间的关键功能。通常,合并操作在备份之间标识新旧版本的数据,然后保留新版本并清除旧版本以释放其存储空间。
5.如上所示,传统的合并程序是从源备份中读取新版本的数据,并写回目标备份以覆盖旧版本的数据。最后,删除源备份以回收它占用的存储空间。具体来说,我们需要在源备份中读新数据,并写回目标备份。以下是详细步骤:1) 应用程序从源备份中根据其索引和引用文件从去重复数据删除系统中读取新数据,然后将其写到目标备份。
6.2) 重复数据删除系统发现重复的方块,因此它不会实际写它们。相反,它只编写索引条目,并指向应用。同时,清除旧索引、对应的引用和对应的数据条目。
7.3) 清除源备份的索引条目。到目前为止,目标备份已保存所有新数据块。
8.合并过程的这种工作流程是直观且易于实现的,因重复数据删除系统只需要专注于写和读过程。数据合并只是根据应用要求由应用程序控制的两者的组合。然而,弊端也很明显,数据块必须从重复数据删除系统传到应用,然后返回到重复数据删除系统。它显然增加了重复数据删除系统本身的负载,以及它与应用程序的通讯带宽。在应用和重复数据删除系统在同一服务器上运行的本地环境中,可以在内网中运行缓解上述开销。但是,如果考虑将重复数据删除系统部署到必须通过 wan 发送数据块的 msp(托管服务提供商)或云时,上述问题就更突出了。


技术实现要素:

9.本发明针对现有技术中的不足,提供一种重复数据删除系统中快速备份点合并的方法,解决了上述传统重复数据删除系统中的备份点合并的主要弊端:数据块必须从重复数据删除系统传到应用,然后返回到重复数据删除系统。本发明在云或者msp场景时能有效减少带宽,在云场景下能减少数据流出为用户节约开支。
10.为实现上述目的,本发明采用以下技术方案:一种重复数据删除系统中快速备份点合并的方法,包括以下步骤:步骤1:备份应用请求启动重复数据删除系统中的备份点合并任务模块;步骤2:备份点合并任务模块接收到请求启动指令后,获取需要进行内容合并的源备份和目标备份;步骤3:备份点合并任务模块检测源备份和目标备份中内容相同的数据块,将源备份中相同内容数据块所对应的索引条目与目标备份中相同内容数据块所对应的索引条目进行交换;备份点合并任务模块检测源备份中包含有目标备份所需要更新替换的数据块,将源备份中新版本内容数据块所对应的索引条目与目标备份文件中旧版本内容数据块所对应的索引条目进行交换;步骤4:备份点合并任务模块将源备份中交换后的索引条目、该索引条目所对应的引用和数据块进行标记删除。
11.为优化上述技术方案,采取的具体措施还包括:进一步地,在步骤3中,备份点合并任务模块还检测目标备份中是否存在源备份中没有的数据块,若存在,则将符合条件数据块的对应索引条目进行保留,使该索引条目仍然指向对应的数据块。
12.本发明的有益效果是:1、本技术使重复数据删除系统与应用程序脱钩,后者只需发送命令,而非处理数据块。因此,它们之间的数据传输时间会显著缩短,尤其是在 wan(如 msp 或云)的环境中。
13.2、在重复数据删除系统内,数据块保持不变,而仅移动尺寸过小的索引条目。因此进一步增加了自我和整体性能的上升。
14.3、合并过程不必运行特定代码来标记未引用的数据块以进行清除。这些数据块仍被源备份引用,但在删除源备份后将顺利被清除。
15.4、避免对引用计数进行不必要的计算。对于传统数据合并中的数据块,我们必须在写到目标备份时增加其引用计数,然后在删除源备份时减少其引用计数。然而,在这个新的过程和布局中,我们不必处理这个问题,因为它们的引用计数在整个合并过程中始终保持不变(在引用计数中,每一个对象负责维护对象所有引用的计数值。当一个新的引用指向对象时,引用计数器就递增,当去掉一个引用时,引用计数就递减)。
16.5、显著提高重复数据删除系统中数据合并的性能。
17.6、将重复数据删除与数据合并过程中的应用脱钩,从而将现有的重复数据删除从 wan 转移到 msp 或云。
18.7、简化数据合并过程,使其更流畅、更直观。
附图说明
19.图1是现有技术中重复数据删除系统的存储示意图。
20.图2是现有技术中重复数据删除系统的基本概念和典型布局示意图;。
21.图3是本发明实施例交换索引示意图。
22.图4是本发明实施例交换索引后示意图。
23.图5是本发明实施例数据合并后示意图。
具体实施方式
24.现在结合附图对本发明作进一步详细的说明。
25.源备份和目标备份在合并前后,源备份和目标备份中的数据块完全不会改变。这里最重要的区别是,目标备份的索引条目已更新,以指向新的数据块,而不是旧的数据块。为了通过提高性能实现同样的结果,本技术的关键思想是重复数据删除系统中源备份和目标备份之间交换索引条目。详细过程描述如下:1、在重复数据删除系统内,保持数据块不变,仅在两个备份之间交换索引条目(参考图图3)。
26.2、交换后,新索引已经在目标备份中,但他们仍然指向新的引用和数据块。此外,旧索引还指向旧的引用和数据块,以便以后清除它们(参考图4)。
27.当索引交换完成时,目标备份已经持有所有新数据块。剩下的唯一工作是清理源备份。在此过程中,引用计数不为0的数据不会被清除,因为它们仍然被索引指向(指目标备份存在源备份中没有的数据块,其所对应的索引不会被清除)。
28.请注意,某些应用程序使用重复数据删除系统作为存储组件,它可能无法知道内部详细信息,因此不可能知道有些块已合并进目标备份。因此,这些也可以成为要合并的块的一部分。在这种情况下,很容易发现索引交换的想法也适用,因为这些块指向与旧块指向相同的引用条目,因此交换它们的速度仍然比传统的合并方法快得多,并导致相同的结果。因此,我们通常批量进行索引条目交换,无论它们是否被合并。这种操作能将对索引的随机读写变为批量顺序读写,有效改善读写性能。
29.下面以一个具体的实施例进行说明。参考图3-图5。
30.应用程序启动备份点合并任务模块;备份点合并任务模块得到要合并的源备份(备份2)和目标备份(备份1);备份点合并任务模块检测到要合并的块d1、d2、d3与d1’、d2’、d3’(d1、d2、d3分别与对应的d1’、d2’、d3’内容相同或者d1’、d2’、d3’分别是对应d1、d2、d3的新版本);备份点合并任务模块在两个备份之间交换索引条目 i1-i3 和 i1'-i3'(参考图3);交换后,i1',i2'和i3'现在在备份1,但他们仍然指向新的引用和数据块。此外,i1、i2 和 i3 还指向旧的引用和数据块,以便以后清除它们(参考图4);当索引交换完成时,备份 1 已经持有所有新数据块(参考图5);备份点合并任务模块将备份2中旧的索引(i1-i3)、对应的引用(r1-r3)、对应的数据块(d1、d2、d3)标记为已删除;回收备份2内的无效数据,释放磁盘空间。
31.其中,对于目标备份存在源备份中没有的数据块,即d4、d5;其所对对应的引用(r4、r5)、索引( i4、i5)不进行改变操作,仍然存在目标备份中。
32.需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
33.以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献