本发明专利技术属于数据存储领域,具体涉及到一种基于版本的数据存储方法。在本发明专利技术所采用的方法中,使用数据时,从存储器读取需要的差异数据,然后把差异数据合并成所需要的数据;保存数据时,选择一个历史版本作为源版本,计算当前数据和源版本的版本数据之间的差异,并且把差异数据存储到存储器,同时可以把冗余的差异数据删除。采用本发明专利技术介绍的方法,修改数据时,存储器只保存必要的差异数据,提高了数据存储的效率。
A version based data storage method
The invention belongs to the field of data storage, in particular to a version based data storage method. The method adopted by the invention, the use of data, data read from the memory to the difference, then the difference of the data into the required data; save data, select a version of history as a source of data to calculate the current version, version differences between the data and the source version, and the difference in data storage to the memory, while the difference of redundant data delete. When the method introduced by the invention modifies the data, the memory only saves the necessary difference data, thereby improving the efficiency of data storage.
【技术实现步骤摘要】
本专利技术属于数据存储领域,具体涉及到 。
技术介绍
在一些网络存储应用中,比如网络存储系统中,通常情况下, 一个文件被修改后重新保存时,需要将整个文件重新上传到服务器;比如,在客户端打开 一个文件A时,需要从服务器上面下载A文件的数据,A文件^修改后形成A,, 如果要保存A,的话,还需要把整个A,重新传输给服务器。由于文件被修改后, 通常情况下只有一小部分被修改,如果重新上传整个文件的话,将极大地浪费 网络资源。比如从服务器下载一个10MB的文件a.doc,修改其中的一个字符后保存, 则需要把这个10MB的文件重新传输给服务器。如果我们能把修改前后的数据 差异提取出来传送给服务器,由于被修改的部分比较少,只需要传输非常少量 的数据。本专利技术所介绍的内容中,数据以版本形式被组织。对数据的每次修改都会 形成一个新的版本,修改后的数据称为该新版本的版本数据,每个版本有一个 版本号,该版本号唯一标识形成数据的最后一次修改的先后顺序,版本数据用 V[x]表示,其中x代表数据的版本号。比如版本l(V[l])被修改后就形成版本 2(V[2]),版本2被修改以后就形成版本3(V[3]),这里的1,2,3标识数据被修改的 先后顺序,版本号比较小的数据称为版本号比较大的数据的历史版本;两个版 本数据之间的差异被提取出来以后形成差异数据,版本号较'J、的数据的称为差 异数据的源数据,版本号较大的数据称为差异数据的目标数据,差异数据用 V(x,y)来表示,其中x表示源数据的版本号,简称源版本号,y代表目标数据的 版本号,简称目标版本号。比如,我们把一个数据V[l]修改以后成为V[2],则V[l]和V[2]的差异数据 为V[1,2];在存储的时候只需要存储V[1]和V[1,2],当需要使用V[2]的数据时, 根据V[l]和V[l,2]合并成V[2]。为了便于说明,我们把空数据当作任何数据的历史版本,也就是说,对于 任何数据,都可以认为他们是由空数据直接或者间接修改后得到的,即空数据当作任何数据的第0个版本。因此,我们把版本数据V[x]认为是针对版本0的 差异数据,记为V。即我们也把上面提到的V[l], V[2], V[3]当作V[O,l], V, V。容易明白,这里用版本来组织数据只是为了便于说明数据所被修改的顺序, 以及说明差异数据是代表的是哪两个数据的差异。对于这些名称和组织方式的 改变并不影响本专利技术的本质。在现有的方法中,客户端在保存数据时每次都用修改之前的版本作为源版 本,比如对V[2]进行修改时就用V[2]作为源版本,对V[3]进行修改时就把V[3] 作为源版本。但是在实际应用中,经过一系列修改后,服务器上面将存在V[O,l], V[1,2], V[2,3], V[3,4]…V[n-l,n]这些数据。在实践中,所有这些差异数据的大 小总和将远远超过V[n]数据的大小。为了避免这种情况,本专利技术通过选择特定历史版本作为源版本,有效降低 了数据冗余程度。例如,当服务器上存在V[O,l], V[l,2], V[2,3], V[3,4]…V[n-l,n] 的时候,对V[n]进行修改保存时,如果选择版本数据V作为源数据,将产 生差异数据V[2,n+1],需要的时候只需将V,V[l,2],V[2,n+l]三个差异数据合 并就能够得到V[n+1],这种情况下,只有这三个差异数据是必要的,其他服务 器上的差异数据都不是必要的,可以将其删除以节省存储空间。采用这种方法, 将大大降低服务器的空间占用。为了便于进一步说明,这里解释一下本专利技术中涉及到的一些概念。版本路径定义为合成一个版本数据时所用到的差异数据的集合。比如为了那么就称集合(V,V[1,2],V[2,5])为版本V的版本路径。对于给定版本的 所有的版本路径中,差异数据大小总和最小的版本路径称为最优版本路径。版本冗余度定义为最优版本路径中所有差异数据大小的总和与对应版本数 据大小的比值。比如上述例子中,差异凝:据{ V,V[l,2],V[2,5])it据大小的总 和与版本V数据大小的比值称为版本V的版本冗余度。不在最新版本的最优版本路径中的差异数据称为冗余差异数据。 本专利技术所介绍的中,在存储数据的过程中, 选择一个历史版本作为源版本,使得使用该历史版本作为源版本时,服务器上 数据的数据冗余度在可控的范围之内,从而有效控制存储器上面的版本冗余度, 节省存储器空间。
技术实现思路
,本专利技术包括以下特征la).数据修改后,保存新数据与历史版本的差异数据; lb).使用数据时,根据差异数据生成所需要的数据;上述所描述的,其特征在于步骤la),数据修 改后,保存新数据与历史版本的差异数据,其详细步骤如下 2a).选择一个历史版本作为源版本;2b).如果不存在源版本的版本数据,根据差异数据生成源版本的版 本数据;2c).计算新数据和源版本的版本数据之间的差异,并将差异信息保存到差异数据中; 2d).将差异数据存储到存储器;上述步骤2a)选择一个历史版本作为源版本,其目的是选择一个能够将数 据冗余度控制在预期范围内的最新历史版本作为源版本,其具体步骤如下 3a).选择一个最新的历史版本作为备选版本; 3b).判断备选版本是否符合作为源版本的条件; 3c).如果是,则使用备选版本作为源版本,返回; 3d).如果存在更早的历史版本,则从中选择一个最新的版本作为备选 版本,转3b);否则以版本0作为源版本,返回; 上述步骤3b),判断备选版本是否符合作为源版本的条件。目的是为了将 服务器的数据冗余度控制在预期的范围,所述的预期范围是指系统预设的允许 的数据冗余度范围,比如0到2,即数据冗余度在0到2之间都视为可接受。其 具体步骤是4a).计算数据冗余度;4b).判断数据冗余度是否超过预期值,如果是则备选版本不符合作为 源版本的条件,否则,备选版本符合作为源版本的条件; 上述步骤4a)中计算数据冗余度,其所指的数据冗余度是指可以体现数据冗余 程度的指标,包括但不仅限于5a).备选版本的数据冗余度;5b).估计采用备选版本作为源版本的情况下新版本的数据冗余度; 5c).实际计算以备选版本作为源版本时所得到新版本的数据冗余度;具体采用何种方法,并不影响本专利技术的本质。上述步骤la)数据修改后,保存新数据与历史版本的差异数据。在该步骤 中,当所述的历史版本不是服务器上的最新版本时,会使得部分差异数据变成 冗余差异数据。比如,当服务器上的版本是V[O,l], V[1,2], V[2,3]的情况下, 如果选择版本2作为源版本,服务器上面将会有V[O,l], V[l,2], V[2,3], V[2,4], 需要用到最新数据时只要用V[O,l], V[1,2], V[2,4]合并即可,V[2,3]将不会被用 到,所以是个冗余差异数据。为了节省存储空间,可以将冗余差异数据删除, 删除冗余差异数据的操作可以在每次保存数据时进行,也可以是系统定期执行 删除操作,还可以是在存储空闲空间小于预期值时执行,至于具体什么时候进 行,并不影响本专利技术的本质。上述步骤lb)使用数据时,根据差异数据生成版本数据,具体包括以下步骤 6a).计算合成版本数据需要的差异数据; 6b).读取需要的差异数据; 6c).将差异数据合并成版本本文档来自技高网...
【技术保护点】
一种基于版本的数据存储方法,本专利技术包括以下特征: 1a).数据修改后,选择一个历史版本做为源版本,保存新数据与源版本的差异数据; 1b).使用数据时,计算需要的差异数据,根据差异数据生成所需要的数据。
【技术特征摘要】
1。一种基于版本的数据存储方法,本发明包括以下特征1a). 数据修改后,选择一个历史版本做为源版本,保存新数据与源版本的差异数据;1b). 使用数据时,计算需要的差异数据,根据差异数据生成所需要的数据。2、 根据权利要求1所述的一种基于版本的数据存储方法,其特征在于步骤 la),所述选择一个历史版本做为源版本,保存新数据与源版本的差异数据, 其详细步骤如下2a).选择一个历史版本作为源版本;2b).如果不存在源版本的版本数据,计算源版本的版本数据;2c).计算新数据和源版本的版本数据之间的差异,并将差异信息保存到差异数据中; 2d).将差异数据存储到存储器。3、 根据权利要求2所述,其步錄2a)选择一个历史版本作为源版本,具体指 选择一个符合条件的最新历史版本作为源版本。所述的符合条件是指使用该历 史版本作为源版本时,能够把存储冗余度控制在预期的范围内。4、 根据权利要求3所述的一种基于版本的数据存储方法,所述的把存储冗余度 控制在预期的范围内,其所指的存储冗余度是指可以体现数据冗余...
【专利技术属性】
技术研发人员:林兆祥,
申请(专利权)人:林兆祥,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。