一种数据存储的方法及装置与流程

文档序号:12595991阅读:来源:国知局

技术特征:

1.一种数据存储的方法,其特征在于,存储空间中存储有原始数据的至少一个版本数据组,所述至少一个版本数据组中的每个版本数据组中包含至少两个子数据,每个版本数据组中的子数据是原始数据不同版本的数据,所述至少一个版本数据组中各个版本数据组中的子数据一一对应;

所述至少两个子数据是采用纠错码EC算法划分所述原始数据得到的,或者,所述至少两个子数据是修改所述至少两个子数据所在版本数据组的上一版本数据组中对应子数据得到的,或者,所述至少两个子数据中的每个子数据为所述原始数据的一个副本数据;

所述方法包括:

在获得第一子数据后,计算所述第一子数据与所述第二子数据的差异值;所述第一子数据为新版本数据组中的一个子数据,所述第二子数据为所述新版本数据组的上一版本数据组中、与所述第一子数据对应子数据;

若所述第一子数据与所述第二子数据的差异值小于或等于第一差异阈值,则在存储所述新版本数据组时,仅存储所述第一子数据与所述第二子数据的差别数据,所述第一子数据与所述第二子数据的差别数据为所述第一子数据与所述第二子数据相比、所述第一子数据中已修改的数据的大小,

或者,若所述第一子数据与所述第二子数据的差异值大于第一差异阈值,则在存储所述新版本数据组时,存储所述第一子数据。

2.根据权利要求1所述的方法,其特征在于,所述至少两个子数据是采用所述EC算法划分所述原始数据得到的,或者,所述至少两个子数据是修改所述至少两个子数据所在版本数据组的上一版本数据组中对应子数据得到的;

每个版本数据组中还包含至少一个校验数据块,所述至少一个校验数据块是采用所述EC算法根据该版本数据组中包含的至少两个子数据计算得到的;

所述方法还包括:

在存储所述新版本数据组时,直接存储所述新版本数据组中的至少一个校验数据块;

其中,所述新版本数据组中的至少一个校验数据块是采用所述EC算法,根据所述新版本数据组中包含的至少两个子数据计算得到的。

3.根据权利要求1或2所述的方法,其特征在于,所述存储空间中还存储有所述原始数据的索引信息,所述原始数据的索引信息中包含所述至少一个版本数据组中每个版本数据组的索引信息;

每个子数据的索引记录中包含该子数据的数据索引和第一索引链接,所述第一索引链接为该子数据的存储地址与上一版子数据的存储地址的索引链接,所述上一版子数据为该子数据所在版本数据组的上一版本数据组中对应子数据,

或者,每个子数据的索引记录中包含该子数据的数据索引;

其中,该子数据的数据索引指向该子数据的存储地址。

4.根据权利要求3所述的方法,其特征在于,在存储所述第一子数据与所述第二子数据的差别数据或者存储所述第一子数据之后,所述方法还包括:

生成所述第一子数据的索引记录;

其中,所述第一子数据的索引记录中包含所述第一子数据的数据索引和所述第一子数据的存储地址与所述第二子数据的存储地址的索引链接,

或者,所述第一子数据的索引记录中包含所述第一子数据的数据索引;

其中,所述第一子数据的数据索引指向所述第一子数据的存储地址。

5.根据权利要求1-4中任一项所述的方法,其特征在于,所述计算所述第一子数据与所述第二子数据的差异值,包括:

计算所述第一子数据与所述第二子数据的差别数据的大小,所述第一子数据与所述第二子数据的差别数据的大小为所述第一子数据与所述第二子数据的差异值;

或者,

计算所述第一子数据与所述第二子数据的差别数据的大小,

计算所述差别数据的大小与所述第一子数据的大小的比值,所述比值为所述第一子数据与所述第二子数据的差异值。

6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:

若N大于或等于预设版本阈值,则将所述存储空间中存储的、所述原始数据的各个版本数据组中的对应子数据连续存储;

或者,若小于或等于第三差异阈值,则将所述存储空间中存储的、所述原始数据的各个版本数据组中的对应子数据连续存储;

或者,若小于或等于第四差异阈值,则将所述存储空间中存储的、所述原始数据的各个版本数据组中的对应子数据连续存储;

其中,N用于表示所述原始数据的版本数据组的个数,Di,j+1用于表示所述原始数据的第j+1个版本数据组中第i个子数据的大小,Di,j用于表示所述原始数据的第j个版本数据组中第i个子数据的大小,Di,N用于表示所述原始数据的第N个版本数据组中第i个子数据的大小,i∈[1,M],M用于表示所述原始数据的任一版本数据组中包含的子数据的个数,M≥2,所述原始数据的任一版本数据组中包含的子数据的个数相同。

7.一种数据存储的装置,其特征在于,包括:存储模块和计算模块;

所述存储模块包括存储空间,所述存储空间中存储有原始数据的至少一个版本数据组,所述至少一个版本数据组中的每个版本数据组中包含至少两个子数据,每个版本数据组中的子数据是原始数据不同版本的数据,所述至少一个版本数据组中各个版本数据组中的子数据一一对应;所述至少两个子数据是采用纠错码EC算法划分所述原始数据得到的,或者,所述至少两个子数据是修改所述至少两个子数据所在版本数据组的上一版本数据组中对应子数据得到的,或者,所述至少两个子数据中的每个子数据为所述原始数据的一个副本数据;

所述计算模块,在获得第一子数据后,计算所述第一子数据与所述第二子数据的差异值;所述第一子数据为新版本数据组中的一个子数据,所述第二子数据为所述新版本数据组的上一版本数据组中、与所述第一子数据对应子数据;

所述存储模块,还用于:

若所述计算模块计算得到所述第一子数据与所述第二子数据的差异值小于或等于第一差异阈值,则在存储所述新版本数据组时,仅存储所述第一子数据与所述第二子数据的差别数据,所述第一子数据与所述第二子数据的差别数据为所述第一子数据与所述第二子数据相比、所述第一子数据中已修改的数据的大小,

或者,若所述计算模块计算得到所述第一子数据与所述第二子数据的差异值大于第一差异阈值,则在存储所述新版本数据组时,存储所述第一子数据。

8.根据权利要求7所述的装置,其特征在于,所述至少两个子数据是采用所述EC算法划分所述原始数据得到的,或者,所述至少两个子数据是修改所述至少两个子数据所在版本数据组的上一版本数据组中对应子数据得到的;

每个版本数据组中还包含至少一个校验数据块,所述至少一个校验数据块是采用所述EC算法根据该版本数据组中包含的至少两个子数据计算得到的;

所述存储模块,还用于在存储所述新版本数据组时,直接存储所述新版本数据组中的至少一个校验数据块;

其中,所述新版本数据组中的至少一个校验数据块是采用所述EC算法,根据所述新版本数据组中包含的至少两个子数据计算得到的。

9.根据权利要求7或8所述的装置,其特征在于,所述存储空间中还存储有所述原始数据的索引信息,所述原始数据的索引信息中包含所述至少一个版本数据组中每个版本数据组的索引信息;

每个子数据的索引记录中包含该子数据的数据索引和第一索引链接,所述第一索引链接为该子数据的存储地址与上一版子数据的存储地址的索引链接,所述上一版子数据为该子数据所在版本数据组的上一版本数据组中对应子数据,

或者,每个子数据的索引记录中包含该子数据的数据索引;

其中,该子数据的数据索引指向该子数据的存储地址。

10.根据权利要求9所述的装置,其特征在于,还包括:

生成模块,用于在所述存储模块存储所述第一子数据与所述第二子数据的差别数据或者存储所述第一子数据之后,生成所述第一子数据的索引记录;

其中,所述第一子数据的索引记录中包含所述第一子数据的数据索引和所述第一子数据的存储地址与所述第二子数据的存储地址的索引链接,

或者,所述第一子数据的索引记录中包含所述第一子数据的数据索引;

其中,所述第一子数据的数据索引指向所述第一子数据的存储地址。

11.根据权利要求7-10中任一项所述的装置,其特征在于,所述计算模块,具体用于:

计算所述第一子数据与所述第二子数据的差别数据的大小,所述第一子数据与所述第二子数据的差别数据的大小为所述第一子数据与所述第二子数据的差异值;

或者,

计算所述第一子数据与所述第二子数据的差别数据的大小,

计算所述差别数据的大小与所述第一子数据的大小的比值,所述比值为所述第一子数据与所述第二子数据的差异值。

12.根据权利要求7-11中任一项所述的装置,其特征在于,所述存储模块,还用于:

若N大于或等于预设版本阈值,则将所述存储空间中存储的、所述原始数据的各个版本数据组中的对应子数据连续存储;

或者,若小于或等于第三差异阈值,则将所述存储空间中存储的、所述原始数据的各个版本数据组中的对应子数据连续存储;

或者,若小于或等于第四差异阈值,则将所述存储空间中存储的、所述原始数据的各个版本数据组中的对应子数据连续存储;

其中,N用于表示所述原始数据的版本数据组的个数,Di,j+1用于表示所述原始数据的第j+1个版本数据组中第i个子数据的大小,Di,j用于表示所述原始数据的第j个版本数据组中第i个子数据的大小,Di,N用于表示所述原始数据的第N个版本数据组中第i个子数据的大小,i∈[1,M],M用于表示所述原始数据的任一版本数据组中包含的子数据的个数,M≥2,所述原始数据的任一版本数据组中包含的子数据的个数相同。

13.一种数据存储的装置,其特征在于,所述装置包括:一个或多个处理器、存储器、总线和通信接口;

所述存储器中包括存储空间,所述存储空间中存储有原始数据的至少一个版本数据组,所述至少一个版本数据组中的每个版本数据组中包含至少两个子数据,每个版本数据组中的子数据是原始数据不同版本的数据,所述至少一个版本数据组中各个版本数据组中的子数据一一对应;

所述至少两个子数据是采用纠错码EC算法划分所述原始数据得到的,或者,所述至少两个子数据是修改所述至少两个子数据所在版本数据组的上一版本数据组中对应子数据得到的,或者,所述至少两个子数据中的每个子数据为所述原始数据的一个副本数据;

所述存储器还用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述数据存储的装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述数据存储的装置执行如权利要求1-6任一项所述的数据存储的方法。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1