一种数据压缩方法及装置与流程

文档序号:11638417阅读:193来源:国知局
一种数据压缩方法及装置与流程
本发明涉及计算机技术领域,尤其涉及一种数据压缩方法及装置。

背景技术:
随着信息化社会的飞速发展,需要存储或传输的数据呈指数级增长,数据占用的空间急剧膨胀,但是用于数据存储的容量空间与用于数据传输的网络带宽却受限于存储系统和网络设备高昂的架设、管理以及维护成本而难以与当今庞大的数据量相匹配。在数据存储或网络传输过程中存在大量的重复数据。为了缓解数据量飞快增长与硬件设施更新缓慢之间的矛盾,可采用数据去重(DataDeduplication,简称DD)压缩技术对数据进行压缩处理。有别于视频、音频、图像以及其它通用的数据压缩技术,DD压缩技术不仅关注数据对象内部数据的重复,还关注数据对象之间数据的重复。其处理流程如下:预先将数据对象切割成片,并建立数据分片及其特征索引库。当相应的数据分片再次出现时,使用较短的分片索引代替较长的分片数据,从而实现存储或传输的数据压缩,达到节省存储空间或提升传输带宽利用率的效果。其中,数据压缩比是压缩效果的重要评估标准之一,具体表示为原始数据与压缩数据占用字节数的比值。更大的数据压缩比,意味着更高的资源利用率、更少的硬件部署以及更低的设备运营和维护成本。因此,在不以过分牺牲压缩数据可恢复性和数据处理性能为代价的前提下,极限的数据压缩比一直是业界追求的目标。DD压缩技术一般基于内容对数据进行分片,在分片方法及其参数选定之后,其数据压缩比,即数据分片与分片索引平均占用字节数的比值,基本固定。现有技术中,提供了一种采用合并数据分片来提高数据压缩比的方法。通过统计分析,将出现频率较高的数据分片序列合并成超级分片,并为之建立对应的超级分片索引,从而取代零散的数据分片及其分片索引。这样相当于间接放大了数据压缩比的分子部分,进而实现DD压缩效果的提升。但是该方法对数据变化的适用性较差,一旦超级分片对应的原始数据发生变化,超级分片将失效,不能作为数据去重的参考以进行数据压缩。超级分片合并的数据分片越多,其应对数据变化的能力就越差。从而导致DD压缩效果恶化,存储资源将因超级分片失效而浪费,提升了成本;此外由于增加了超级分片的构建及对应超级分片索引的计算,数据处理性能较低。现有技术中,还提供了一种采用合并分片索引来提高数据压缩比的方法。通过统计分析,将出现频率较高的分片索引序列合并成超级索引,从而取代零散的分片索引。这样相当于间接缩小了数据压缩比的分母部分,进而实现DD压缩效果的提升。但是该方法同样面临超级索引对应的原始数据发生变化导致超级索引失效而带来的压缩效果差、存储资源浪费、成本高的缺点,同时因为增加了超级索引的构建且在数据恢复过程中需要对分片索引作二次检索,数据处理性能同样较低。

技术实现要素:
有鉴于此,本发明实施例提供了一种数据压缩方法及装置,以解决现有技术中由于原始数据发生变化而带来的压缩效果差、存储资源浪费和成本高的问题。本发明实施例第一方面提供一种数据压缩方法,可包括:依次计算数据分片序列中数据分片的分片索引,形成分片索引序列,为所述分片索引扩充后向索引描述符,其中,取自同一数据对象的分片索引存在数据相关性,所述后向索引描述符用于标识与所述分片索引存在数据相关性的后一个分片索引;判断已有的分片索引库中是否存在所述分片索引;若不存在,则根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列;若存在,则进一步判断所述分片索引序列中是否存在所述分片索引的参考索引,其中,所述参考索引为已建立的分片索引参考序列中所述分片索引的前一个分片索引;若存在所述参考索引,则根据所述分片索引相对于所述参考索引的位移量,采用相对索引表示所述分片索引,否则不改变所述分片索引的表示方式。可选的,根据所述分片索引相对于所述参考索引的位移量,采用相对索引表示所述分片索引,包括:将所述参考索引的位置作为起始点,对所述分片索引序列进行后向遍历,检测所述分片索引的位置;每向后遍历1个分片索引,所述位移量增加1,若位移量增加至n时检测到所述分片索引,则将所述分片索引采用相对索引n表示,其中,n为大于1的自然数。可选的,在采用相对索引表示所述分片索引之前,还包括:判断所述分片索引序列中是否存在所述已建立的分片索引参考序列中的连续分片索引,其中,所述连续分片索引中各个相邻分片索引的位移量为1;若存在,则根据所述连续分片索引中分片索引的数目m,将第一个分片索引作为后续m-1个分片索引的参考索引,采用连续索引m-1表示所述后续m-1个分片索引,其中,m为大于2的自然数;若不存在,则采用相对索引表示所述分片索引;其中,配置至少一个比特位用于区别所述相对索引与所述连续索引。可选的,所述后向索引描述符包括指针或编号。可选的,根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列,包括:判断是否存在与所述分片索引存在数据相关性的分片索引参考序列;若存在,则将所述分片索引插入所述分片索引参考序列并更新所述分片索引参考序列;否则根据所述后向索引描述符将存在数据相关性的分片索引串联形成新的分片索引参考序列。本发明实施例第二方面提供一种数据压缩装置,可包括:计算扩充单元,用于依次计算数据分片序列中数据分片的分片索引,形成分片索引序列,为所述分片索引扩充后向索引描述符,其中,取自同一数据对象的分片索引存在数据相关性,所述后向索引描述符用于标识与所述分片索引存在数据相关性的后一个分片索引;第一判断单元,用于判断已有的分片索引库中是否存在所述分片索引;序列构建单元,用于当所述第一判断单元判定已有的分片索引库中不存在所述分片索引时,根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列;第二判断单元,用于当所述第一判断单元判定已有的分片索引库中存在所述分片索引时,进一步判断所述分片索引序列中是否存在所述分片索引的参考索引,其中,所述参考索引为已建立的分片索引参考序列中所述分片索引的前一个分片索引;索引表示单元,用于若存在所述参考索引,则根据所述分片索引相对于所述参考索引的位移量,采用相对索引表示所述分片索引,否则不改变所述分片索引的表示方式。可选的,所述索引表示单元进一步用于:将所述参考索引的位置作为起始点,对所述分片索引序列进行后向遍历,检测所述分片索引的位置;每向后遍历1个分片索引,所述位移量增加1,若位移量增加至n时检测到所述分片索引,则将所述分片索引采用相对索引n表示,其中n为大于1的自然数。可选的,在采用相对索引表示所述分片索引之前,所述索引表示单元还用于:判断所述分片索引序列中是否存在所述已建立的分片索引参考序列中的连续分片索引,其中,所述连续分片索引中各个相邻分片索引的位移量为1;若存在,则根据所述连续分片索引中分片索引的数目m,将第一个分片索引作为后续m-1个分片索引的参考索引,采用连续索引m-1表示所述后续m-1个分片索引,其中,m为大于2的自然数;若不存在,则采用相对索引表示所述分片索引;配置至少一个比特位用于区别所述相对索引与所述连续索引。可选的,所述装置还包括:第三判断单元,用于当所述第一判断单元判定已有的分片索引库中不存在所述分片索引时,进一步判断是否存在与所述分片索引存在数据相关性的分片索引参考序列;若存在,则指示所述序列构建单元将所述分片索引插入所述分片索引参考序列并更新所述分片索引参考序列;否则指示所述序列构建单元根据所述后向索引描述符将存在数据相关性的分片索引串联形成新的分片索引参考序列。本发明实施例第三方面提供一种数据压缩装置,可包括:处理器及与所述处理器相配合的存储器;所述存储器用于存储所述处理器执行的程序及数据压缩过程中产生的各种数据和索引;所述处理器用于依次计算数据分片序列中数据分片的分片索引,形成分片索引序列,为所述分片索引扩充后向索引描述符,其中,取自同一数据对象的分片索引存在数据相关性,所述后向索引描述符用于标识与所述分片索引存在数据相关性的后一个分片索引;判断已有的分片索引库中是否存在所述分片索引;若不存在,则根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列;若存在,则进一步判断所述分片索引序列中是否存在所述分片索引的参考索引,其中,所述参考索引为已建立的分片索引参考序列中所述分片索引的前一个分片索引;若存在所述参考索引,则根据所述分片索引相对于所述参考索引的位移量,采用相对索引表示所述分片索引,否则不改变所述分片索引的表示方式。可选的,所述处理器进一步用于:将所述参考索引的位置作为起始点,对所述分片索引序列进行后向遍历,检测所述分片索引的位置;每向后遍历1个分片索引,所述位移量增加1,若位移量增加至n时检测到所述分片索引,则将所述分片索引采用相对索引n表示,其中n为大于1的自然数。可选的,在采用相对索引表示所述分片索引之前,所述处理器还用于:判断所述分片索引序列中是否存在所述已建立的分片索引参考序列中的连续分片索引,其中,所述连续分片索引中各个相邻分片索引的位移量为1;若存在,则根据所述连续分片索引中分片索引的数目m,将第一个分片索引作为后续m-1个分片索引的参考索引,采用连续索引m-1表示所述后续m-1个分片索引,其中,m为大于2的自然数;若不存在,则采用相对索引表示所述分片索引;配置至少一个比特位用于区别所述相对索引与所述连续索引。可选的,所述处理器还用于:当已有的分片索引库中不存在所述分片索引时,进一步判断是否存在与所述分片索引存在数据相关性的分片索引参考序列;若存在,则将所述分片索引插入所述分片索引参考序列并更新所述分片索引参考序列;否则根据所述后向索引描述符将存在数据相关性的分片索引串联形成新的分片索引参考序列。实施本发明实施例,具有如下有益效果:通过建立相对索引的方式进行数据压缩,不会破坏原始数据分片,也未改变其分布状态,当特定数据分片对应的原始数据发生改变时,其影响仅限于当前数据分片对应的分片索引;当前分片索引的后一分片索引将以其前一分片索引作为参考,继续建立相对索引,从而保证了对数据变化的较佳适应性;基于分片索引之间的数据相关性,利用彼此之间的相对位置关系进行压缩,相对于简单地捆绑数据分片或分片索引,压缩效果提升明显,尤其对于较长的分片索引,压缩效果更佳;压缩过程中只需要作后向遍历和比较,比合并数据分片方法构建超级分片或合并分片索引方法构建超级索引的操作更高效;且相对索引以参考索引为标准建立,建立时间可大大缩短;且建立过程中只需要在原索引结构基础上扩充一个字段,存储开销小。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。图1为本发明数据压缩方法的第一实施例的流程示意图;图2为本发明数据压缩方法的第二实施例的流程示意图;图3为本发明数据压缩方法的第三实施例的流程示意图;图4为本发明数据压缩方法的第四实施例的流程示意图;图5为本发明数据压缩装置的第一实施例的组成示意图;图6为本发明数据压缩装置的第二实施例的组成示意图;图7为本发明数据压缩装置的第三实施例的组成示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。请参照图1,为本发明数据压缩方法的第一实施例的流程示意图;在本实施例中,所述方法包括以下步骤:S101,依次计算数据分片序列中数据分片的分片索引,形成分片索引序列,为所述分片索引扩充后向索引描述符。在数据存储和传输过程中,特定的数据分片并不是孤立地复现。在数据分片过程中,被同时切割出来的数据分片往往会以很高的机率复现,甚至彼此之间先后顺序也保持不变。对于这种数据分片之间隐藏的相互关系,可称之为数据相关性。数据相关性可以是网络传输中的一次交互会话、数据存储中的一个归档文件或数据备份中的一份同步数据。优秀的DD技术方案通常会利用数据相关性,将关联的数据分片按其在原始数据中出现的先后顺序统一存放,集中管理,以减少对存储设备,尤其是磁盘的频繁访问,提高数据恢复效率。在本实施例中,取自同一数据对象的分片索引存在数据相关性,所述后向索引描述符用于标识与所述分片索引存在数据相关性的后一个分片索引。所述后向索引描述符可以是指针或编号。S102,判断已有的分片索引库中是否存在所述分片索引。若是,则执行步骤S103,否则执行步骤S105。S103,进一步判断所述分片索引序列中是否存在所述分片索引的参考索引。若是,则执行步骤S104,否则执行步骤S106。其中,所述参考索引为已建立的分片索引参考序列中所述分片索引的前一个分片索引。S104,根据所述分片索引相对于所述参考索引的位移量,采用相对索引表示所述分片索引。S105,根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列。S106,不改变所述分片索引的表示方式。例如,数据流被切割成<Si1,Si2,Si3,Si4,Si5,Si6,…>的数据分片序列,依次计算可得到对应的<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>的分片索引序列。由于取自同一数据对象,分片索引序列内所有分片索引均存在数据相关性,而且不重复,充分满足分片索引参考序列的条件。因此可以根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>。当新的数据流被切割成<Si1,Sj1,Sj2,Si3,Si4,Si5,Sj3,…>的数据分片序列,对应<Ri1,Rj1,Rj2,Ri3,Ri4,Ri5,Rj3,…>的分片索引序列。其中,数据分片Si1、Si3、Si4和Si5重复,按照分片索引参考序列<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>,取Ri1作为参考,则Ri3可以简单地使用符号“2”代替,表示二者之间在分片索引参考序列上的相对位置偏移了2个分片索引。类似地,Ri4是Ri3,Ri5是Ri4的后向索引,均可以使用符号“1”表示。于是,<Ri1,Ri3,Ri4,Ri5>的分片索引序列使用相对分片索引可以表示成<Ri1,2,1,1>。数据分片Sj1、Sj2和Sj3不重复,对应的分片索引Rj1、Rj2和Rj3没有参考序列,无法建立相对索引。但是,基于当前数据的相关性,可以利用后向索引字段,将上述不重复的分片索引串联起来,组成新的分片索引参考序列<Rj1,Rj2,Rj3,…>,为后续重复的分片索引建立相对分片索引提供参考。通过本实施例所述的数据压缩方法,不会破坏原始数据分片,也未改变其分布状态,当特定数据分片对应的原始数据发生改变时,其影响仅限于当前数据分片对应的分片索引。当前分片索引的后一分片索引将以其前一分片索引作为参考,继续建立相对索引,从而保证了对数据变化的较佳适应性;基于分片索引之间的数据相关性,利用彼此之间的相对位置关系进行压缩,相对于简单地捆绑数据分片或分片索引,压缩效果提升明显,尤其对于较长的分片索引,压缩效果更佳;压缩过程中只需要作后向遍历和比较,比合并数据分片方法构建超级分片或合并分片索引方法构建超级索引的操作更高效;且相对索引以参考索引为标准建立,建立时间可大大缩短;且建立过程中只需要在原索引结构基础上扩充一个字段,存储开销小。请参照图2,为本发明数据压缩方法的第二实施例的流程示意图;在本实施例中,所述方法包括以下步骤:S201,依次计算数据分片序列中数据分片的分片索引,形成分片索引序列,为所述分片索引扩充后向索引描述符。其中,取自同一数据对象的分片索引存在数据相关性,所述后向索引描述符用于标识与所述分片索引存在数据相关性的后一个分片索引。S202,判断已有的分片索引库中是否存在所述分片索引。若是,则执行步骤S203,否则执行步骤S206。S203,进一步判断所述分片索引序列中是否存在所述分片索引的参考索引。是,则执行步骤S204,否则执行步骤S207。其中,所述参考索引为已建立的分片索引参考序列中所述分片索引的前一个分片索引。S204,将所述参考索引的位置作为起始点,对所述分片索引序列进行后向遍历,检测所述分片索引的位置。S205,每向后遍历1个分片索引,所述位移量增加1,若位移量增加至n时检测到所述分片索引,则将所述分片索引采用相对索引n表示。其中,n为大于1的自然数。S206,根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列。S207,不改变所述分片索引的表示方式。需要说明的是,虽然本实施例给出了一种建立相对索引的方法,但是本发明并不限于此,本领域技术人员应当理解,本发明还可以包括其他任意合适的根据所述分片索引相对于所述参考索引的位移量建立相对索引的方法。但是本实施例所述的方法不但计算简单,而且实际压缩效果较佳。请参照图3,为本发明数据压缩方法的第三实施例的流程示意图;在本实施例中,所述方法包括以下步骤:S301,依次计算数据分片序列中数据分片的分片索引,形成分片索引序列,为所述分片索引扩充后向索引描述符。其中,取自同一数据对象的分片索引存在数据相关性,所述后向索引描述符用于标识与所述分片索引存在数据相关性的后一个分片索引。S302,判断已有的分片索引库中是否存在所述分片索引。若是则执行步骤S303,否则执行步骤S307。S303,进一步判断所述分片索引序列中是否存在所述分片索引的参考索引。若是,则执行步骤S304,否则执行步骤S308。其中,所述参考索引为已建立的分片索引参考序列中所述分片索引的前一个分片索引。S304,判断所述分片索引序列中是否存在所述已建立的分片索引参考序列中的连续分片索引。若是,则执行步骤S309,否则执行步骤S305。其中,所述连续分片索引中各个相邻分片索引的位移量为1。S305,将所述参考索引的位置作为起始点,对所述分片索引序列进行后向遍历,检测所述分片索引的位置。S306,每向后遍历1个分片索引,所述位移量增加1,若位移量增加至n时检测到所述分片索引,则将所述分片索引采用相对索引n表示。其中,n为大于1的自然数。S307,根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列。S308,不改变所述分片索引的表示方式。S309,根据所述连续分片索引中分片索引的数目m,将第一个分片索引作为后续m-1个分片索引的参考索引,采用连续索引m-1表示所述后续m-1个分片索引。其中,m为大于2的自然数。配置至少一个比特位用于区别所述相对索引与所述连续索引。例如,数据流被切割成<Si1,Si2,Si3,Si4,Si5,Si6,…>的数据分片序列,依次计算可得到对应的<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>的分片索引序列。由于取自同一数据对象,分片索引序列内所有分片索引均存在数据相关性,而且不重复,充分满足分片索引参考序列的条件。因此可以根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>。当新的数据流被切割成<Si1,Sj1,Sj2,Si3,Si4,Si5,Sj3,…>的数据分片序列,对应<Ri1,Rj1,Rj2,Ri3,Ri4,Ri5,Rj3,…>的分片索引序列。其中,数据分片Si1、Si3、Si4和Si5重复,按照分片索引参考序列<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>,取Ri1作为参考,则Ri3可以简单地使用符号“2”代替,表示二者之间在分片索引参考序列上的相对位置偏移了2个分片索引。类似地,Ri4是Ri3,Ri5是Ri4的后向索引,均可以使用符号“1”表示。于是,<Ri1,Ri3,Ri4,Ri5>的分片索引序列使用相对分片索引可以表示成<Ri1,2,1,1>。数据分片Sj1、Sj2和Sj3不重复,对应的分片索引Rj1、Rj2和Rj3没有参考序列,无法建立相对索引。但是,基于当前数据的相关性,可以利用后向索引字段,将上述不重复的分片索引串联起来,组成新的分片索引参考序列<Rj1,Rj2,Rj3,…>,为后续重复的分片索引建立相对分片索引提供参考。考虑到分片索引Ri3、Ri4和Ri5在参考序列中连续的特殊性,上述相对分片索引序列可以进一步优化成<Ri1,2,2>,以提升DD压缩效果。其中,后一符号“2”表示连续索引的数量。然而,这种表示方法会引发歧义,需要加以区别,因为分片索引序列<Ri1,Ri3,Ri5>对应的相对分片索引序列也是<Ri1,2,2>。为了避免冲突,可以配置至少一个比特位用于区别所述相对索引与所述连续索引。如配置相对索引的高位为1,连续索引的高位为0。当然,也可以配置多个比特位来进行区别。但是一个比特位占用存储资源较少且已经基本能实现区别的目的。在本实施例中,对于相邻连续的分片索引采用累加计数的方法作进一步优化,可以使DD压缩效果大幅提升,相对于其它提升DD压缩效果的方法,本方法不受分片索引本身的长度限制。请参照图4,为本发明数据压缩方法的第四实施例的流程示意图;在本实施例中,所述方法包括以下步骤:S401,依次计算数据分片序列中数据分片的分片索引,形成分片索引序列,为所述分片索引扩充后向索引描述符。其中,取自同一数据对象的分片索引存在数据相关性,所述后向索引描述符用于标识与所述分片索引存在数据相关性的后一个分片索引。S402,判断已有的分片索引库中是否存在所述分片索引。若是,则执行步骤S403,否则执行步骤S407。S403,进一步判断所述分片索引序列中是否存在所述分片索引的参考索引。若是,则执行步骤S404,否则执行步骤S410。其中,所述参考索引为已建立的分片索引参考序列中所述分片索引的前一个分片索引。S404,判断所述分片索引序列中是否存在所述已建立的分片索引参考序列中的连续分片索引。若是,则执行步骤S411,否则执行步骤S405。S405,将所述参考索引的位置作为起始点,对所述分片索引序列进行后向遍历,检测所述分片索引的位置。S406,每向后遍历1个分片索引,所述位移量增加1,若位移量增加至n时检测到所述分片索引,则将所述分片索引采用相对索引n表示。其中,n为大于1的自然数。S407,判断是否存在与所述分片索引存在数据相关性的分片索引参考序列。若是,则执行步骤S408,否则执行步骤S409。S408,将所述分片索引插入所述分片索引参考序列并更新所述分片索引参考序列。S409,根据所述后向索引描述符将存在数据相关性的分片索引串联形成新的分片索引参考序列。S410,不改变所述分片索引的表示方式。S411,根据所述连续分片索引中分片索引的数目m,将第一个分片索引作为后续m-1个分片索引的参考索引,采用连续索引m-1表示所述后续m-1个分片索引。其中,m为大于2的自然数。配置至少一个比特位用于区别所述相对索引与所述连续索引。在本实施例中,给出了更新及建立分片索引参考序列的方法,通过这样不断的循环可得到越来越多的参分片索引参考序列,利于更好的实现基于相对索引的方式进行数据压缩,进一步提升压缩效果。请参照图5,为本发明数据压缩装置的第一实施例的组成示意图;在本实施例中,所述装置包括:计算扩充单元100、第一判断单元200、序列构建单元300、第二判断单元400及索引表示单元500。所述计算扩充单元100用于依次计算数据分片序列中数据分片的分片索引,形成分片索引序列,为所述分片索引扩充后向索引描述符,其中,取自同一数据对象的分片索引存在数据相关性,所述后向索引描述符用于标识与所述分片索引存在数据相关性的后一个分片索引;所述第一判断单元200用于判断已有的分片索引库中是否存在所述分片索引;所述序列构建单元300用于当所述第一判断单元200判定已有的分片索引库中不存在所述分片索引时,根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列;所述第二判断单元400用于当所述第一判断单元200判定已有的分片索引库中存在所述分片索引时,进一步判断所述分片索引序列中是否存在所述分片索引的参考索引,其中,所述参考索引为已建立的分片索引参考序列中所述分片索引的前一个分片索引;所述索引表示单元500用于若存在所述参考索引,则根据所述分片索引相对于所述参考索引的位移量,采用相对索引表示所述分片索引,否则不改变所述分片索引的表示方式。具体地,所述索引表示单元500进一步用于:将所述参考索引的位置作为起始点,对所述分片索引序列进行后向遍历,检测所述分片索引的位置;每向后遍历1个分片索引,所述位移量增加1,若位移量增加至n时检测到所述分片索引,则将所述分片索引采用相对索引n表示,其中,n为大于1的自然数。在采用相对索引表示所述分片索引之前,所述索引表示单元500还用于:判断所述分片索引序列中是否存在所述已建立的分片索引参考序列中的连续分片索引,其中,所述连续分片索引中各个相邻分片索引的位移量为1;若存在,则根据所述连续分片索引中分片索引的数目m,将第一个分片索引作为后续m-1个分片索引的参考索引,采用连续索引m-1表示所述后续m-1个分片索引,其中,m为大于2的自然数;若不存在,则采用相对索引表示所述分片索引;配置至少一个比特位用于区别所述相对索引与所述连续索引。其中,所述后向索引描述符包括指针或编号。请参照图6,为本发明数据压缩装置的第二实施例的组成示意图;在本实施例中,所述装置包括:计算扩充单元100、第一判断单元200、序列构建单元300、第二判断单元400、索引表示单元500及第三判断单元600。所述第三判断单元600用于当所述第一判断单元200判定已有的分片索引库中不存在所述分片索引时,进一步判断是否存在与所述分片索引存在数据相关性的分片索引参考序列;若存在,则指示所述序列构建单元300将所述分片索引插入所述分片索引参考序列并更新所述分片索引参考序列;否则指示所述序列构建单元300根据所述后向索引描述符将存在数据相关性的分片索引串联形成新的分片索引参考序列。请参照图7,为本发明数据压缩装置的第三实施例的组成示意图。在本实施例中,所述装置包括:处理器700及与所述处理器700相配合的存储器800;所述存储器800用于存储所述处理器700执行的程序及数据压缩过程中产生的各种数据和索引;所述处理器700用于依次计算数据分片序列中数据分片的分片索引,形成分片索引序列,为所述分片索引扩充后向索引描述符,其中,取自同一数据对象的分片索引存在数据相关性,所述后向索引描述符用于标识与所述分片索引存在数据相关性的后一个分片索引;判断已有的分片索引库中是否存在所述分片索引;若不存在,则根据所述后向索引描述符将存在数据相关性的分片索引串联形成分片索引参考序列;若存在,则进一步判断所述分片索引序列中是否存在所述分片索引的参考索引,其中,所述参考索引为已建立的分片索引参考序列中所述分片索引的前一个分片索引;若存在所述参考索引,则根据所述分片索引相对于所述参考索引的位移量,采用相对索引表示所述分片索引,否则不改变所述分片索引的表示方式。所述处理器700进一步用于:将所述参考索引的位置作为起始点,对所述分片索引序列进行后向遍历,检测所述分片索引的位置;每向后遍历1个分片索引,所述位移量增加1,若位移量增加至n时检测到所述分片索引,则将所述分片索引采用相对索引n表示,其中n为大于1的自然数。在采用相对索引表示所述分片索引之前,所述处理器700还用于:判断所述分片索引序列中是否存在所述已建立的分片索引参考序列中的连续分片索引,其中,所述连续分片索引中各个相邻分片索引的位移量为1;若存在,则根据所述连续分片索引中分片索引的数目m,将第一个分片索引作为后续m-1个分片索引的参考索引,采用连续索引m-1表示所述后续m-1个分片索引,其中,m为大于2的自然数;若不存在,则采用相对索引表示所述分片索引;配置至少一个比特位用于区别所述相对索引与所述连续索引。所述处理器700还用于:当已有的分片索引库中不存在所述分片索引时,进一步判断是否存在与所述分片索引存在数据相关性的分片索引参考序列;若存在,则将所述分片索引插入所述分片索引参考序列并更新所述分片索引参考序列;否则根据所述后向索引描述符将存在数据相关性的分片索引串联形成新的分片索引参考序列。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。通过上述实施例的描述,本发明具有以下优点:通过建立相对索引的方式进行数据压缩,不会破坏原始数据分片,也未改变其分布状态,当特定数据分片对应的原始数据发生改变时,其影响仅限于当前数据分片对应的分片索引;当前分片索引的后一分片索引将以其前一分片索引作为参考,继续建立相对索引,从而保证了对数据变化的较佳适应性;基于分片索引之间的数据相关性,利用彼此之间的相对位置关系进行压缩,相对于简单地捆绑数据分片或分片索引,压缩效果提升明显,尤其对于较长的分片索引,压缩效果更佳;压缩过程中只需要作后向遍历和比较,比合并数据分片方法构建超级分片或合并分片索引方法构建超级索引的操作更高效;且相对索引以参考索引为标准建立,建立时间可大大缩短;且建立过程中只需要在原索引结构基础上扩充一个字段,存储开销小;对于相邻连续的分片索引采用累加计数的方法作进一步优化,可以使DD压缩效果大幅提升。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存取存储器(RandomAccessMemory,简称RAM)等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1