CN101551817A - 一种低冗余数据存储方法 - Google Patents

一种低冗余数据存储方法 Download PDF

Info

Publication number
CN101551817A
CN101551817A CNA2009100778816A CN200910077881A CN101551817A CN 101551817 A CN101551817 A CN 101551817A CN A2009100778816 A CNA2009100778816 A CN A2009100778816A CN 200910077881 A CN200910077881 A CN 200910077881A CN 101551817 A CN101551817 A CN 101551817A
Authority
CN
China
Prior art keywords
file
data
link
chained
piece
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
Application number
CNA2009100778816A
Other languages
English (en)
Other versions
CN101551817B (zh
Inventor
杨木祥
邢建兵
李瑞林
姚俊武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Potevio Information Technology Co Ltd
Original Assignee
Potevio Institute of Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Potevio Institute of Technology Co Ltd filed Critical Potevio Institute of Technology Co Ltd
Priority to CN2009100778816A priority Critical patent/CN101551817B/zh
Publication of CN101551817A publication Critical patent/CN101551817A/zh
Application granted granted Critical
Publication of CN101551817B publication Critical patent/CN101551817B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种低冗余数据存储方法,适用于以本地数据块和链接数据块来存储数据文件的数据存储系统,其中,本地数据块为数据内容,链接数据块用于链接其他数据文件中的本地数据块;在对数据文件进行写操作并关闭该数据文件前,所述方法包括:当修改所述数据文件中被其他数据文件所链接的本地数据块时,将所述本地数据块复制到其被链接的数据文件中并修改相应数据文件间的链接;当修改所述数据文件中链接数据块所链接的另一数据文件中的本地数据块时,将所述本地数据块复制到所述数据文件中并修改相应数据文件间的链接。应用本发明,可以最大程度地避免了数据文件写操作过程中冗余数据的产生,能够更有效地利用存储空间。

Description

一种低冗余数据存储方法
技术领域
本发明涉及存储备份技术领域,特别涉及一种应用于单实例存储系统(SIS)中的低冗余数据存储方法。
背景技术
传统的数据存储系统中,内容相同的文件或数据块可能会存在多个实例,在某些特定的应用场景中,这个问题会显得尤为突出。例如,在提供远程启动服务的服务器上,为每个客户机保存着启动所需的系统文件,这些文件中,绝大部分都是完全相同的,存储空间没有得到有效的利用。在网络中尤其是互联网络文件共享系统中也存在类似的情况,用户根据自己的喜好或需求将一个文件上传到服务器上与其他人分享,这些文件中有很多是完全相同的,例如一些热门视频、流行的软件安装包等。
还有一些应用场景中,文件经常会有较小的改动。例如,在文档版本管理系统中,一个文件会经常性地被修改,而且可能会基于某一个版本产生不同的版本分支,各个版本不完全相同,但只是很少一部分是不同的。若对所有的版本都作完全备份,也会存在较严重的存储空间浪费的情况。再如,在远程协同办公领域,当需要对同一份文档进行修改时,传统的做法是:每人复制一份原始文件,然后各自同时修改,产生同一文档的不同版本。通常,这些不同版本文档的数据内容大部分都是相同的,因而存在存储空间浪费的问题。
现有的一种解决办法是利用单实例存储系统(SIS),该系统在存储具有重复内容的文件时,为维持普通文件的单实例性,只提供逻辑上分离的链接该单个文件数据实例的链接文件。当需要对链接文件进行修改时,可以采取“copy-on-write”的策略,即当有写操作时,就将链接文件转化成普通文件,并从原始文件中复制数据内容到新的文件中,然后在新的文件中执行正常的操作,即使每次只改动很少一部分文件内容,也要多存储一个文件实例。所以这种方法去除冗余数据的效率较低。另外一种方法是采用微软公司在其美国专利号为6477544的专利中提出的“copy-on-close”的方式,即仅当所有的写操作完成,文件被关闭的时候才执行上述的从原始文件中复制数据内容到新的文件中的操作。即使每次打开与关闭文件期间完成很少的写操作,也要多存储一个文件实例,所以这种方法的冗余数据去除率仍不会得到明显的改善。
发明内容
有鉴于此,本发明的主要目的在于提供一种应用于单实例存储系统(SIS)中的低冗余数据存储方法,能够在进行文件写操作时更有效地去除数据冗余。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种低冗余数据存储方法,适用于以本地数据块和链接数据块来存储数据文件的数据存储系统,其中,本地数据块为数据内容,链接数据块用于链接其他数据文件中的本地数据块;
在对数据文件进行写操作并关闭该数据文件前,所述方法包括:
当修改所述数据文件中被其他数据文件所链接的本地数据块时,将所述本地数据块复制到其被链接的数据文件中并修改相应数据文件间的链接;
当修改所述数据文件中链接数据块所链接的另一数据文件中的本地数据块时,将所述本地数据块复制到所述数据文件中并修改相应数据文件间的链接。
所述修改相应数据文件间的链接之后,所述方法进一步包括:如果修改后的相应数据文件间的链接不能满足空间利用率或执行效率的要求,则删除该修改后的相应数据文件间的链接。
所述数据文件的文件头至少包括:文件标识、文件类型、链入计数、链入文件表、链出计数和链出文件表;其中,
文件标识为所述数据文件的唯一标识;
文件类型用于指出所述数据文件的类型,包括普通文件和链接文件,其中,普通文件中的所有数据块均为本地数据块,链接文件中包括至少一个或多个链接数据块;
链入计数用于指出所述数据文件被多少个其他数据文件所链接;
链入文件表包括了链接所述数据文件的所有其他数据文件的文件标识、链接计数和文件路径,其中文件标识为链入文件表中每个数据文件的唯一标识,链接计数为链入文件表中每个数据文件链接所述数据文件的次数,文件路径为链入文件表中存储每个数据文件的目录结构;
链出计数用于指出所述数据文件链接了多少个其他数据文件;
链出文件表包括了被所述数据文件链接的所有其他数据文件的文件标识、链接计数和文件路径,其中文件标识为链出文件表中每个数据文件的唯一标识,链接计数为所述数据文件链接链出文件表中每个数据文件的次数,文件路径为链出文件表中存储每个数据文件的目录结构。
所述数据文件的数据块头包括:数据类型、数据长度和数据内容;其中,
数据类型用于指出该数据块是本地数据块还是链接数据块;
数据长度为该数据块的长度;当数据类型为本地数据块时,数据内容为该数据块所存储的数据内容;当数据类型为链接数据块时,数据内容包括文件标识、偏移量和长度,文件标识为所链接的本地数据块所在的数据文件的唯一标识,偏移量表示所链接的本地数据块位于其所在数据文件中的起始位置,长度表示所链接的本地数据块的数据长度。
所述删除该修改后的相应数据文件间的链接具体包括:
将被链接数据文件中的被链接数据块复制到链接文件中,将该链接文件对该被链接文件的链接计数减1,如果所述链接计数为0,则删除该链接文件和该被链接文件文件头中对方所对应的条目并将该链接文件的链出计数和该被链接文件的链入计数同时减1,如果该链接文件的链出计数或该被链接文件的链入计数为0,则将该链接文件的文件类型修改为普通文件。
所述数据文件为普通文件,在将所述本地数据块复制到其被链接的数据文件中之前,所述方法进一步包括:逐个打开链接该普通文件的所有链接文件;在对普通文件进行写操作之前,所述方法进一步包括:逐个关闭链接该普通文件的所有链接文件。
将所述本地数据块复制到其被链接的数据文件中并修改相应数据文件间的链接具体包括:
将该普通文件中将要被修改的本地数据块逐个复制到链接该将要被修改的本地数据块的所有链接文件中,并修改链接所述将要被修改的本地数据块的所有链接文件中的相应链接数据块,使其链接的本地数据块范围排除所述将要被修改的本地数据块。
所述数据文件为链接文件,在将所述本地数据块复制到所述数据文件中之前,所述方法进一步包括:打开所述链接文件中链接数据块所链接的本地数据块所在的另一数据文件;在对链接文件进行写操作之前,所述方法进一步包括:关闭包含将要被修改的本地数据块的所述另一数据文件。
将所述本地数据块复制到所述数据文件中具体包括:
将所述另一数据文件中被链接且将要被修改的本地数据块复制到所述链接文件中。
所述修改相应数据文件间的链接具体包括:
修改链接所述另一数据文件中将要被修改的本地数据块的所述链接文件中的相应链接数据块,使其链接的本地数据块范围排除所述将要被修改的本地数据块。
由上述的技术方案可见,本发明在对数据文件进行写操作的时候,每次只将请求进行写操作的数据块复制到链接该数据块的数据文件中,并且只在特定的条件下,比如采用链接的方式不能满足空间利用率或执行效率的要求等,才复制其他被链接数据块,最大程度地避免了数据文件写操作过程中冗余数据的产生,能够更有效地利用存储空间。
附图说明
图1a为本发明中数据文件之间链接的示意图;
图1b为本发明数据文件中数据块头的结构图;
图1c为本发明中数据文件的文件头结构图;
图2为本发明中删除链接的流程图;
图3为本发明中对普通文件进行写操作的流程图;
图4为本发明中对链接文件进行写操作的流程图;
图5为本发明一个实施例中对普通文件进行写操作的示意图;
图6为本发明一个实施例中对链接文件进行写操作的示意图。
具体实施方式
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明的这样思想为:在对数据文件进行写操作之前,每次只将请求进行写操作的数据块复制到链接该数据块的其他数据文件中,并且只在特定的条件下,比如采用链接的方式不能满足空间利用率或执行效率的要求等,才复制其他被链接数据块。
如图1a所示,本发明的低冗余数据存储方法中定义了两种数据文件的存储方式,一种是普通文件,另一种是链接文件。两种数据文件的区别仅在于各自具有不同的数据存储方式,普通文件中的数据,即普通文件1中的数据块A、B、C、D和普通文件2中的数据块I、J、K,全部存储在自身的逻辑存储空间中,可以称为本地数据块,而链接文件中的数据可以全部或部分地存储在其它数据文件的逻辑存储空间中,比如链接文件1中的数据块F、H和链接文件2中的数据块M、N所包含的数据存储在其他数据文件的逻辑存储空间中,可以称为链接数据块,而链接文件1中的数据块E、G和链接文件2中的数据块L、O所包含的数据存储在自身的逻辑存储空间中,即为本地数据块。为降低复杂性,本发明仅允许一级链接,即链接文件只可链接其它数据文件的本地数据块,即链接文件1中的链接数据块F可以链接普通文件1中的本地数据块B,链接文件1中的链接数据块H可以链接普通文件2中的本地数据块J,链接文件2中的链接数据块M可以链接链接文件1中的本地数据块G,而不能链接另一个链接文件的链接数据块和本链接文件的所有数据块,即链接文件2中的链接数据块N不能链接链接文件1中的链接数据块H。由于普通文件所包含的数据块都是本地数据块,所以普通文件不链接其它任何文件。
如图1b所示,图1b中定义了数据文件中数据块头的结构,数据块头包括数据类型、数据长度及数据内容。数据类型用于指出该数据块的类型,本发明中它用于指出该数据块是本地数据块还是链接数据块。数据长度为该数据块的长度,本发明中可以应用任意固定长度或可变长度的数据块。对于本地数据块来说,数据内容为该数据块所存储的具体数据内容,对于链接数据块来说,其数据内容是一个由文件标识(ID),偏移量,和长度构成的三元组,该三元组表示链接的数据块所在的数据文件,处于该数据文件逻辑存储区域的起始位置以及数据长度等信息。
如图1c所示,为本发明中数据文件的文件头格式。本发明中每一个数据文件被赋予了一个唯一的文件标识。文件类型用于指出该数据文件的类型,对于本发明中的数据文件而言,它用于指出该数据文件是一个普通文件还是一个链接文件;链入计数指出有多少个链接文件链接了该普通文件;链入文件表列出了链接该普通文件的所有数据文件的信息,包括文件标识、链接计数和文件路径,其中:文件标识为该链接文件在本发明数据存储系统中的唯一标识,链接计数指出该链接文件对该普通文件进行了几次链接,也即是该链接文件中有多少个链接数据块链接了该普通文件的本地数据块,可以是同一个本地数据块也可以是不同的本地数据块,具体可以根据该链接文件链接数据块中的三元组来确定,文件路径就是该链接文件在本发明数据存储系统中的存储路径;当文件类型是普通文件时,链出计数和链出文件表为空,只有当文件类型是链接文件时,链出计数和链出文件表才有值;链出计数指出该链接文件链接数据文件的个数;链出文件表列出了该链接文件链接的所有数据文件的信息,包括文件标识、链接计数和文件路径,其中:文件标识为该被链接文件在本发明数据存储系统中的唯一标识,文件链接计数指出该链接文件对该被链接文件进行了几次链接,也即是该链接文件中有多少个链接数据块链接了该被链接文件的本地数据块,可以是同一个的本地数据块也可以是不同的本地数据块,具体可以根据该链接文件链接数据块中的三元组来确定,文件路径就是该被链接文件在本发明数据存储系统中的存储路径;文件头长度指出文件头的大小;文件大小指出文件所包含的数据内容的长度;而实际占用空间大小则指出本文件实际占用的存储空间的大小;当文件为普通文件时,此数值与文件大小和文件头长度之和相同,当文件为链接文件时,此数值为文件大小和文件头长度之和再加上所有链接数据所占用的空间;还有一些现有文件头中具有的比如属性、校验码和数据块地址数组等内容,因为与本发明无关且属于现有技术,所以这里就不再赘述。
在本发明中,对数据文件的写操作往往会涉及到链接的修改,而当修改后的链接满足预定的条件时,比如采用链接的方式不能满足空间利用率或执行效率的要求,就需要删除该链接,甚至将链接文件转变成普通文件。如图2所示,删除链接的流程包括以下步骤:
步骤101:将被链接文件的被链接数据块复制到链接文件存储空间中的相应位置;
步骤102:将链接文件对该被链接文件的链接计数减1;
具体为,将链接文件的链出文件表中该被链接文件的链接计数减1,同时将该被链接文件的链入文件表中该链接文件的链接计数减1;
步骤103:判断链接文件对该被链接文件的链接计数是否为0;若不是,则结束操作;若是,则执行步骤104;
具体为,判断链接文件的链出文件表中该被链接文件的链接计数是否为0,或者判断该被链接文件的链入文件表中该链接文件的链接计数是否为0;
步骤104:删除链接文件和被链接文件中的相应条目;
具体为,删除链接文件的链出文件表中该被链接文件所对应的条目,同时删除被链接文件的链入文件表中该链接文件所对应的条目;
步骤105:将链接文件的链出计数和被链接文件的链入计数同时减1;
步骤106:判断该链接文件的链出计数或该被链接文件的链入计数是否为0;若不是,则结束操作;若是,则执行步骤107;
步骤107:将链接文件转变为普通文件,结束操作。
具体为,将链接文件中的文件类型由链接文件修改为普通文件。
本发明中对数据文件的写操作分为对普通文件的写操作和对链接文件的写操作两种情况。以下对普通文件的写操作及对链接文件的写操作分别进行介绍。
如图3所示,对普通文件进行写操作时,包括以下步骤:
步骤201:打开链接该普通文件的下一个链接文件;
具体为,按照一定顺序,比如表项的记录顺序打开该普通文件的链入文件表中记载的下一个链接文件,第一次执行步骤201为打开该普通文件的链入文件表中记载的第一个链接文件;
步骤202:检查该普通文件中将要被修改的本地数据块是否被该链接文件所链接,如果是,执行步骤203;否则,执行步骤207;
具体为,按照一定顺序,比如从文件头开始到文件末尾,遍历该链接文件的链接数据块,如果能找到一个链接数据块,其数据内容包含的文件标识为该普通文件,且该普通文件中将要被修改的本地数据块的地址空间位于该链接数据块所链接的本地数据块处于该普通文件中的地址空间范围内,则执行步骤203;否则,执行步骤207;
步骤203:将该普通文件中被该链接文件链接且将要被修改的本地数据块复制到该链接文件中;
具体为,将该普通文件中将要被修改的本地数据块复制到该链接文件存储空间的相应位置中;
步骤204:修改该链接文件中对该普通文件的相应链接;
具体为,修改该链接文件中链接该将要被修改的本地数据块的链接数据块,使其链接的本地数据块范围排除已经从该普通文件中复制到该链接文件存储空间中的且将要被修改的本地数据块;
步骤205:判断修改后的新链接是否满足预定的链接删除条件?如果是,执行步骤206;否则,执行步骤207;
所述预定的链接删除条件包括,采用链接的方式不能满足空间利用率或执行效率的要求等等,比如步骤204中修改链接之后,该普通文件中被链接文件链接的本地数据块长度小于链接文件中该链接数据块本身长度的时候,一般出现在普通文件中被链接的本地数据块全部复制到链接文件之后,这时再采用链接的方式就不能满足空间利用率,反而浪费了空间,而且采用链接的方式需要复杂的执行步骤,不能满足执行效率的要求,所以执行步骤206。
步骤206:删除该链接;
具体执行过程参见图2;
步骤207:判断该链接是否是该链接文件对该普通文件中将要被修改数据块的最后一个链接?如果是,执行步骤208;否则,执行步骤202。
具体为,按照预定顺序,比如从文件头开始到文件末尾,继续遍历链接文件中的链接数据块,如果还能找到一个链接数据块,其数据内容包含的文件标识为该普通文件,且该普通文件中将要被修改的本地数据块的地址空间位于该链接数据块所链接的本地数据块处于该普通文件中的地址空间范围内,则执行步骤202;如果遍历完成仍然没有找到满足条件的链接数据块,则执行步骤208。
步骤208:关闭该链接文件;
步骤209:判断所关闭的链接文件是否是链接该普通文件的最后一个链接文件?如果是,执行步骤210;否则,执行步骤201;
具体为,根据打开该普通文件链入文件表中文件的顺序判断所关闭的链接文件是否是链接该普通文件的最后一个链接文件;如果是,执行步骤210;否则,执行步骤201。
步骤210:修改普通文件中将要被修改的数据块,并关闭该普通文件。
如图4所示,对链接文件进行写操作时,包括以下步骤:
步骤301:判断将要被修改的数据块是否存储在该链接文件的存储空间中?如果是,执行步骤302;否则,执行步骤303;
具体为,判断将要被修改的数据块是该链接文件的本地数据块还是该链接文件的链接数据块所链接的其他数据文件中的本地数据块,如果是该链接文件的本地数据,则执行步骤302,如果是该链接文件的链接数据块所链接的其他数据文件中的本地数据块,则执行步骤303;
步骤302:按照对普通文件进行写操作的方式处理该将要被修改数据块的写操作;
具体操作步骤参见图3;
步骤303:打开该链接文件的链接数据块所链接的被链接文件;
具体为,打开该链接文件的链接数据块所包含文件标识对应的被链接文件;
步骤304:复制被链接文件中被链接且将要被修改的数据块到该链接文件中;
具体为,将该被链接文件中被该链接文件的链接数据块所链接的且将要被修改的数据块复制到该链接文件存储空间的相应位置中;
步骤305:修改该链接文件对该被链接文件的相应链接;
具体为,修改该链接文件中的链接数据块,使其链接的本地数据块范围排除已经从该被链接文件中复制到该链接文件存储空间中且将要被修改的本地数据块;
步骤306:判断修改后的新链接是否满足预定的链接删除条件?如果是,执行步骤307;否则,执行步骤308;
所述预定的链接删除条件包括,采用链接的方式不能满足空间利用率或执行效率的要求等等,比如步骤305中修改链接之后,该被链接文件中被该链接文件的链接数据块所链接的数据块长度小于该链接文件中链接数据块本身长度的时候,一般出现在被链接文件中被链接的数据块全部复制到链接文件之后,再采用链接的方式就不能满足空间利用率,反而浪费了空间,而且采用链接的方式需要复杂的执行步骤,不能满足执行效率的要求,所以执行步骤307。
步骤307:删除该链接;
具体执行过程参见图2;
步骤308:关闭该被链接文件;
步骤309:修改该链接文件中将要被修改的数据块,并关闭该链接文件。
下面结合附图,分别举例说明本发明中对普通文件的写操作及对链接文件的写操作。
参见图5,图5为对普通文件中本地数据块F进行写操作的过程,打开链接文件1后,将该本地数据块F复制到链接文件1存储空间的相应位置中,然后修改普通文件和链接文件1之间的相应链接使链接文件1中的链接数据块B只链接普通文件中的本地数据块E,如果该修改后的新链接满足预定的链接删除条件,比如该普通文件中的本地数据块E的长度小于链接文件中链接数据块B长度的时候,则将普通文件中被链接的该本地数据块E也复制到链接文件1存储空间的相应位置中并删除两者之间的相应链接,本实施例中该修改后的新链接不满足预定的链接删除条件,确定该链接是该链接文件1对该普通文件中将要被修改数据块的最后一个链接后关闭该链接文件1;
再确定链接文件1不是链接该普通文件的最后一个链接文件,则打开链接该普通文件的链接文件2,将该本地数据块F复制到链接文件2存储空间的相应位置中,然后修改普通文件和链接文件2之间的相应链接使链接文件2中的链接数据块J只链接普通文件中的本地数据块G,如果该修改后的新链接满足预定的链接删除条件,比如该普通文件中的本地数据块G的长度小于链接文件中链接数据块J长度的时候,则将普通文件中被链接的该本地数据块G也复制到链接文件2中存储空间的相应位置中并删除两者之间的相应链接,本实施例中该修改后的新链接不满足预定的链接删除条件,确定该链接是该链接文件2对该普通文件中将要被修改数据块的最后一个链接后关闭该链接文件2;再确定链接文件2是链接该普通文件的最后一个链接文件,则修改该普通文件中的本地数据块F,并关闭该普通文件。
参见图6,图6为对链接文件进行写操作的过程,由于本地数据块C不链接其他数据文件,所以可以按照上述普通文件中进行写操作的方式来处理本地数据块C的写操作,这里就不再赘述了。对链接数据块B所链接的其他数据文件中的本地数据块F进行写操作的步骤为:确定要修改的数据块为链接数据块B链接的其他文件的本地数据块F后,打开该链接数据块B链接的被链接文件,将该被链接且将要被修改的本地数据块F复制到该链接文件存储空间的相应位置中,然后修改链接文件和被链接文件之间的相应链接使链接文件中的链接数据块B只链接被链接文件中的本地数据块E,如果该修改后的新链接满足预定的链接删除条件,比如该被链接文件中的本地数据块E的长度小于链接文件中链接数据块B长度的时候,则将被链接文件中被链接的本地数据块E也复制到链接文件存储空间的相应位置中并删除两者之间的相应链接,本实施例中该修改后的新链接不满足预定的链接删除条件,则直接关闭该被链接文件,最后修改该链接文件中的本地数据块F,并关闭该链接文件。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1、一种低冗余数据存储方法,其特征在于,适用于以本地数据块和链接数据块来存储数据文件的数据存储系统,其中,本地数据块为数据内容,链接数据块用于链接其他数据文件中的本地数据块;
在对数据文件进行写操作并关闭该数据文件前,所述方法包括:
当修改所述数据文件中被其他数据文件所链接的本地数据块时,将所述本地数据块复制到其被链接的数据文件中并修改相应数据文件间的链接;
当修改所述数据文件中链接数据块所链接的另一数据文件中的本地数据块时,将所述本地数据块复制到所述数据文件中并修改相应数据文件间的链接。
2、根据权利要求1所述的方法,其特征在于,所述修改相应数据文件间的链接之后,所述方法进一步包括:如果修改后的相应数据文件间的链接不能满足空间利用率或执行效率的要求,则删除该修改后的相应数据文件间的链接。
3、根据权利要求1或2所述的方法,其特征在于,所述数据文件的文件头至少包括:文件标识、文件类型、链入计数、链入文件表、链出计数和链出文件表;其中,
文件标识为所述数据文件的唯一标识;
文件类型用于指出所述数据文件的类型,包括普通文件和链接文件,其中,普通文件中的所有数据块均为本地数据块,链接文件中包括至少一个或多个链接数据块;
链入计数用于指出所述数据文件被多少个其他数据文件所链接;
链入文件表包括了链接所述数据文件的所有其他数据文件的文件标识、链接计数和文件路径,其中文件标识为链入文件表中每个数据文件的唯一标识,链接计数为链入文件表中每个数据文件链接所述数据文件的次数,文件路径为链入文件表中存储每个数据文件的目录结构;
链出计数用于指出所述数据文件链接了多少个其他数据文件;
链出文件表包括了被所述数据文件链接的所有其他数据文件的文件标识、链接计数和文件路径,其中文件标识为链出文件表中每个数据文件的唯一标识,链接计数为所述数据文件链接链出文件表中每个数据文件的次数,文件路径为链出文件表中存储每个数据文件的目录结构。
4、根据权利要求3所述的方法,其特征在于,所述数据文件的数据块头包括:数据类型、数据长度和数据内容;其中,
数据类型用于指出该数据块是本地数据块还是链接数据块;
数据长度为该数据块的长度;当数据类型为本地数据块时,数据内容为该数据块所存储的数据内容;当数据类型为链接数据块时,数据内容包括文件标识、偏移量和长度,文件标识为所链接的本地数据块所在的数据文件的唯一标识,偏移量表示所链接的本地数据块位于其所在数据文件中的起始位置,长度表示所链接的本地数据块的数据长度。
5、根据权利要求4所述的方法,其特征在于,所述删除该修改后的相应数据文件间的链接具体包括:
将被链接数据文件中的被链接数据块复制到链接文件中,将该链接文件对该被链接文件的链接计数减1,如果所述链接计数为0,则删除该链接文件和该被链接文件文件头中对方所对应的条目并将该链接文件的链出计数和该被链接文件的链入计数同时减1,如果该链接文件的链出计数或该被链接文件的链入计数为0,则将该链接文件的文件类型修改为普通文件。
6、根据权利要求5所述的方法,其特征在于,所述数据文件为普通文件,在将所述本地数据块复制到其被链接的数据文件中之前,所述方法进一步包括:逐个打开链接该普通文件的所有链接文件;在对普通文件进行写操作之前,所述方法进一步包括:逐个关闭链接该普通文件的所有链接文件。
7、根据权利要求6所述的方法,其特征在于,将所述本地数据块复制到其被链接的数据文件中并修改相应数据文件间的链接具体包括:
将该普通文件中将要被修改的本地数据块逐个复制到链接该将要被修改的本地数据块的所有链接文件中,并修改链接所述将要被修改的本地数据块的所有链接文件中的相应链接数据块,使其链接的本地数据块范围排除所述将要被修改的本地数据块。
8、根据权利要求5所述的方法,其特征在于,所述数据文件为链接文件,在将所述本地数据块复制到所述数据文件中之前,所述方法进一步包括:打开所述链接文件中链接数据块所链接的本地数据块所在的另一数据文件;在对链接文件进行写操作之前,所述方法进一步包括:关闭包含将要被修改的本地数据块的所述另一数据文件。
9、根据权利要求8所述的方法,其特征在于,将所述本地数据块复制到所述数据文件中具体包括:
将所述另一数据文件中被链接且将要被修改的本地数据块复制到所述链接文件中。
10、根据权利要求9所述的方法,其特征在于,所述修改相应数据文件间的链接具体包括:
修改链接所述另一数据文件中将要被修改的本地数据块的所述链接文件中的相应链接数据块,使其链接的本地数据块范围排除所述将要被修改的本地数据块。
CN2009100778816A 2009-01-24 2009-01-24 一种低冗余数据存储方法 Expired - Fee Related CN101551817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100778816A CN101551817B (zh) 2009-01-24 2009-01-24 一种低冗余数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100778816A CN101551817B (zh) 2009-01-24 2009-01-24 一种低冗余数据存储方法

Publications (2)

Publication Number Publication Date
CN101551817A true CN101551817A (zh) 2009-10-07
CN101551817B CN101551817B (zh) 2011-06-08

Family

ID=41156064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100778816A Expired - Fee Related CN101551817B (zh) 2009-01-24 2009-01-24 一种低冗余数据存储方法

Country Status (1)

Country Link
CN (1) CN101551817B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844584A (zh) * 2017-01-10 2017-06-13 清华大学 元数据结构和基于其的操作方法、定位方法、切分方法
CN108431797A (zh) * 2015-12-28 2018-08-21 微软技术许可有限责任公司 电子文档的存储器节约的版本控制

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100511183C (zh) * 2004-06-30 2009-07-08 深圳市朗科科技股份有限公司 减少存储介质中的数据冗余的方法
CN100483420C (zh) * 2007-11-09 2009-04-29 清华大学 基于快照的细粒度文件与目录版本管理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108431797A (zh) * 2015-12-28 2018-08-21 微软技术许可有限责任公司 电子文档的存储器节约的版本控制
CN106844584A (zh) * 2017-01-10 2017-06-13 清华大学 元数据结构和基于其的操作方法、定位方法、切分方法
CN106844584B (zh) * 2017-01-10 2019-12-17 清华大学 元数据结构和基于其的操作方法、定位方法、切分方法

Also Published As

Publication number Publication date
CN101551817B (zh) 2011-06-08

Similar Documents

Publication Publication Date Title
CN105843905B (zh) 用于管理文件系统中的文件系统对象的设备和方法
TWI395104B (zh) 在分散式儲存系統中資料之基元多重修改
CN102985911B (zh) 高度可伸缩和分布式重复数据删除
CN104933133B (zh) 分布式文件系统中的元数据快照存储和访问方法
US7536419B2 (en) Slave replica member
CN105404673B (zh) 基于nvram的高效文件系统构建方法
JP5387757B2 (ja) 並列データ処理システム、並列データ処理方法及びプログラム
US9378216B2 (en) Filesystem replication using a minimal filesystem metadata changelog
CN102122289B (zh) 分派冲突的数据变更
CN102012933B (zh) 分布式文件系统及利用其存储数据和提供服务的方法
CN103595797B (zh) 一种分布式存储系统中的缓存方法
KR20170129959A (ko) 인 플레이스 스냅샷들
CN102651007A (zh) 一种管理数据库索引的方法和装置
CN102394936B (zh) 集群系统无损业务维护方法
CN103577513A (zh) 藉延迟节点实例化以缓存xml信息集的系统和/或方法
CN104965835B (zh) 一种分布式文件系统的文件读写方法及装置
CN101551817B (zh) 一种低冗余数据存储方法
CN105302488A (zh) 一种存储系统的数据写入方法及系统
CN100433005C (zh) 搜索系统索引切换的方法及搜索系统
US20080320252A1 (en) Optimized and robust in-place data transformation
CN104298467B (zh) 一种p2p缓存文件管理方法和装置
JP5465401B2 (ja) ファイル管理方法、装置及びプログラム
CN106294626A (zh) 一种并行重放文件系统重做日志的方法
JP2006085324A (ja) レプリケーションシステム
MXPA06000913A (en) Serialization of file system item(s) and associated entity(ies)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: CHINA POTEVIO CO., LTD.

Free format text: FORMER OWNER: PUTIAN IT TECH INST CO., LTD.

Effective date: 20130304

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130304

Address after: 100080, No. two, 2 street, Zhongguancun science and Technology Park, Beijing, Haidian District

Patentee after: CHINA POTEVIO CO.,LTD.

Address before: 100080 Beijing, Haidian, North Street, No. two, No. 6, No.

Patentee before: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

ASS Succession or assignment of patent right

Owner name: PUTIAN IT TECH INST CO., LTD.

Free format text: FORMER OWNER: CHINA POTEVIO CO., LTD.

Effective date: 20130313

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130313

Address after: 100080 Beijing, Haidian, North Street, No. two, No. 6, No.

Patentee after: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

Address before: 100080, No. two, 2 street, Zhongguancun science and Technology Park, Beijing, Haidian District

Patentee before: CHINA POTEVIO CO.,LTD.

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method for storing low-redundancy data

Effective date of registration: 20131210

Granted publication date: 20110608

Pledgee: Bank of Beijing Limited by Share Ltd. Century City Branch

Pledgor: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

Registration number: 2013990000954

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
C56 Change in the name or address of the patentee

Owner name: POTEVIO INFORMATION TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: PUTIAN IT TECH INST CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 100080 Beijing, Haidian, North Street, No. two, No. 6, No.

Patentee after: POTEVIO INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 100080 Beijing, Haidian, North Street, No. two, No. 6, No.

Patentee before: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20151102

Granted publication date: 20110608

Pledgee: Bank of Beijing Limited by Share Ltd. Century City Branch

Pledgor: POTEVIO INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: 2013990000954

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PM01 Change of the registration of the contract for pledge of patent right

Change date: 20151102

Registration number: 2013990000954

Pledgor after: POTEVIO INFORMATION TECHNOLOGY Co.,Ltd.

Pledgor before: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method for storing low-redundancy data

Effective date of registration: 20151105

Granted publication date: 20110608

Pledgee: Bank of Beijing Limited by Share Ltd. Century City Branch

Pledgor: POTEVIO INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: 2015990000948

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20161008

Granted publication date: 20110608

Pledgee: Bank of Beijing Limited by Share Ltd. Century City Branch

Pledgor: POTEVIO INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: 2015990000948

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method for storing low-redundancy data

Effective date of registration: 20161011

Granted publication date: 20110608

Pledgee: Bank of Beijing Limited by Share Ltd. Century City Branch

Pledgor: POTEVIO INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: 2016990000859

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20170802

Granted publication date: 20110608

Pledgee: Bank of Beijing Limited by Share Ltd. Century City Branch

Pledgor: POTEVIO INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: 2016990000859

PC01 Cancellation of the registration of the contract for pledge of patent right
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110608

Termination date: 20220124