重复数据删除方法、计算机可读存储介质及文件系统与流程

文档序号:33289867发布日期:2023-02-28 18:39阅读:29来源:国知局
重复数据删除方法、计算机可读存储介质及文件系统与流程

1.本发明有关一种重复数据删除(deduplication)的技术,且特别有关重复数据删除的优化。


背景技术:

2.现有文件系统通常会将文件切分为多个数据块(data chunk),再进行这些数据块的重复数据删除。所谓重复数据删除是将不同文件中内容相同的数据块,只存储其中一个,其余内容相同的数据块则不予存储,仅利用指标(pointer)指向已存储的该数据块。例如,在公司主管发送给全体员工的电子邮件中,可能包含许多内容相同的文件,上述的重复数据删除可节省大量存储空间。
3.在上述的数据块切分之后,每个文件末端可能会有一个剩余的残段数据块。另外,文件中若有部分数据块的内容被修改,文件系统可能会重新切分修改后的数据块,而重新切分的数据块末端也可能产生新的残段数据块。这些残段数据块的内容通常不易和其他数据块重复,故不利于重复数据删除。因此,如何减少残段数据块以提高重复数据删除的效果并节省存储空间,已成为此技术领域中亟待解决的技术问题。


技术实现要素:

4.为解决上述问题,本发明提供一种重复数据删除方法、计算机可读存储介质及文件系统,用于已被切分为多个数据块且该多个数据块已进行重复数据删除的文件,该重复数据删除方法包括:根据该文件中的数据块的种类,在该文件中界定计算范围,其中,该计算范围包括该文件中的多个连续数据块;根据该计算范围中的数据块的种类,产生评估值,以决定是否标记该计算范围中的数据块;以及对该文件中的已标记数据块重新进行切分及重复数据删除。
5.本发明另提供一种计算机可读存储介质,应用于电子装置、计算装置、数据存储装置、计算机或服务器中,存储有指令,以执行上述的重复数据删除方法。
6.本发明另提供一种文件系统,应用于计算装置或计算机中,通过处理器执行上述的重复数据删除方法。
7.本发明提供的重复数据删除方法、计算机可读存储介质及文件系统根据文件中数据块种类产生评估值,再根据评估值决定是否对数据块重新进行切分及重复数据删除,故能避免效益不佳的重新切分,以减少残段数据块而提高重复数据删除的效益并节省存储空间。
附图说明
8.图1为根据本发明中一实施例的一种重复数据删除方法的应用情境示意图。
9.图2为根据本发明中一实施例的重复数据删除的示例图。
10.图3为根据本发明中一实施例的文件与暂存区的示例图。
11.图4及图5为根据本发明中不同实施例的已修改数据块的重新切分及重复数据删除的示例图。
12.图6为根据本发明中一实施例的一种重复数据删除方法的流程图。
13.图7为根据本发明中一实施例的一种重复数据删除方法的示例图。
14.附图标记说明
15.1~9:数据块
[0016]3’
,3”,5’:数据块
[0017]
110:电子装置
[0018]
120:存储装置
[0019]
200:文件
[0020]
710~760:文件
[0021]
300:暂存区
[0022]
501:数据块部分
[0023]
s61~s69:方法步骤
具体实施方式
[0024]
以下经由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及技术效果。
[0025]
图1为根据本发明中一实施例的一种重复数据删除方法的应用情境示意图。
[0026]
本实施例的重复数据删除方法可应用于电子装置110。电子装置110可为智能手机、计算机、服务器、或其他具有数据处理能力的电子装置或计算装置,此外,电子装置110亦可为用于近端或云端的数据存储装置或数据存储服务器。电子装置110可通过各种网络(如有线网络或无线网络)连接存储装置120。存储装置120为位于远端或云端的另一个电子装置,用于存储文件系统中的文件。电子装置110可以自存储装置120读取文件系统中的文件,再将修改后的文件写回存储装置120。
[0027]
图2为根据本发明中一实施例的重复数据删除的示例图,其中,电子装置110将文件200切分为六个数据块,这些数据块可具有多种不同长度。如何将文件切分为多个不同长度的数据块属于现有技术,例如可根据文件的数据内容进行滚动散列运算(rolling hash,亦称为递归散列运算(recursive hashing)或滚动校验和(rolling checksum)),或执行其他切分演算法,以决定切分数据块的位置。
[0028]
文件200的第一数据块位于图中最左侧,文件200的第六数据块位于图中最右侧。每个数据块中的号码是该数据块的代号,相同的代号表示相同的数据内容。文件200有一个对应的文件描述记录(file descriptor),其中记录文件200的每一个数据块的代号,例如下面的表格一所示,文件200的第一数据块的代号为1,文件200的第二数据块和第四数据块有相同内容,其代号皆为2,文件200的第三数据块和第五数据块亦有相同内容,其代号皆为3,文件200的第六数据块的代号为4。电子装置110会对文件200进行重复数据删除,因此,存储装置120中仅存储1、2、3、4这四个数据块。文件描述记录可存储于存储装置120中。当电子装置110存取文件200时,其文件描述记录可暂存于电子装置110中。当有需要时,电子装置110可根据文件描述记录重组文件200。
[0029]
表格一
[0030]
位置顺序一二、四三、五六数据块代号1234
[0031]
当电子装置110存取一个文件时,可在电子装置110中设置一个暂存区,用于暂存电子装置110需要的数据块,并暂存电子装置110修改过的数据块,以免数据块在电子装置110与存储装置120之间频繁传送而降低处理效率。例如图3所示,电子装置110设置暂存区300以暂存文件200的数据块,其中,有电子装置110执行的两个不同应用软件需要读取文件200的第二数据块2,因此,电子装置110自存储装置120取得数据块2并将其存入暂存区300,以供应用软件读取。另外,文件200的第五数据块3经过两次修改,分别产生部分的数据块3’及3”,其中,部分数据块3”的产生时间较晚,因此覆盖了部分数据块3’且被写入暂存区300。
[0032]
图4为根据本发明中一实施例的已修改数据块的重新切分及重复数据删除的示例图,其中,左图绘示重新切分及重复数据删除前的文件200,右图则绘示重新切分及重复数据删除后的文件200。
[0033]
本实施例中,文件中的数据块可分为三个种类,即未修改数据块(在图中无特别标示)、已修改数据块(在图中以网点标示)及残段数据块(在图中以斜线标示),其中,未修改数据块是指自存储装置120取得后未经过修改且非处于文件末端的数据块,例如图4左图中的数据块1、2、3,已修改数据块是指自存储装置120取得后已经过修改的数据块,或新增的数据块,例如图4左图中的数据块3”、5’,残段数据块是指文件的切分或重新切分所产生的不符合切分演算法的切分标准的末端数据块,例如图4中的数据块4、7、9。
[0034]
在图4左图中,文件200的第五数据块3的一部分被修改为暂存区300中的部分数据块3”,且在暂存区300中新增了数据块5’。电子装置110会根据预设条件判断暂存区300是否已经污浊(dirty)。例如,若文件200的所有数据块中,被修改的部分和新增的部分总共已达到或超过文件200的文件大小的预设百分率(可依实际需求设定不同百分率,例如,本实施例中设定为被修改与新增的数据块大于或等于文件200的文件大小的25%),则电子装置110判断暂存区300已经污浊。或者,若文件200的数据块的修改和新增的累计次数已达到预设值(可依实际需求设定不同预设值),则电子装置110判断暂存区300已经污浊。当电子装置110判断暂存区300已经污浊,会合并暂存区300中的已修改数据块部分3”以及自存储装置120取得的数据块3的其余部分的最新版本,再对合并结果进行重新切分及重复数据删除。另外,电子装置110也会对新增数据块5’进行切分及重复数据删除。上述切分及重复数据删除的结果如图4右图所示,其中,文件200的第五数据块3被重新切分为数据块6及7,新增的第七数据块5’被切分为数据块8及9。重新切分前的文件200仅有一个残段数据块4,重新切分后的文件200则增加了两个残段数据块7及9。由图4的示例可知,每一次修改文件就可能产生至少一个残段数据块。残段数据块的内容通常不易和其他数据块重复,因此增加的残段数据块会降低重复数据删除的效益并浪费存储空间。
[0035]
图5为根据本发明中另一实施例的已修改数据块的重新切分及重复数据删除的示例图。
[0036]
首先,如同图4左图所示,文件200的第五数据块3的一部分被修改为暂存区300中的部分数据块3”,且在暂存区300中新增了数据块5’。当电子装置110判断暂存区300已经污浊,则如图5左图所示,会自存储装置120取得数据块3除已修改部分3”以外的其余部分的最
新版本501,将其存入暂存区300,且将第五数据块3及新增数据块5’之间的残段数据块4读入暂存区300。然后,电子装置110将数据块部分501、3”以及数据块4、5’合并为一段连续数据,再对合并后的连续数据重新进行切分及重复数据删除,其结果如图5右图所示,该连续数据被重新切分为数据块6、7、8。
[0037]
在本实施例中,如图5左图所示,重新切分前的文件200仅有一个残段数据块4,且如图5右图所示,重新切分后的文件200仍然仅有一个残段数据块8。因此,图5的方法比图4的方法更能发挥重复数据删除的效益并节省存储空间,且能避免残段数据块不断新增的问题,其流程如图6所示。
[0038]
图6为根据本发明中一实施例的一种重复数据删除方法的流程图,该重复数据删除方法可由电子装置110执行。如上所述,电子装置110可以在一个文件已被切分为多个数据块,且该多个数据块已进行重复数据删除,且对应的暂存区已经污浊之后,对该文件执行该重复数据删除方法。以下参照图6说明该重复数据删除方法的流程。
[0039]
在步骤s61,根据该文件中的数据块的种类,在该文件中设定计算范围的头端及尾端,以界定该计算范围。详言之,是将该计算范围的头端设为该文件中的第一个已修改数据块或残段数据块,且将该计算范围的尾端设为该文件中位于该头端后的下一个已修改数据块或残段数据块。该计算范围包括该文件中自该头端至该尾端的全部数据块,接着进至步骤s62。
[0040]
在步骤s62,根据该计算范围中的数据块的种类,产生该计算范围的评估值。该评估值是根据该计算范围中的已修改数据块的数量与分布而产生,且该评估值亦根据该计算范围中的残段数据块的数量而产生。详言之,该评估值为该计算范围的效益值除以成本值,该效益值等于该计算范围中的已修改数据块及残段数据块的数量再加上已修改数据块的连续区段的数量,且该成本值为该计算范围中的全部数据块的数量。上述的已修改数据块的连续区段的定义为包含至少一个连续不断的已修改数据块的区段。
[0041]
例如,图7中的文件710,若其计算范围为第一数据块至第三数据块,则该计算范围中有3个已修改数据块及残段数据块,该计算范围中有2个已修改数据块的连续区段(分别为第一数据块及第三数据块),且该计算范围中有3个数据块,故评估值为(2+3)/3=5/3。
[0042]
又例如,图7中的文件740,若其计算范围为第一数据块至第八数据块,则该计算范围中有4个已修改数据块,无残段数据块,该计算范围中有2个已修改数据块的连续区段(分别为第一至第三数据块及第八数据块),且该计算范围中有8个数据块,故评估值为(4+2)/8=6/8=3/4。
[0043]
再例如,图7中的文件760,若其计算范围为第一数据块至第六数据块,则该计算范围中有3个已修改数据块及残段数据块,该计算范围中有2个已修改数据块的连续区段(分别为第一数据块及第六数据块),且该计算范围中有6个数据块,故评估值为(3+2)/6=5/6。
[0044]
接着,在步骤s63,检查计算范围的评估值是否大于或等于预设的阈值。在一实施例中,该阈值可在大于0且小于或等于2的范围中选取。在另一实施例中,该阈值可在大于或等于0且小于或等于2的范围中选取。若该评估值大于或等于该阈值,则流程进入步骤s66,否则流程进入步骤s64。
[0045]
在步骤s64,检查该计算范围的尾端是否为该文件的末端。若该尾端已为该文件的末端,则流程进入步骤s69,否则流程进入步骤s65。
[0046]
在步骤s65,改变该计算范围的头端及尾端设定。详言之,是将该头端改设为该文件中自该尾端开始的第一个已修改数据块或残段数据块(若该尾端为已修改数据块或残段数据块,则将该头端改设为该尾端),再将该尾端改设为该文件中位于该头端后的下一个已修改数据块或残段数据块,然后流程返回步骤s62。
[0047]
在步骤s66,标记该计算范围中的数据块,接着进至步骤s67。
[0048]
在步骤s67,检查该计算范围的尾端是否为该文件的末端。若该尾端已为该文件的末端,则流程进入步骤s69,否则流程进入步骤s68。
[0049]
在步骤s68,改变该计算范围的尾端设定。详言之,是将该尾端改设为该文件中位于该尾端后的下一个已修改数据块或残段数据块,然后流程返回步骤s62。
[0050]
最后,在步骤s69,对该文件中的已标记数据块重新进行切分及重复数据删除。详言之,电子装置110先检查每一个已修改数据块是否全部被修改,若有未被全部修改者,则电子装置110自存储装置120取得该数据块除已修改部分以外的其余部分的最新版本,将其存入暂存区。此外,若已标记数据块中有尚未存入暂存区者,则电子装置110自存储装置120取得该数据块的最新版本,将其存入暂存区。然后,电子装置110将暂存区中的已标记数据块合并为一段连续数据,对合并后的连续数据重新进行切分及重复数据删除,再依此更新该文件的文件描述记录且更新存储装置120中存储的数据块。
[0051]
须说明者,步骤s63的阈值的选择,会影响该重复数据删除方法的计算成本与残段数据块的数量。例如,若阈值设为0,则会将文件中重新进行切分及重复数据删除的范围最大化,可将残段数据块减至最少,但计算成本为最高。若阈值设为其他数值,则随着阈值提高,残段数据块的数量会逐渐增加,而计算成本会逐渐降低。
[0052]
图6的重复数据删除方法的示例如图7所示,对于图7的示例,阈值均设为1。
[0053]
首先,对于文件710,最初的计算范围设定为第一至第二数据块,此时的评估值为3/2》1,故标记第一至第二数据块。接着,计算范围改设为第一至第三数据块,此时的评估值为5/3》1,故标记第一至第三数据块。最后,对已标记的第一至第三数据块重新进行切分及重复数据删除。
[0054]
对于文件720,最初的计算范围设定为第一至第三数据块,此时的评估值为4/3》1,故标记第一至第三数据块。最后,对已标记的第一至第三数据块重新进行切分及重复数据删除。
[0055]
对于文件730,最初的计算范围设定为第一至第六数据块,此时的评估值为4/6《1,故不标记数据块。最后,不对整个计算范围的数据块重新进行切分及重复数据删除,而是以传统方式分别处理已修改的第一数据块及第六数据块。
[0056]
对于文件740,最初的计算范围设定为第一至第二数据块,此时的评估值为3/2》1,故标记第一至第二数据块。接着,计算范围改设为第一至第三数据块,此时的评估值为4/3》1,故标记第一至第三数据块。接着,计算范围改设为第一至第八数据块,此时的评估值为6/8《1,故不标记数据块。最后,对已标记的第一至第三数据块重新进行切分及重复数据删除,已修改的第八数据块则以传统方式单独处理。
[0057]
对于文件750,最初的计算范围设定为第一至第三数据块,此时的评估值为3/3=1,故标记第一至第三数据块。接着,计算范围改设为第一至第五数据块,此时的评估值为5/5=1,故标记第一至第五数据块。最后,对已标记的第一至第五数据块重新进行切分及重复
数据删除。
[0058]
对于文件760,最初的计算范围设定为第一至第四数据块,此时的评估值为3/4《1,故不标记数据块。接着,计算范围改设为第四至第六数据块,此时的评估值为3/3=1,故标记第四至第六数据块。最后,对已标记的第四至第六数据块重新进行切分及重复数据删除,已修改的第一数据块则以传统方式单独处理。
[0059]
此外,本发明另提供一种计算机可读存储介质,例如存储器、磁带、磁盘、光盘或硬盘。该计算机可读存储介质存储有指令,以执行上述的重复数据删除方法。该计算机可读存储介质可应用于电子装置110中。
[0060]
再者,本发明另提供一种文件系统,通过处理器执行上述的重复数据删除方法。该文件系统可应用于电子装置110中。
[0061]
综上所述,本发明提供的重复数据删除方法、计算机可读存储介质及文件系统根据文件中数据块种类产生评估值,再根据评估值决定是否对数据块重新进行切分及重复数据删除,故能避免效益不佳的重新切分,以减少残段数据块而提高重复数据删除的效益并节省存储空间。
[0062]
上述实施形态仅例示性说明本发明的原理及其技术效果,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施形态进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1