首页 / 专利库 / 软件 / 逻辑文件 / 一种基于内容的文件分割方法

一种基于内容的文件分割方法

阅读:76发布:2024-01-15

专利汇可以提供一种基于内容的文件分割方法专利检索,专利查询,专利分析的服务。并且一种基于内容的文件分割方法,其中该方法包括: 选定 窗口的长度、数据逻辑 块 期望的长度以及数据逻辑块的长度范围;采用拉宾指纹 算法 ,计算出每个滑动窗口的拉宾指纹值,并根据滑动窗口的拉宾指纹值确定数据逻辑块的断点;对文件进行数据逻辑块的划分;选定数据存储块期望的长度,并限定数据存储块的长度范围;查找并确认数据存储块的断点;对文件进行数据存储块的划分。采用本 发明 的基于内容的文件分割方法,能够准确、高效地查找出不同文件或同一文件不同版本间不相同的内容,在存储和文件系统中节省大量存储空间,减少了文件信息的传输内容,降低网络文件系统性能对带宽的依赖。,下面是一种基于内容的文件分割方法专利的具体信息内容。

1.一种基于内容的文件分割方法,该方法包括以下步骤:
1)选定窗口的长度和数据逻辑期望的长度,并根据所述数据逻辑块期望的长度设置数据逻辑块的长度范围;
2)采用拉宾指纹算法,计算出每个滑动窗口的拉宾指纹值,并根据滑动窗口的拉宾指纹值确定数据逻辑块的断点;
3)对文件进行数据逻辑块的划分;
4)选定数据存储块期望的长度,并限定数据存储块的长度范围;
5)查找并确认数据存储块的断点;
6)对文件进行数据存储块的划分。
2.根据权利要求1所述的基于内容的文件分割方法,其特征在于,所述步骤2进一步包括以下步骤:
1)从文件起始处开始,按照拉宾指纹算法计算出每个滑动窗口的拉宾指纹值,根据所述滑动窗口的拉宾指纹值,确定第一个数据逻辑块的断点,并将该数据逻辑块的断点作为上一个数据逻辑块的断点;
2)从所述上一个数据逻辑块的断点开始,按照拉宾指纹算法计算出每个滑动窗口的拉宾指纹值,并根据所述滑动窗口的拉宾指纹值,确定下一个数据逻辑块的断点;
3)重复上述步骤2,找出文件中所有数据逻辑块的断点。
3.根据权利要求1所述的基于内容的文件分割方法,其特征在于,所述步骤2进一步包括以下步骤:
1)从文件起始处之后的数据逻辑块最小长度开始,按照拉宾指纹算法计算出每个滑动窗口的拉宾指纹值,根据所述滑动窗口的拉宾指纹值,确定第一个数据逻辑块的断点,并将该数据逻辑块的断点作为上一个数据逻辑块的断点;
2)从所述上一个数据逻辑块的断点之后的数据逻辑块最小长度开始,按照拉宾指纹算法计算出每个滑动窗口的拉宾指纹值,并根据所述滑动窗口的拉宾指纹值,确定下一个数据逻辑块的断点;
3)重复上述步骤2,找出文件中所有数据逻辑块的断点。
4.根据权利要求1所述的基于内容的文件分割方法,其特征在于,所述步骤3对文件进行数据逻辑块的划分是将相邻两个数据逻辑块断点之间的内容作为一个数据逻辑块。
5.根据权利要求1所述的基于内容的文件分割方法,其特征在于,所述根据滑动窗口的拉宾指纹值确定数据逻辑块断点的方法是当所述滑动窗口拉宾指纹值的低n位等于一个给定的值时,该滑动窗口就构成一个断点。
6.根据权利要求5所述的基于内容的文件分割方法,其特征在于,所述滑动窗口拉宾指纹值的低n位的n值是由2n=数据逻辑块期望的长度计算得出的。
7.根据权利要求2或3所述的基于内容的文件分割方法,其特征在于,在所述数据逻辑块最大长度内没有找到新的断点,则根据窗口拉宾指纹值找出备份断点,并将最后一个备份断点作为数据逻辑块断点。
8.根据权利要求7所述的基于内容的文件分割方法,其特征在于,所述根据窗口拉宾指纹值找出备份断点的方法是所述滑动窗口拉宾指纹值的低n-1位等于一个给定的值,所述滑动窗口对应的窗口就构成一个备份断点。
9.根据权利要求8所述的基于内容的文件分割方法,其特征在于,在数据逻辑块长度范围内既没有断点,也没有备份断点,则将该数据逻辑块最大长度位置的窗口作为断点。
10.根据权利要求1所述的基于内容的文件分割方法,其特征在于,所述步骤5进一步包括以下步骤:
1)从文件起始处,计算多个连续数据逻辑块的长度,并计算在数据存储块的长度范围内的每个数据逻辑块断点的拉宾指纹值,根据所述数据逻辑块断点的拉宾指纹值设置数据存储块的第一个断点,该数据存储块的第一个断点作为上一个数据存储块的断点;
2)从所述上一个数据存储块的断点开始,计算多个连续数据逻辑块的长度,并计算在数据存储块的长度范围内的每个数据逻辑块断点的拉宾指纹值,根据所述数据逻辑块断点的拉宾指纹值设置数据存储块的下一个断点;
3)重复上述步骤2,直至文件结尾,找出文件中所有数据存储块的断点。
11.根据权利要求1所述的基于内容的文件分割方法,其特征在于,所述步骤5中,如果在数据存储块的长度范围内,根据所述数据逻辑块断点的拉宾指纹值无法找出数据存储块的断点,就将数据存储块的最大长度范围内最后一个断点设置为该数据存储块的断点。
12.根据权利要求1所述的基于内容的文件分割方法,其特征在于,所述步骤6是将两个相邻数据存储块断点之间的内容作为一个数据存储块。
13.一种文件存储的方法,其特征在于,首先,将文件数据分割成数据逻辑块和数据存储块,然后,存储文件的每个数据存储块,并在元数据中记录文件所包含的数据存储块信息。
14.根据权利要求13所述的文件存储的方法,其特征在于,所述数据存储块信息包括:数据存储块的长度、偏移量以及MD5值。
15.一种同步文件的方法,其特征在于,包括以下步骤:
1)同步的源端将新文件采用权利要求所述文件分割方法划分为数据存储块和数据逻辑块,并将数据存储块信息和数据逻辑块信息发送给目的端;
2)同步的目的端查找本地不存在的数据存储块和数据逻辑块,构建数据存储块并通知源端需要哪些数据逻辑块;
3)同步的源端发送目的端需要的数据逻辑块。
16.根据权利要求15所述的同步文件的方法,其特征在于,所述数据逻辑块信息包括:数据逻辑块在所属数据存储块中的位置,数据逻辑块长度,数据逻辑块MD5值。

说明书全文

技术领域

发明涉及一种文件的分割方法,尤其涉及一种基于内容的文件分割方法

背景技术

现有的计算机存储和文件系统中,解决大部分内容相同的两个或多个相似的文件,需要单独存储每个文件,导致占用存储空间比较大问题的常用方法是采用数据去重复化技术。
数据去重复化技术的实现方法是将文件分割成长度基本相等的数据,在文件系统内,内容相同的数据块只存储一份。判断数据块内容相同的标准可以是比较数据块的MD5值,也可以是比较数据块的SHA-1值。用MD5或SHA-1算法计算出的值都具有高度的离散性。MD5算法计算出的散列值长度为128bit,不同内容的数据块经过MD5散列得到相同散列值的概率在1/(2(exp(B/2))(这里B是散列算法里散列值长度的bit位数),以128bitMD5算法为例,不同内容数据块的MD5散列值相同的概率在1/264(约等于5.5×10-20)的数量级,这样小的概率通常被认为是不可能的。SHA-1算法是基于MD5的,计算出的散列值更是长达160bit。一般认为MD5值或SHA-1值可以唯一地代表原信息的特征,通常用于密码的加密存储,数字签名,文件完整性验证,身份认证等。在计算效率上,MD5要优于SHA-1。
为了解决文件修改之后需要进行同步,往往修改的内容非常少,但还是需要同步整份文件内容,导致大量的网络传输的问题,目前采用的是增量同步技术。
增量同步技术指的是文件通过网络同步,不需要传输整份文件的内容,而是仅仅传输目的端存储和文件系统中不存在的内容即可。如果是同一文件的不同版本之间的同步,可以理解为传输文件的更改信息。实现方法是将文件分割成数据逻辑块,通过比较数据逻辑块的内容,找出目的端和源端文件之间的相同和不同之处。相同的部分不需要通过网络传输,在目的端即可获得;不同的部分才需要通过网络传输,这样就可以减小网络传输量。判断数据逻辑块是否相同的标准同样可以通过比较MD5值或SHA-1值。
常用的远程数据同步工具rsync也是一种增量同步技术,使用所谓的“rsync演算法”来使本地和远程两台计算机之间的文件达到同步。假定需要在两台计算机之间同步文件A’,而目的端已经存在该文件的前一个版本A,那么rsync算法将通过下面的步骤来完成:
1.目的端将文件A分割成一组不重叠的长度固定为S字节的数据逻辑块(最后一块可能会比S小),对每一个分割好的数据逻辑块计算32位的校验和及128位的MD4值,并将这些块的校验和及MD4值发给源端。MD4算法是MD5算法的前一个版本,相对MD5算法,安全性方面稍微差一些。
2.源端通过搜索文件A’的所有大小为S的数据逻辑块(偏移量可以任选,不一定是S的倍数),来寻找与文件A的某一块有着相同的校验和及MD4值的数据逻辑块。
3.源端发给目的端一串指令来生成文件A’在目的端上的备份,这里的指令要么是文件A拥有某一数据逻辑块而不须重传的说明,要么是一个没有与文件A的任何一块匹配上的数据逻辑块。
rsync算法只传输两个文件的不同部分,而不是每次都整份文件传输,因此速度相当快。但是rsync只能用于相同文件名的不同版本之间的同步。上面的例子中如果文件A’与文件A内容相似但文件名不同,rsync将仍然会传输A’的整份内容。
上述去重复化技术由于是将文件分割成长度基本相等的数据块,使得去重复化的效率较低,不能有效地减少网络传输量。

发明内容

为了解决现有技术存在的不足,本发明的目的在于提供一种基于内容的文件分割方法、一种文件存储方法和一种同步文件的方法。
为了完成上述目的,本发明的一种基于内容的文件分割方法,该方法包括以下步骤:
1)选定窗口的长度和数据逻辑块期望的长度,并根据所述数据逻辑块期望的长度设置数据逻辑块的长度范围;
2)采用拉宾指纹算法,计算出每个滑动窗口的拉宾指纹值,并根据滑动窗口的拉宾指纹值确定数据逻辑块的断点;
3)对文件进行数据逻辑块的划分;
4)选定数据存储块期望的长度,并限定数据存储块的长度范围;
5)查找并确认数据存储块的断点;
6)对文件进行数据存储块的划分。
为完成上述发明目的,本发明还提供一种文件存储方法,该方法包括以下步骤:
将文件数据分割成数据逻辑块和数据存储块;
存储文件的每个数据存储块,并在元数据中记录文件所包含的数据存储块信息。
为完成上述发明目的,本发明还提供一种同步文件存储方法,该方法包括以下步骤:
1)同步的源端将新文件采用权利要求所述文件分割方法划分为数据存储块和数据逻辑块,并将数据存储块信息和数据逻辑块信息发送给目的端;
2)同步的目的端查找本地不存在的数据存储块和数据逻辑块,构建数据存储块并通知源端需要哪些数据逻辑块;
3)同步的源端发送目的端需要的数据逻辑块。
本发明具有明显的优点和积极效果,采用本发明的基于内容的文件分割方法,能够准确、高效地查找出不同文件或同一文件不同版本间不相同的内容。在存储系统,由于内容相同的数据存储块只存储一份,当碰到内容相似或相同的文件需要存储时,就可以节省大量存储空间;在文件系统的文件上载、备份和归档中,源端就只需要传输目的端不存在的数据存储块和数据逻辑块信息,而不需要传输整个新文件的数据存储块和数据逻辑块信息,传输的内容更少;在网络文件系统的中,文件系统元数据中从文件到文件物理存储块的映射,可以改为由文件到本方法中的数据逻辑块或数据存储块的映射,达到降低网络文件系统性能对带宽的依赖。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的基于内容的文件分割方法的流程图
图2为根据本发明的基于内容的文件分割方法的文件分割示意图;
图3为根据本发明的基于内容的文件分割方法中数据逻辑块划分示意图;
图4为根据本发明的基于内容的文件分割方法中数据存储块划分示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的基于内容的文件分割方法的流程图,参考图1,根据本发明的具体实现过程详细描述如下:
首先,在步骤101,选定窗口(windows)的长度和数据逻辑块(block)期望的长度,并限定数据逻辑块的长度范围。
窗口是文件中一片连续的区域,建议的长度为48字节。滑动窗口(slidingwindow)是基于文件中的上一个窗口,往后滑动一个字节,滑动后的窗口长度不变。
数据逻辑块是比较小块的数据,实现增量同步时,数据逻辑块是最小的同步单位。在存储系统中并不以数据逻辑块为单位存储。数据逻辑块期望的长度可以是2K、4K或8K,也可以为其它值。
为了避免在查找数据逻辑块断点的过程中,文件中存在非常多的断点,文件被划分成很多个数据逻辑块,数据逻辑块长度都非常短,导致存储和传输数据逻辑块的信息量非常大,引起比文件内容更大的存储量和传输量,或文件中数据逻辑块长度非常大,导致数据逻辑块重用的几率变得很小,该数据逻辑块内的更改也会导致大量的数据传输的问题,在该步骤中,对数据逻辑块的长度范围做了限制,最小长度为Tmin,一般设置为期望数据逻辑块长度的一半或根据实际情况设置,也可以设置为其他值,最大长度为Tmax,可根据实际情况,选择16K,32K或64K字节等。
在步骤102,采用拉宾指纹算法,计算出每个滑动窗口的拉宾指纹值,并根据滑动窗口的拉宾指纹值确定数据逻辑块的断点。
在该步骤中,采用根据文件内容(content based)的方式查找并确定数据逻辑块的断点,采用这种方式带来的好处是:在文件中插入和删除内容,只会影响内容有变化的数据逻辑块,而不会影响其他的数据逻辑块。具体步骤是,从文件起始处,计算每个滑动窗口的拉宾指纹值,当滑动窗口拉宾指纹值的低n位等于某个给定的值,该滑动窗口将构成第一个数据逻辑块的断点,然后从第一个断点处开始计算每个滑动窗口的拉宾指纹值,当滑动窗口拉宾指纹值的低n位等于某个给定的值,该滑动窗口就构成第二个数据逻辑块的断点,按照上述的算法,计算所有滑动窗口的拉宾指纹值,找出文件中所有数据逻辑块的断点,直至文件结尾。文件结尾处也必然是一个数据逻辑块的断点。
拉宾指纹(rabin fingerprinting)算法是美国哈佛大学拉宾(rabin)提出的一种指纹算法,它是一种高效率的计算滑动窗口散列值的算法,而且根据拉宾指纹算法计算出的值具有高度离散性。
取滑动窗口拉宾指纹值的低n位,是用滑动窗口的拉宾指纹值除以2n所得的余数。n的取值与数据逻辑块期望的长度有关。由于根据拉宾指纹算法计算出的值是非常均匀的,而如果文件内容也是非常随机的,那么分割出来的数据逻辑块长度将为2n字节左右,也就是2n=数据逻辑块期望的长度。当然,数据逻辑块中需要加上断点窗口所包含的内容。所以如果我们期望数据逻辑块的长度为4K字节,n的取值就应该是12(212=4096=4K)。
滑动窗口的拉宾指纹值的低n位等于某个给定的值,这个给定的值,只要确定即可,到底是多少没有关系。我们做过这样的测试:对不同长度、不同类型的文件,分别用不同的值来查找断点,结果是不管用什么值,最后划分的数据逻辑块数量相差不大,而且每个数据逻辑块的长度差别也非常小。这种测试更印证了这个给定值的随机性。
在本步骤中,也可以在上一个断点(或文件起始处)之后的Tmin字节内,不计算窗口拉宾指纹值,避免产生长度过小的数据逻辑块。
如果在上一个断点(或文件起始处)之后的Tmax字节内没有找到新的断点,我们将选用这段范围内的最后一个备份断点。确定备份断点的方法是取滑动窗口拉宾指纹值的低n-1位,跟另一个给定的值比较(该给定的值不等同于判断数据逻辑块断点的值),如果相等,则认为这个窗口可以作为一个备份断点。在不存在断点的情况下,最后一个备份断点将成为数据逻辑块的断点;如果既不存在断点,也不存在备份断点,则需要强行将这段范围划分为一个数据逻辑块,避免产生长度过大的数据逻辑块。
在步骤103,对文件进行数据逻辑块划分。根据步骤102找出的文件所有的断点,每两个相邻断点之间的内容构成一个数据逻辑块,其中第一个数据逻辑块与文件起始处的内容和文件结尾处与倒数第二个断点的内容同样也分别构成一个数据逻辑块。
在步骤104,选定数据存储块(chunk)期望的长度,并限定数据存储块的长度范围。数据存储块是相对较大块的数据。在文件系统中,数据存储块是应用层所用到的最小存储单元,内容相同的数据存储块只存储一份。数据存储块期望的长度可以是1M、2M或4M,也可以为其它值。
数据存储块期望的长度用Ec表示,数据逻辑块期望的长度用Eb表示,数据存储块长度范围限制为[Ec-m*Eb,Ec+k*Eb](每个文件最后一个数据存储块不限制最小长度),m和k为根据需要给定的数值。
在步骤105,查找和确定数据存储块的断点,本发明查找并确定数据存储块断点还是采用根据文件内容(content based)的方式,采用这种方式带来的好处是:在文件中插入和删除内容,只会影响内容有变化的数据存储块,而不会影响其他的数据存储块。具体步骤是,从文件起始处计算多个连续数据逻辑块的总长度。一旦这个总长度接近我们期望的数据存储块长度的值,且最后一个数据逻辑块断点拉宾指纹值的n+1~n+x位等于另一个给定的值(该给定的值不等同于判断数据逻辑块断点的值),最后一个数据逻辑块断点就是数据存储块的断点。如果最后一个数据逻辑块的断点不满足条件,且加入下一个数据逻辑块后总长度不会超过数据存储块长度范围限制,则判断加入下一个数据逻辑块后,最后一个数据逻辑块的断点是否满足条件。直到找出满足条件的断点,或者总长度接近数据存储块长度范围的上限为止。满足条件的断点既是数据逻辑块的断点,同时也是数据存储块的断点。也就是说数据存储块的断点等同于构成数据存储块的多个连续数据逻辑块中最后一个数据逻辑块的断点。然后从上一个数据存储块断点处开始,用同样的方法查找出下一个数据存储块的断点。遍历所有数据逻辑块断点,直至文件结尾,找出所有数据存储块的断点。文件结尾处必然也是数据存储块的断点。
上面的x跟数据存储块长度范围有关。我们期望的数据存储块长度用Ec表示,期望的数据逻辑块长度用Eb表示,数据存储块长度范围限制为[Ec-m*Eb,Ec+k*Eb](每个文件最后一个数据存储块不限制最小长度),那么数据存储块长度范围内可能存在m+k个数据逻辑块断点,断点拉宾指纹值的n+1~n+x位的值范围必须为[0,m+k-1],即满足条件m+k=2x,这样数据存储块长度范围内有且仅有一个数据存储块断点的概率才会最大。例如,如果期望数据逻辑块的长度为4K,期望数据存储块的长度为4M,数据存储块长度范围为[4M-32*4K,4M+32*4K],那么可能成为数据存储块断点的数据逻辑块断点将有32+32=64个,上面说到的x就应该等于6(26=64),即判断数据逻辑块断点拉宾指纹值的13~18位(n等于12的情况),是否等于给定的值。跟划分数据逻辑块断点一样,这个给定的值只要确定即可,到底是多少没有关系。
当多个连续数据逻辑块总长度超过Ec-m*Eb时,则需要关注最后一个数据逻辑块的断点是否满足拉宾指纹值的n+1~n+x位等于给定值的条件。满足条件则成为数据存储块断点,否则检查下一个数据逻辑块的断点。一旦多个连续数据逻辑块总长度超过Ec+k*Eb,就将数据存储块的最大长度范围内最后一个断点设置为该数据存储块的断点,这样可以保证数据存储块的长度在限制范围之内。
在步骤106,对文件进行数据存储块划分,根据步骤105找出的文件所有的数据存储块断点,每两个相邻的数据存储块断点之间的内容即构成一个数据存储块,并记录数据逻辑块和数据存储块信息。数据存储块信息包括:数据存储块的长度、偏移量以及MD5值或SHA-1值。
图2为根据本发明的基于内容的文件分割方法的文件分割示意图,如图2所示,整个文件被分割成若干个数据存储块,每个数据存储块包括若干个数据逻辑块。
图3为根据本发明的基于内容的文件分割方法中数据逻辑块划分示意图,如图3所示,锯齿状线条表示断点。
a表示第一个文件,或者是文件的原始版本。我们根据内容查找数据逻辑块的断点,将a文件被划分成很多数据逻辑块,图中只显示前面7个数据逻辑块。
b跟a比较,在B2做了些修改,但是修改的内容没有导致产生新的断点,断点位置也保持不变。由于该数据逻辑块内容发生了变化,所以生成新的数据逻辑块B8。
c跟b比较,在B3增加了一些内容,但是增加的内容没有导致产生新的断点,所以断点位置也保持不变。由于该数据逻辑块增加了新内容,所以生成新的数据逻辑块B9。
d跟c比较,删除了B5中的一些内容,但是该删除没有导致产生新的断点,也没有导致原断点失效,所以断点位置也保持不变。由于该数据逻辑块删除了部分内容,所以生成新的数据逻辑块B10。
e跟d比较,在B6断点处做了修改,导致断点处内容发生变化,将不再成为断点,于是合并B6和B7,生成新的数据逻辑块B11。
f跟e比较,在B4增加了新内容,增加的新内容导致产生新的断点,于是B4将分解为B12和B13。
图3中的a,b,c,d,e,f文件既可能是同一文件名的不同版本,也可能是内容相似的不同文件。每个文件跟前一个文件比较,内容都有变化,但是大部分的数据逻辑块是可以重用的。判断数据逻辑块内容是否相同的算法可以是比较数据逻辑块的MD5值,也可以是比较数据逻辑块的SHA-1值,或者是其他具有高度离散的,可以唯一地代表原信息特征的算法计算出来的值。这样,我们在同步文件时,就可以重用上一个已经同步过的文件中的数据逻辑块,降低网络传输量。
图4为根据本发明的基于内容的文件分割方法中数据存储块划分示意图,如图4所示,锯齿状短线条表示数据逻辑块断点,锯齿状长线条表示数据存储块断点,同时也是该数据存储块最后一个数据逻辑块的断点。阴影部分表示针对前一个文件(或相同文件名的前一个版本)修改的地方,B代表数据逻辑块。
a表示第一个文件,或者是文件的原始版本。我们根据内容查找数据逻辑块和数据存储块的断点,将a文件被划分成很多数据逻辑块和数据存储块。
b跟a比较,在chunk1中做了些修改,但是该修改没有导致数据存储块断点的变化,chunk1的内容有更新,变成chunk1’。而chunk2,chunk3及后面的chunk都没有变化。
c跟b比较,在chunk1’断点处做了些修改,导致该断点失效,将重新查找新的断点,生成chunk1”和chunk2’。而chunk3及后面的chunk都没有变化。
d跟c比较,在chunk1”中做了些修改,该修改导致产生新的数据存储块断点,于是生成chunk1”’和chunk2”。而chunk3及后面的chunk都没有变化。
图4中的a,b,c,d文件既可能是同一文件名的不同版本,也可能是内容相似的不同文件。每个文件跟前一个文件比较,内容都有变化,但是大部分数据存储块的内容是相同的,判断数据逻辑块内容是否相同的算法可以是比较数据逻辑块的MD5值,也可以是比较数据逻辑块的SHA-1值,或者是其他具有高度离散的,可以唯一地代表原信息特征的算法计算出来的值。内容相同的数据存储块是可以重用的,存储文件时,不需要存储已有的数据存储块,这样就可以避免数据块的重复存储。
在存储系统中,采用上述基于内容的文件分割方法,将文件数据分割成数据逻辑块和数据存储块之后,在存储文件的时候,并不是存储文件本身,而是存储文件的每个数据存储块,并在元数据中记录文件所包含的数据存储块信息,如文件所包含的数据存储块列表,每个数据存储块的长度及MD5值等。由于内容相同的数据存储块只存储一份,当碰到内容相似或相同的文件需要存储时,就可以节省大量存储空间。
在文件系统中的文件的上载、备份和归档,同步的源端将新文件划分为数据存储块和数据逻辑块,并将这些信息发送给目的端。目的端可以通过各种方法查找本地不存在的数据存储块和数据逻辑块,构建数据存储块并通知源端需要哪些数据逻辑块。源端再将目的端需要的数据逻辑块发送过去。这里的新文件既可能是针对上一个版本修改后的文件,也可能是新增加的文件。目的端查找本地不存在数据存储块和数据逻辑块的方法既可以是实时计算本地文件数据存储块和数据逻辑块信息,也可以是预先将这些信息保存在元数据中供查询,这里我们推荐后者。数据逻辑块信息包括该数据逻辑块在数据存储块中的位置,数据逻辑块长度,数据逻辑块MD5值或SHA-1值等。如果在源端已经保存了目的端已有的数据存储块和数据逻辑块信息,源端就只需要传输目的端不存在的数据存储块和数据逻辑块信息,而不需要传输整个新文件的数据存储块和数据逻辑块信息,传输的内容就更少了。相比传输整份文件内容而言,通过这种方式同步文件,传输的内容变得很少,这就是本发明所指的增量同步应用。
在网络文件系统中,网络文件系统的高效运行,需要有良好的网络连接性能如带宽的需求。在一类低带宽网络连接中,如低带宽的有线或无线网络连接中,可以利用本发明算法的数据去重复化和增量同步特性。在网络文件系统的实现中,文件系统元数据中从文件到文件物理存储块的映射,可以改为由文件到本算法中的数据逻辑块或数据存储块的映射,达到降低网络文件系统性能对带宽的依赖。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈