数据压缩装置、数据存储装置和用于数据压缩和重复数据删除的方法与流程

未命名 08-17 阅读:228 评论:0


1.本发明大体上涉及数据压缩和重复数据删除领域;具体而言,涉及一种数据压缩装置、一种数据存储装置、一种用于数据压缩的方法和一种用于存储数据对象的方法。


背景技术:

2.通常,数据备份用于在主存储系统(例如主机服务器)中发生数据丢失时保护和恢复数据。出于安全考虑,单独的备份系统或存储系统广泛用于存储主存储系统中存在的数据的备份。通常,随着时间的推移,由于数据不断变化或新数据在传统存储系统中占用了大量存储空间,存储系统的存储空间被占用。这不是理想的情况,因为会降低存储系统的性能。此外,数据存储的成本以及包括存储硬件成本在内的所有关联成本仍然是一个负担。通常,存储系统广泛运用重复数据删除,用于在不损害原始数据保真度的情况下消除存储系统上存储的重复或冗余数据。此外,压缩系统也广泛使用数据压缩来以空间高效的格式将数据存储在存储系统上。在存储系统中,通常以数据块的形式存储数据。
3.通常,传统系统用于数据复制和压缩。然而,数据压缩通常是局部特性,在压缩大块数据时效果更好。另一方面,重复数据删除是全局特性,如果数据块尺寸太大,则效果会降低,因为在传统系统中找到相似块的概率较低。换句话说,重复数据删除与数据压缩之间需权衡。因此,如果块尺寸较大,则压缩比会更好,但是重复数据删除率低。因此,传统系统无法对数据执行可靠的重复数据删除和压缩。
4.因此,根据上述讨论,需要克服与用于重复数据删除和数据压缩的传统方法和系统相关的上述缺点。


技术实现要素:

5.本发明旨在提供一种数据压缩装置、一种数据存储装置、一种用于数据压缩的方法和一种用于存储数据对象的方法。本发明旨在提供一种解决低效压缩技术和不兼容的压缩比和重复数据删除率的现有问题的方案。本发明的目的在于提供一种至少部分克服现有技术中遇到的问题的方案,并提供改进的数据压缩装置、数据存储装置、用于数据压缩的方法和用于存储数据对象的方法,同时提高重复数据删除和压缩的性能和效率。
6.本发明的目的是通过所附独立权利要求中提供的方案实现的。本发明的有利实现方式在从属权利要求中进一步定义。
7.在一方面,本发明提供了一种数据压缩装置,包括控制器,所述控制器用于接收待压缩的数据对象;指示数据对象中的一个或多个数据块;为一个或多个数据块中的每一个数据块确定哈希值;随后,压缩数据对象;生成头元素,其中,所述头元素包括一个或多个数据块中的每一个数据块的哈希值,并将头元素附加到压缩后的数据对象,其中,所述头元素被设置为指示压缩后的数据对象中的一个或多个数据块。
8.本发明的数据压缩装置实现了高效的数据压缩,这对重复数据删除是友好的。因
此,数据压缩装置以高压缩比压缩数据对象,而不会对数据对象的重复数据删除率产生太大影响。数据压缩装置可以将数据对象一起压缩,而不是单独压缩数据对象的每个块。数据压缩装置的控制器接收数据对象。控制器还指示数据对象中的一个或多个数据块,计算数据块中的每一个数据块的哈希值,然后压缩整个数据对象。
9.在一种实现方式中,控制器还用于指示数据对象中的一个或多个数据块,使得一个或多个数据块中的至少两个数据块具有不同的大小。
10.一个或多个数据块的不同大小让控制器可以获得数据对象的高压缩比,同时保持数据对象的高重复数据删除率。
11.在一种实现方式中,控制器还用于确定重复数据序列从第一数据块延伸至第二数据块,第一数据块包括重复数据序列的第一部分,第二数据块包括重复数据序列的第二部分;如果这样的话,则:调整第一数据块,以包括重复数据序列;调整第二数据块,以包括重复数据序列。
12.在一种情况下,当数据对象被划分为第一数据块和第二数据块时,重复数据序列跨越第一数据块到第二数据块的边界,重复数据序列被视为两个单独的重复数据序列。调整第一数据块和第二数据块的特性可以稍微减少对数据块的压缩,但是与单独压缩每个块相比,数据压缩装置获得更好的压缩比。有益的是,可以将调整第一数据块和第二数据块的特性添加到几乎每个压缩算法中,因此,容易实现。
13.在一种实现方式中,头元素还包括每个数据块的开始指示和每个数据块的结束指示。
14.头元素还包括压缩后的数据对象的每个块的开始和结束位置,以确定压缩后的数据对象的每个块的长度。
15.在一种实现方式中,控制器还用于:接收第二数据对象;指示第二数据对象中的一个或多个数据块;压缩数据对象,其中,压缩后的数据对象被设置为指示一个或多个数据块;确定第二数据对象中的压缩后的数据块是否对应于数据对象中的压缩后的数据块;如果确定结果为是,则将一个数据块替换为另一个数据块。
16.控制器接收第二数据对象并压缩第二数据对象,使得第二数据对象以空间高效的方式存储在数据压缩装置中。控制器还确定第二数据元素是否与数据元素相同。如果第二数据元素与压缩块中的数据元素相同,则控制器去除第二数据元素的重复的压缩块。有益的是,控制器可以以空间高效的方式将第二数据对象存储在数据压缩装置中。
17.在一种实现方式中,控制器还用于:为第二数据对象中的数据块中的每一个数据块生成哈希值;基于为数据块生成的哈希值,确定第二数据对象中的压缩后的数据块是否对应于数据对象中的压缩后的数据块。
18.哈希值能够识别第二数据对象的数据块,将第二数据对象的数据块的哈希值与数据对象中的压缩后的数据块的哈希值进行比较,以防止数据压缩装置中的第二数据对象的数据块的重复。
19.在一种实现方式中,控制器还用于通过将压缩后的数据块中较大的一个数据块替换为压缩后的数据块中较小的一个数据块的参考数据块,从而将一个压缩后的数据块替换为另一个压缩后的数据块。
20.控制器还用于确定第二数据对象的压缩后的数据块是小于还是大于第一数据对
象的相应压缩后的数据块。控制器将较大的压缩后的数据块替换为较小的压缩后的数据块。换句话说,控制器存储压缩后的数据块,该压缩后的数据块在数据压缩装置中占用较少的存储空间。
21.在一种实现方式中,控制器还用于通过以下步骤将一个压缩后的数据块替换为另一个压缩后的数据块:确定哪个压缩后的数据块解压缩速度较快;将解压缩速度较慢的压缩后的数据块替换为解压缩速度较快的压缩后的数据块的参考数据块。
22.控制器还用于确定第二数据对象的压缩后的数据块是比第一数据对象的相应压缩后的数据块解压缩速度更快还是更慢。控制器替换解压缩速度较慢的数据块。换句话说,控制器存储压缩后的数据块,该压缩后的数据块需要更少的时间来解压缩,因此减少了控制器解压缩所需的时间。
23.在一种实现方式中,控制器还用于通过以下步骤将一个压缩后的数据块替换为另一个压缩后的数据块:确定数据对象中的压缩后的数据块的压缩依赖关系和第二数据对象中的压缩后的数据块的压缩依赖关系;基于压缩依赖关系确定要替换哪个数据块。
24.通过使用压缩依赖关系,可以替换压缩依赖关系较低的数据块,从而可以简化解压缩过程。
25.在一种实现方式中,压缩后的数据元素包括指示压缩后的数据对象中的一个或多个数据块的数据对象;确定数据对象中的第一数据块与第二数据块之间是否存在压缩依赖关系;如果存在,则在解压缩第一数据块之前,解压缩第二数据块。
26.控制器确定数据对象的第一数据块与第二数据块之间的依赖关系,以使控制器能够一起解压缩完整数据元素,而不是解压缩单独数据块。
27.在一种实现方式中,控制器还用于确定第二数据块包括在第二数据对象中,并且作为响应,获得第二数据对象。
28.通过获得并随后解压缩第二数据对象,可以获得第二数据块。有益的是,以这种方式存储数据对象能够实现空间高效的数据存储,同时不会明显影响其处理时间。
29.在一种实现方式中,压缩后的数据对象中的一个或多个数据块包括一个或多个压缩后的数据块,并且其中,压缩后的数据对象中的一个或多个数据块的其余部分是非压缩的,其中,控制器用于解压缩一个或多个压缩后的数据块。
30.在一种情况下,控制器获得的数据对象可以包括一个或多个数据块,其中,压缩一些数据块,数据块的其余部分是非压缩的。在这种情况下,控制器能够解压缩整个数据对象,而不是解压缩数据对象的单独数据块。
31.在另一方面,本发明提供了一种数据存储装置。数据存储装置包括存储器和控制器,其中,存储器用于存储数据对象,并且控制器用于接收待存储的数据元素,其中,数据元素包括数据对象和头元素,并且其中,数据对象指示数据对象中的一个或多个数据块,并且头元素包括一个或多个数据块中的每一个数据块的哈希值;对于每个数据块,基于数据块的哈希值,确定数据块是否存在参考数据块;如果确定结果为是,则将一个数据块替换为另一个数据块的参考数据块。
32.数据存储装置可以对压缩后的数据元素进行重复数据删除,同时实现高重复数据删除率。控制器计算第一块和第二块中的每一个块的哈希值。哈希值能够识别数据对象中的一个或多个数据块,将数据对象中的一个或多个数据块的哈希值与其他数据元素的其他
数据块的哈希值进行比较,以防止数据压缩装置中的数据对象的一个或多个数据块的重复。控制器用于搜索数据对象中的一个或多个数据块的哈希值与存储在数据存储装置中的数据块之间是否存在匹配。
33.在另一方面,本发明提供了一种数据装置。数据装置包括数据压缩装置和数据存储装置。
34.该方面的数据装置实现了本发明的数据压缩装置和数据存储装置的所有优点和效果。
35.在另一方面,本发明提供了用于数据压缩的方法。该方法包括接收待压缩的数据对象;指示所述数据对象中的一个或多个数据块;为所述一个或多个数据块中的每一个数据块确定哈希值;随后,压缩所述数据对象;生成头元素,其中,所述头元素包括所述一个或多个数据块中的每一个数据块的哈希值,并将所述头元素附加到所述压缩后的数据对象,其中,所述头元素被设置为指示所述压缩后的数据对象中的所述一个或多个数据块。
36.该方面的方法实现了本发明的数据压缩装置的所有优点和效果。
37.在一种实现方式中,本发明提供了一种携带计算机指令的计算机可读介质,当加载到数据压缩装置的控制器中并由所述控制器执行时,所述指令使所述数据压缩装置能够实现该方法。
38.该方面的携带计算机指令的计算机可读介质实现了本发明的数据压缩装置和用于数据压缩的方法的所有优点和效果。
39.另一方面,本发明提供了一种用于存储数据对象的方法。该方法包括接收待存储的数据元素,其中,数据元素包括数据对象和头元素,并且其中,数据对象指示数据对象中的一个或多个数据块,并且头元素包括一个或多个数据块中的每一个数据块的哈希值;对于每个数据块,基于数据块的哈希值,确定数据块是否存在参考数据块;如果确定结果为是,则将一个数据块替换为另一个数据块的参考数据块。
40.该方面的方法实现了本发明的数据存储装置的所有优点和效果。
41.在一种实现方式中,本发明提供了一种携带计算机指令的计算机可读介质,当加载到数据存储装置的控制器中并由所述控制器执行时,所述指令使所述数据存储装置能够实现该方法。
42.该方面的携带计算机指令的计算机可读介质实现了本发明的数据存储装置和用于存储数据对象的方法的所有优点和效果。
43.需要说明的是,本技术中描述的所有设备、元件、电路、单元和构件可以在软件或硬件元件或其任何类型的组合中实现。本技术中描述的各种实体所执行的所有步骤以及所描述的各种实体要执行的功能均意在指相应实体用于执行相应步骤和功能。虽然在以下具体实施例的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的硬件或软件元件或其任何组合实现。可以理解的是,本发明的特征易于以各种组合进行组合,而不脱离由所附权利要求书所定义的本发明的范围。
44.本发明的附加方面、优点、特征和目的从附图和结合以下所附权利要求书解释的说明性实现方式的详细描述中变得显而易见。
附图说明
45.当结合附图阅读时,可以更好地理解以上发明内容以及说明性实施例的以下详细描述。为了说明本发明,本发明的示例性结构在附图中示出。然而,本发明不限于本文公开的具体方法和工具。此外,本领域技术人员应理解,附图不是按比例绘制的。在可能的情况下,相同的元件用相同的数字表示。
46.现在参考下图仅作为示例来描述本发明实施例,其中:
47.图1是本发明实施例的数据装置的各种示例性组件的方框图;
48.图2a是本发明实施例的数据压缩装置的各种示例性组件的方框图;
49.图2b是本发明实施例的数据存储装置的各种示例性组件的方框图;
50.图3a、3b和3c是本发明实施例的用于压缩和解压缩数据元素的各种操作的示例性说明;
51.图4是本发明的另一个实施例的数据元素的解压缩的示例性说明;
52.图5是本发明实施例的数据元素的重复数据删除的示例性说明;
53.图6是本发明实施例的用于数据压缩的方法的流程图;
54.图7是本发明实施例的用于存储数据对象的方法的流程图。
55.在附图中,带下划线的数字用于表示带下划线的数字所在的项目或与带下划线的数字相邻的项目。不带下划线的数字与由将不带下划线的数字与项目关联的线标识的项目有关。当一个数字不带下划线并具有关联的箭头时,不带下划线的数字用于标识箭头指向的一般项目。
具体实施方式
56.以下详细描述说明了本发明实施例以及可以实现这些实施例的方式。虽然已经公开了实施本发明的一些模式,但本领域技术人员应认识到,也可以存在用于实施或实践本发明的其他实施例。
57.图1是本发明的另一个实施例的数据装置的各种示例性组件的方框图。参考图1,示出了数据装置100。数据装置100包括数据压缩装置102和数据存储装置104。还示出了网络106。
58.在数据装置100中,使用对数据对象的重复数据删除友好的压缩算法压缩数据对象。换句话说,数据装置100可以实现比传统系统更好的压缩比,而不损害重复数据删除率。数据装置100能够将整个数据对象一起压缩,而不是单独压缩单独数据块。此外,数据装置100通过确定数据对象的一个或多个数据块之间的依赖关系,能够将整个压缩后的数据对象一起解压缩,而不是单独解压缩单独数据块。此外,数据装置100能够以高重复数据删除率对压缩后的数据对象进行重复数据删除。
59.数据压缩装置102包括用于压缩和解压缩数据对象的适当逻辑、电路、接口和/或代码。数据压缩装置102可以将数据对象一起压缩,而不是单独压缩数据对象的每个块。此外,数据压缩装置102以高压缩比压缩数据对象,而不会对数据对象的重复数据删除率产生太大影响。此外,数据压缩装置102可以将整个数据对象一起解压缩,而不是单独解压缩每个块。数据压缩装置102可以通过确定数据对象中不同块之间的依赖关系来解压缩数据对象。数据压缩装置102的示例包括但不限于服务器、计算机集群(例如大规模并行计算机集
protocol,ip)、无线接入协议(wireless access protocol,wap)、帧中继或异步传输模式(asynchronous transfer mode,atm)。此外,网络接口206也可以采用和支持使用语音、视频、数据或其组合的任何其他合适协议。
66.在操作中,控制器202用于接收待压缩的数据对象。控制器202例如经由网络接口206接收数据对象。控制器202接收数据对象,以压缩数据对象,使得数据对象以空间高效的方式存储在数据压缩装置102中。
67.控制器202还用于指示数据对象中的一个或多个数据块。控制器202指示数据对象包括数据块,例如,第一数据块和第二数据块。确定第一数据块和第二数据块的块尺寸,使得以足够的压缩比压缩数据对象,而不损害数据对象的每个数据块的重复数据删除。
68.根据一个实施例,控制器202还用于指示数据对象中的一个或多个数据块,使得一个或多个数据块中的至少两个数据块具有不同的大小。控制器202指示数据对象的第一数据块和第二数据块中的每一个的大小彼此不同。换句话说,数据对象包括块尺寸可变的一个或多个数据块。
69.控制器202还用于为一个或多个数据块中的每一个数据块确定哈希值。控制器202使用哈希函数计算第一数据块和第二数据块中的每一个的哈希值。哈希值是指表示第一数据块和第二数据块的原始数据的固定大小值。哈希函数的示例包括但不限于sha-1、sha-2或md5算法。有益的是,哈希值能够识别第一数据块和第二数据块,将第一数据块和第二数据块的哈希值与其他数据元素的其他数据块的哈希值进行比较,以防止数据压缩装置102中的第一数据块和第二数据块的重复。
70.控制器202还用于随后压缩数据对象。控制器202用于使用压缩算法压缩数据对象的数据块(即第一数据块和第二数据块)中的每一个数据块。控制器202将数据对象压缩为单个实体。换句话说,控制器202能够压缩整个数据对象,因此,不需要单独压缩每个块(即第一数据块和第二数据块)。压缩算法的示例可以包括但不限于lempel zvi lz77、lzr、lempel-ziv-storer-szymanski(lzss)和lempel-ziv markov链算法(lzma)。
71.根据一个实施例,控制器202还用于确定重复数据序列从第一数据块延伸至第二数据块,第一数据块包括重复数据序列的第一部分,第二数据块包括重复数据序列的第二部分;如果这样,则:调整第一数据块,以包括重复数据序列;调整第二数据块,以包括重复数据序列。在一种情况下,当数据对象被划分为第一数据块和第二数据块时,重复数据序列跨越第一数据块到第二数据块的边界。换句话说,第一数据块包括重复数据序列的一部分(即第一部分),第二数据块包括重复数据序列的其他部分(即第二部分)。在这种情况下,第一数据块和第二数据块的切点具有解压缩切点的末端是编码序列的末端这一特性。换句话说,重复数据序列被视为两个单独的重复数据序列。因此,调整第一数据块和第二数据块,使得两者都包括重复数据序列。此外,可以将调整第一数据块和第二数据块的特性添加到几乎每个压缩算法中,因此,容易实现。然而,调整第一数据块和第二数据块的特性可以稍微减少对数据块的压缩,然而,与单独压缩每个块时相比,压缩算法具有更好的压缩比。
72.控制器202还用于生成头元素,其中,该头元素包括一个或多个数据块中的每一个数据块的哈希值,并将头元素附加到压缩后的数据对象,其中,该头元素被设置为指示压缩后的数据对象中的一个或多个数据块。头元素是指补充数据,该补充数据包括关于数据对象的每个块的信息。头元素通常添加在压缩后的数据对象的开头,即在第一数据块的开头。
头元素包括压缩后的数据元素的每个块的列表及其相应的哈希值。
73.根据一个实施例,头元素还包括每个数据块的开始指示和每个数据块的结束指示。头元素还包括压缩后的数据对象的每个块的开始和结束位置。值得注意的是,压缩后的数据对象的每个块的起始和结束位置用于确定压缩后的数据对象的每个块的长度。
74.根据一个实施例,控制器202还用于:接收第二数据对象;指示第二数据对象中的一个或多个数据块;压缩数据对象,其中,压缩后的数据对象被设置为指示一个或多个数据块;确定第二数据对象中的压缩后的数据块是否对应于数据对象中的压缩后的数据块;如果确定结果为是,则将一个数据块替换为另一个数据块。例如,控制器202经由网络接口206接收第二数据对象。控制器202接收第二数据对象,以压缩第二数据对象,使得可以用空间高效的方式存储第二数据对象。第二数据对象的示例与数据对象的示例相似。控制器202还指示第二数据对象包括数据块,例如,第三数据块和第四数据块。确定第三数据块和第四数据块的块尺寸,使得以足够的压缩比压缩第二数据对象,而不损害第二数据对象的每个数据块的重复数据删除。控制器202还用于使用压缩算法压缩第二数据对象的数据块(即第三数据块和第四数据块)中的每一个数据块,使得可以用空间高效的格式存储第二数据对象。压缩算法的示例可以包括但不限于lempel zvi lz77、lzr、lempel-ziv-storer-szymanski(lzss)和lempel-ziv markov链算法(lzma)。在存储第二数据对象时,控制器202还确定第二数据对象是否与数据对象的压缩块(即第一数据块或第二数据块)中的任何数据相似。如果压缩块中的第二数据对象与数据对象相似,则控制器202去除第二数据对象的重复的压缩块。在存储第二数据对象时,控制器202通过比较其相应的哈希值,从而确定第二数据对象中的压缩后的数据块是否与数据对象中的压缩后的数据块相似。控制器202可以保留指向第二数据对象的数据块的数据所在的数据对象的数据块的指针。指针可以将数据块定位在数据存储装置104上。应当理解,在不同位置执行两个数据对象之间的压缩和相似性确定,其中,数据压缩装置102压缩数据对象,并且在数据存储装置104处存储压缩后的数据块时,控制器202确定不同压缩块中的数据对象之间的相似性。
75.根据一个实施例,控制器202还用于:为第二数据对象中的数据块中的每一个数据块生成哈希值;基于为数据块生成的哈希值,确定第二数据对象中的压缩后的数据块是否对应于数据对象中的压缩后的数据块。控制器202使用哈希函数计算第三数据块和第四数据块中的每一个的哈希值。哈希值是指表示第三数据块和第四数据块的原始数据的固定大小值。哈希函数的示例包括但不限于sha-1、sha-2或md5算法。有益的是,哈希值能够识别第三数据块和第四数据块,将第三数据块和第四数据块的哈希值与第一数据块和第二数据块的哈希值进行比较,以防止数据压缩装置102中的第三数据块和第四数据块的重复。
76.根据一个实施例,控制器202还用于通过将压缩后的数据块中较大的一个数据块替换为压缩后的数据块中较小的一个数据块的参考数据块,从而将一个压缩后的数据块替换为另一个压缩后的数据块。控制器202还用于确定第二数据对象的压缩后的数据块是小于还是大于第一数据对象的相应压缩后的数据块。控制器202将较大的压缩后的数据块替换为较小的压缩后的数据块。换句话说,控制器202存储压缩后的数据块,该压缩后的数据块在数据压缩装置102中占用较少的存储空间。例如,如果第二数据对象的第三数据块的哈希值与第一数据块的哈希值匹配,则控制器202确定第三数据块和第一数据块中的哪个较小。如果第一数据块小于第三数据块,则控制器202存储压缩后的第一数据块。控制器202还
添加指向第一数据块的指针,以在数据压缩装置102上定位第一数据块,而不需要再次存储第三数据块。在另一种情况下,如果第二数据对象的第三数据块的哈希值与第一数据块的哈希值不匹配,则控制器202将第二数据对象添加到数据压缩装置102上。
77.根据一个实施例,控制器202还用于通过以下步骤将一个压缩后的数据块替换为另一个压缩后的数据块:确定哪个压缩后的数据块解压缩速度较快;将解压缩速度较慢的压缩后的数据块替换为解压缩速度较快的压缩后的数据块的参考数据块。控制器202还用于确定第二数据对象的压缩后的数据块是比第一数据对象的相应压缩后的数据块解压缩速度更快还是更慢。控制器202替换解压缩速度较慢的数据块。换句话说,控制器202存储压缩后的数据块,该压缩后的数据块需要更少的时间来解压缩。例如,如果第二数据对象的第三数据块的哈希值与第一数据块的哈希值匹配,则控制器202确定第三数据块和第一数据块中的哪一个解压缩速度更快。如果第一数据块比第三数据块解压缩速度更快,则控制器202存储压缩后的第一数据块。
78.根据一个实施例,控制器202还用于通过以下步骤将一个压缩后的数据块替换为另一个压缩后的数据块:确定数据对象中的压缩后的数据块的压缩依赖关系和第二数据对象中的压缩后的数据块的压缩依赖关系;基于压缩依赖关系确定要替换哪个数据块。如前所述,解压缩给定数据对象中的给定数据块可能需要解压缩另一个数据对象,因为给定数据块可能指另一个数据对象中的数据块。因此,确定该数据对象和第二数据对象中的数据块中的每一个数据块的压缩依赖关系,以识别具有最低压缩依赖关系的数据块。在此处,具有最低压缩依赖关系的数据块要求在解压缩该数据块之前解压缩其他数据对象中的最少数量的数据块。随后,替换压缩依赖关系最低的数据块。
79.根据一个实施例,控制器202还用于:接收压缩后的数据元素,用于解压缩,其中,压缩后的数据元素包括指示压缩后的数据对象中的一个或多个数据块的数据对象;确定数据对象中的第一数据块与第二数据块之间是否存在压缩依赖关系;如果存在,则在解压缩第一数据块之前,解压缩第二数据块。例如,控制器202经由网络接口206接收压缩后的数据元素。压缩后的数据元素包括压缩后的一个或多个数据块,例如,第一数据块和第二数据块。控制器202确定数据对象的第一数据块与第二数据块之间的依赖关系,以解压缩完整数据元素。压缩依赖关系是指数据对象的不同块如何相互依赖,以便由控制器202解压缩。例如,如果第一数据块显示对第二数据块的依赖关系,则在解压缩第一数据块之前解压缩第二数据块。例如,在图3中进一步解释了这一点。
80.根据一个实施例,控制器202还用于确定第二数据块包括在第二数据对象中,并且作为响应,获得第二数据对象。值得注意的是,第二数据块对第二数据对象的数据块中的一个数据块(例如第一数据块)具有压缩依赖关系。因此,需要解压缩第二数据对象,以从中获得第一数据块,随后获得第二数据块。
81.根据一个实施例,压缩后的数据对象中的一个或多个数据块包括一个或多个压缩后的数据块,并且其中,压缩后的数据对象中的一个或多个数据块的其余部分是非压缩的,其中,控制器202用于解压缩一个或多个压缩后的数据块。在一种情况下,控制器202获得的数据对象可以包括一个或多个数据块,其中,压缩一些数据块,数据块的其余部分是非压缩的。在这种情况下,控制器202能够解压缩整个数据对象,而不是解压缩数据对象的单独数据块。控制器202通过确定数据对象的每个块之间的依赖关系来解压缩完整数据对象。例
如,在图4中进一步解释了这一点。
82.图2b是本发明的另一个实施例的数据存储装置的各种示例性组件的方框图。参考图2b,示出了数据存储装置104。数据存储装置104包括存储器208和控制器210。在一种实现方式中,数据存储装置104还包括网络接口212。
83.控制器210用于执行指令,以控制在数据存储装置104中存储数据对象。控制器210的示例包括但不限于微处理器、微控制器、复杂指令集计算(complex instruction set computing,cisc)微处理器、精简指令集计算(reduced instruction set computing,risc)微处理器、超长指令字(very long instruction word,vliw)微处理器、中央处理单元(central processing unit,cpu)、状态机、数据处理单元以及其他处理器或控制电路。此外,控制器210可以指一个或多个单独的处理器、处理设备、作为机器一部分的处理单元,例如,数据存储装置104。
84.存储器208用于存储数据对象。此处的存储器208是指用于将数据对象存储在数据存储装置104中的硬件或物理存储器。存储器208还用于存储控制器210可执行的指令。存储器208的实现示例可以包括但不限于硬盘驱动器(hard disk drive,hdd)、固态硬盘(solid-state drive,ssd)、备份存储磁盘、块存储单元或其他计算机存储介质。存储器208可以存储操作系统和/或其他程序产品(包括一个或多个操作算法),以操作数据存储装置104。
85.网络接口212是互连的可编程和/或不可编程组件的装置,这些组件用于促进一个或多个电子器件之间的数据传输。该网络接口212可以支持用于互联网小型计算机系统接口(iscsi)、光纤通道或以太网光纤通道(fcoe)协议的通信协议。网络接口212还可以支持用于对等网络、混合对等网络、局域网(lan)、城域网(man)、广域网(wan)、公共网络(例如称为互联网的全球计算机网络)的全部或部分、专用网络、或一个或多个位置的一个或多个任何其他通信系统中的一个或多个的通信协议。此外,网络接口212支持可经由任何数量的已知协议执行的有线或无线通信,包括但不限于互联网协议(ip)、无线接入协议(wap)、帧中继或异步传输模式(atm)。此外,网络接口212也可以采用和支持使用语音、视频、数据或其组合的任何其他合适协议。
86.在操作中,控制器210用于:接收待存储的数据元素,其中,数据元素包括数据对象和头元素,并且其中,数据对象指示数据对象中的一个或多个数据块,并且头元素包括一个或多个数据块中的每一个数据块的哈希值;对于每个数据块,基于数据块的哈希值,确定数据块是否存在参考数据块;如果确定结果为是,则将一个数据块替换为另一个数据块的参考数据块。例如,控制器210经由网络接口212接收要存储在数据存储装置104的存储器208中的数据元素。例如,数据压缩装置102压缩接收到的数据元素。压缩接收到的数据元素,使得控制器210能够以高重复数据删除率对数据元素进行重复数据删除。换句话说,接收到的压缩后的数据元素具有重复数据删除友好的格式。数据元素包括数据对象和头元素。数据对象包括一个或多个数据块,例如,第一数据块和第二数据块。此外,控制器210使用哈希算法计算第一块和第二块中的每一个的哈希值。哈希函数的示例包括但不限于sha-1、sha-2或md5。有益的是,哈希值能够识别第一数据块和第二数据块,将第一数据块和第二数据块的哈希值与其他数据元素的其他数据块的哈希值进行比较,以防止数据压缩装置102中的第一数据块和第二数据块的重复。头元素是指补充数据,该补充数据包括关于数据对象的
每个块的信息。头元素通常添加在压缩后的数据对象的开头,即在第一数据块的开头。头元素包括压缩后的数据元素的每个块的列表及其相应的哈希值,用于重复数据删除。头元素还包括压缩后的数据对象的每个块的开始和结束位置,以确定压缩后的数据对象的每个块的长度。控制器210用于搜索第一数据块和第二数据块的哈希值与存储在数据存储装置104中的数据块之间是否存在匹配。如果存在匹配,则意味着所述一个数据块已经存储在数据存储装置104上。因此,控制器210去除其哈希值与存储在数据存储装置104中的其他数据块匹配的数据块。因此,控制器210能够以空间高效的方式将数据对象存储在数据存储装置104中。此外,控制器210将其哈希值与另一个数据块匹配的数据块替换为另一个数据块的参考数据块。该参考数据块可以将另一个数据块定位在数据存储装置104上。该参考数据块不需要反复存储所述一个数据块,并明显减少了重复。例如,在图5中进一步解释了数据块的重复数据删除。
87.在另一种情况下,如果所述一个数据块的哈希值与存储在数据存储装置104中的另一个数据块的哈希值不匹配,则意味着所述一个数据块未存储在数据存储装置104上。因此,所述一个数据块将被存储到数据存储装置104。为了在重复数据删除之后从数据存储装置104读取和解压缩所述一个数据块,控制器210首先解压缩另一个数据块,然后解压缩所述一个数据块。例如,在图5中进一步解释了这一点。
88.图3a、3b和3c是本发明实施例的用于压缩和解压缩数据元素的各种操作的示例性说明。图3a至3c结合图1、2a和2b中的元件进行描述。参考图3a,示出了数据对象302。控制器202接收数据对象302,用于压缩。
89.参考图3b,示出了数据对象302,其中,指示了一个或多个大小可变的数据块。控制器202使用可变块算法用第一数据块304、第二数据块306和第三数据块308指示数据对象302。
90.参考图3c,示出了压缩后的数据元素310。控制器202压缩数据对象302,以使用压缩算法获得压缩后的数据元素310。压缩后的数据元素310包括头元素312和数据对象314。数据对象314包括压缩后的第一数据块316、压缩后的第二数据块318和压缩后的第三数据块320。在没有比传统的压缩装置更好的压缩比的情况下,控制器202能够压缩整个数据对象302,不需要单独压缩第一数据块304、第二数据块306和第三数据块308中的每一个。此外,箭头示出了压缩后的数据元素310中的压缩后的第一数据块316、压缩后的第二数据块318和压缩后的第三数据块320的压缩依赖关系。例如,箭头表明,为了对压缩后的第三数据块320进行解压缩,必须解压缩第一数据块304和第二数据块306。
91.图4是本发明实施例的数据元素的解压缩的示例性说明。图4结合图1、2a和2b中的元件进行描述。参考图4,示出了数据元素402。数据元素402包括头元素404和数据对象406。数据对象406包括压缩后的第一数据块408、非压缩的第二数据块410和压缩后的第三数据块412。控制器202将非压缩的第二数据块410视为非压缩的第二数据块410将由控制器202解压缩。因此,控制器202用于将压缩后的第一数据块408和压缩后的第三数据块412解压缩为完整数据,而不是将压缩后的第一数据块408和压缩后的第三数据块412单独解压缩。
92.图5是本发明实施例的数据元素的重复数据删除的示例性说明。图5结合图1、2a和2b中的元件进行描述。参考图5、示出了第一数据元素502。第一数据元素502被划分为第一数据块504、第二数据块506和第三数据块508。进一步地,控制器210压缩第一数据元素502,
以获得压缩后的第一数据元素510。压缩后的数据元素包括第一头元素512和第一数据对象514。第一头元素512包括第一数据块504、第二数据块506和第三数据块508中的每一个的哈希值。第一数据对象514包括压缩后的第一数据块516、压缩后的第二数据块518和压缩后的第三数据块520。
93.参考图5,示出了第二数据元素522。第二数据元素522被划分为第四数据块524和第五数据块526。控制器210压缩第二数据元素522,以获得第二压缩后的第二数据元素528。第二压缩后的第二数据元素528包括第二头元素530和第二数据对象532。第二头元素530包括第四数据块524和第五数据块526的哈希值。第二数据对象532包括压缩后的第四数据块534和压缩后的第五数据块536。
94.在图5中,第四数据块524与第二数据块506相同。因此,控制器210从第二数据元素522中去除第四数据块524。相反,控制器210将第四数据块524替换为第二数据块506的参考数据块。该参考数据块可以将第四数据块524定位在数据存储装置104上。该参考数据块不需要存储第四数据块524,并明显减少了重复。值得注意的是,压缩后的第五数据块536的压缩依赖关系位于压缩后的第四数据块534上,存储该压缩后的第四数据块,作为第二数据块506的参考数据块。因此,为了在重复数据删除之后读取第二压缩后的第二数据元素524,控制器210首先检索第四数据块524,该第四数据块存储在数据存储装置104中,作为第二数据块506的参考数据块。因此,为了读取压缩后的第二数据元素524,控制器210首先读取压缩后的第一数据元素510,具体地,读取第一数据元素510的第一头元素512。然后,控制器210对压缩后的第一数据元素510进行解压缩,以获得第二数据块506。当解压缩第二数据块506时,对第二压缩后的第二数据元素534进行解压缩。随后,获得第四数据块524的值,并且对压缩后的第五数据块536进行解压缩。
95.图6是本发明实施例的用于数据压缩的方法600的流程图。在数据压缩装置处执行方法600,例如,在图2a中。该方法600包括步骤602至610。
96.在步骤602,方法600包括接收待压缩的数据对象。例如,控制器202经由网络接口206接收数据对象。控制器202接收数据对象,以压缩数据对象,使得数据对象以空间高效的方式存储在数据压缩装置102中。
97.在步骤604,方法600还包括指示数据对象中的一个或多个数据块。控制器202指示数据对象包括数据块,例如,第一数据块和第二数据块。
98.在步骤606,方法600还包括为一个或多个数据块中的每一个数据块确定哈希值。控制器202使用哈希函数计算第一数据块和第二数据块中的每一个的哈希值。哈希值使得能够识别第一数据块和第二数据块,将第一数据块和第二数据块的哈希值与其他数据元素的其他数据块的哈希值进行比较,以防止数据压缩装置102中的第一数据块和第二数据块的重复。
99.在步骤608,方法600还包括随后压缩数据对象。控制器202用于使用压缩算法压缩数据对象的数据块(即第一数据块和第二数据块)中的每一个数据块。控制器202将数据对象压缩为单个实体。换句话说,控制器202能够压缩整个数据对象,因此,不需要单独压缩每个块(即第一数据块和第二数据块)。
100.压缩具有特性——它将数据压缩为单个对象,从而获得更高的压缩比,但是即使以压缩格式仅接收部分压缩对象,而以非压缩格式接收一些压缩对象,也可以解压缩数据,
即,如果一些数据块以压缩格式显示,而一些数据块以非压缩格式显示,则系统能够解压缩完整对象。
101.在步骤610,方法600还包括生成头元素,其中,该头元素包括一个或多个数据块中的每一个数据块的哈希值,并将头元素附加到压缩后的数据对象,其中,该头元素被设置为指示压缩后的数据对象中的一个或多个数据块。头元素是指补充数据,该补充数据包括关于数据对象的每个块的信息。头元素通常添加在压缩后的数据对象的开头,即在第一数据块的开头。头元素包括压缩后的数据元素的每个块的列表及其相应的哈希值。
102.值得注意的是,本发明提供了一种携带计算机指令的计算机可读介质,当加载到数据压缩装置102的控制器202中并由该控制器执行时,这些指令使数据压缩装置102能够实现方法600。计算机程序产品可以包括但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述设备的任意合适组合。在又一方面中,本发明提供了一种计算机程序,该计算机程序用于通过设备(例如数据压缩装置102)执行方法600。在另一方面,本发明提供了一种计算机程序产品,包括非瞬时性计算机可读存储介质,该存储介质具有可由处理器执行以执行方法600的计算机可读指令。非瞬时性计算机可读存储介质的实现示例包括但不限于电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、硬盘驱动器(hard disk drive,hdd)、闪存、安全数字(secure digital,sd)卡、固态硬盘(solid-state drive,ssd)、计算机可读存储介质和/或cpu高速缓冲存储器。
103.图7是本发明实施例的用于存储数据对象的方法700的流程图。在数据存储装置处执行方法700,例如,在图2b中。方法700包括步骤702和704。
104.在步骤702中,方法700包括接收待存储的数据元素,其中,数据元素包括数据对象和头元素,并且其中,数据对象指示数据对象中的一个或多个数据块,并且头元素包括一个或多个数据块中的每一个数据块的哈希值。例如,控制器210经由网络接口212接收要存储在数据存储装置104的存储器208中的数据元素。例如,数据压缩装置102压缩接收到的数据元素。压缩接收到的数据元素,使得控制器210能够以高重复数据删除率对数据元素进行重复数据删除。数据元素包括数据对象和头元素。数据对象包括一个或多个数据块,例如,第一数据块和第二数据块。此外,控制器210使用哈希算法计算第一块和第二块中的每一个的哈希值。
105.在步骤704,方法700还包括:对于每个数据块,基于数据块的哈希值,确定数据块是否存在参考数据块;如果确定结果为是,则将一个数据块替换为另一个数据块的参考数据块。控制器210用于搜索第一数据块和第二数据块的哈希值与存储在数据存储装置104中的数据块之间是否存在匹配。如果存在匹配,则意味着所述一个数据块已经存储在数据存储装置104上。因此,控制器210去除其哈希值与存储在数据存储装置104中的其他数据块匹配的数据块。因此,控制器210能够以空间高效的方式将数据对象存储在数据存储装置104中。此外,控制器210将其哈希值与另一个数据块匹配的数据块替换为另一个数据块的参考数据块。该参考数据块可以将另一个数据块定位在数据存储装置104上。在一个实施例中,如果不存在依赖关系,则替换数据块。如果存在依赖关系,则在一些实施例中不替换数据块。值得注意的是,如果控制器210没有找到数据块的匹配,则控
制器210用于将压缩后的数据块存储在数据存储装置104上。
106.本发明提供了一种携带计算机指令的计算机可读介质,当加载到数据存储装置104的控制器210中并由该控制器执行时,这些指令使数据存储装置104能够实现方法700。计算机程序产品可以包括但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述设备的任意合适组合。在又一方面中,本发明提供了一种计算机程序,该计算机程序用于通过设备(例如数据存储装置104)执行方法700。在另一方面,本发明提供了一种计算机程序产品,包括非瞬时性计算机可读存储介质,该存储介质具有可由处理器执行以执行方法700的计算机可读指令。非瞬时性计算机可读存储介质的实现示例包括但不限于电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、硬盘驱动器(hard disk drive,hdd)、闪存、安全数字(secure digital,sd)卡、固态硬盘(solid-state drive,ssd)、计算机可读存储介质和/或cpu高速缓冲存储器。
107.在不脱离所附权利要求所定义的本发明范围的情况下,可以对上文描述的本发明实施例进行修改。如“包括”、“包含”、“结合”、“具有”、“是/为”等用于描述和要求保护本发明的表述旨在以非排他性的方式解释,即允许未明确描述的项目、组件或元件也存在。对单数的引用也应解释为涉及复数。本文使用的词语“示例性”表示“作为一个示例、实例或说明”。任何被描述为“示例性的”实施例不一定解释为比其他实施例更优选或更有利,和/或排除其他实施例的特征的结合。本文使用的词语“可选地”表示“在一些实施例中提供且在其他实施例中没有提供”。应当理解,为了清楚起见而在单独实施例的上下文中描述的本发明的某些特征还可以通过组合提供在单个实施例中。相反地,为了简洁起见在单个实施例的上下文中描述的本发明的各个特征也可以单独地或以任何合适的组合或作为本发明的任何其他描述的实施例提供。

技术特征:
1.一种数据压缩装置(102),其特征在于,包括控制器(202),所述控制器(202)用于:接收待压缩的数据对象(302、314、406、514、532);指示所述数据对象(302、314、406、514、532)中的一个或多个数据块(304、306、308、410、504、506、508、524、526);为所述一个或多个数据块(304、306、308、410、504、506、508、524、526)中的每一个数据块确定哈希值;随后,压缩所述数据对象(302、314、406、514、532);生成头元素(312、404、512、530),其中,所述头元素包括所述一个或多个数据块(304、306、308、410、504、506、508、524、526)中的每一个数据块的所述哈希值,并将所述头元素(312、404、512、530)附加到压缩后的数据对象(510、528),其中,所述头元素(312、404、512、530)被设置为指示所述压缩后的数据对象(510、528)中的所述一个或多个数据块(304、306、308、410、504、506、508、524、526)。2.根据权利要求1所述的数据压缩装置(102),其特征在于,所述控制器(202)还用于指示所述数据对象(302、314、406、514、532)中的所述一个或多个数据块(304、306、308、410、504、506、508、524、526),使得所述一个或多个数据块(304、306、308、410、504、506、508、524、526)中的至少两个数据块具有不同的大小。3.根据权利要求1或2所述的数据压缩装置(102),其特征在于,所述控制器(202)还用于:确定重复数据序列从第一数据块(304、306、308、410、504、506、508、524、526)延伸至第二数据块(304、306、308、410、504、506、508、524、526),其中,所述第一数据块(304、306、308、410、504、506、508、524、526)包括所述重复数据序列的第一部分,所述第二数据块(304、306、308、410、504、506、508、524、526)包括所述重复数据序列的第二部分;如果这样的话,则:调整所述第一数据块(304、306、308、410、504、506、508、524、526),以包括所述重复数据序列;调整所述第二数据块(304、306、308、410、504、506、508、524、526),以包括所述重复数据序列。4.根据前述权利要求中任一项所述的数据压缩装置(102),其特征在于,所述头元素(312、404、512、530)还包括每个数据块(304、306、308、410、504、506、508、524、526)的开始指示和每个数据块(304、306、308、410、504、506、508、524、526)的结束指示。5.根据前述权利要求中任一项所述的数据压缩装置(102),其特征在于,所述控制器(202)还用于:接收第二数据对象;指示所述第二数据对象中的一个或多个数据块(304、306、308、410、504、506、508、524、526);压缩所述数据对象(302、314、406、514、532),其中,所述压缩后的数据对象被设置为指示所述一个或多个数据块(304、306、308、410、504、506、508、524、526);确定所述第二数据对象中的压缩后的数据块(316、318、320、408、412、516、518、520、534、536)是否对应于所述数据对象(302、314、406、514、532)中的压缩后的数据块(316、
318、320、408、412、516、518、520、534、536);如果确定结果为是,则将一个数据块(304、306、308、410、504、506、508、524、526)替换为另一个数据块(304、306、308、410、504、506、508、524、526)。6.根据权利要求5所述的数据压缩装置(102),其特征在于,所述控制器(202)还用于:为所述第二数据对象(302、314、406、514、532)中的所述数据块(304、306、308、410、504、506、508、524、526)中的每一个数据块生成哈希值;基于为所述数据块(304、306、308、410、504、506、508、524、526)生成的哈希值,确定所述第二数据对象(302、314、406、514、532)中的所述压缩后的数据块(316、318、320、408、412、516、518、520、534、536)是否对应于所述数据对象(302、314、406、514、532)中的所述压缩后的数据块(316、318、320、408、412、516、518、520、534、536)。7.根据权利要求5或6所述的数据压缩装置(102),其特征在于,所述控制器(202)还用于通过将所述压缩后的数据块(316、318、320、408、412、516、518、520、534、536)中较大的一个数据块替换为所述压缩后的数据块(316、318、320、408、412、516、518、520、534、536)中较小的一个数据块的参考数据块,从而将一个压缩后的数据块(316、318、320、408、412、516、518、520、534、536)替换为另一个压缩后的数据块。8.根据权利要求5、6或7所述的数据压缩装置(102),其特征在于,所述控制器(202)还用于通过以下步骤将一个压缩后的数据块(316、318、320、408、412、516、518、520、534、536)替换为另一个压缩后的数据块(316、318、320、408、412、516、518、520、534、536):确定哪个压缩后的数据块(316、318、320、408、412、516、518、520、534、536)解压缩速度较快;将解压缩速度较慢的所述压缩后的数据块(316、318、320、408、412、516、518、520、534、536)替换为解压缩速度较快的所述压缩后的数据块(316、318、320、408、412、516、518、520、534、536)的参考数据块。9.根据权利要求5、6、7或8所述的数据压缩装置(102),其特征在于,所述控制器(202)还用于通过以下步骤将一个压缩后的数据块(316、318、320、408、412、516、518、520、534、536)替换为另一个压缩后的数据块(316、318、320、408、412、516、518、520、534、536):确定所述数据对象(302、314、406、514、532)中的所述压缩后的数据块(316、318、320、408、412、516、518、520、534、536)的压缩依赖关系和所述第二数据对象(302、314、406、514、532)中的所述压缩后的数据块(316、318、320、408、412、516、518、520、534、536)的压缩依赖关系;基于所述压缩依赖关系确定要替换哪个数据块(304、306、308、410、504、506、508、524、526)。10.根据前述权利要求中任一项所述的数据压缩装置(102),其特征在于,所述控制器(202)还用于:接收压缩后的数据元素(510、528),用于解压缩,其中,所述压缩后的数据元素(510、528)包括指示所述压缩后的数据对象(302、314、406、514、532)中的一个或多个数据块(304、306、308、410、504、506、508、524、526)的数据对象(302、314、406、514、532);确定所述数据对象(302、314、406、514、532)中的第一数据块(304、306、308、410、504、506、508、524、526)与第二数据块(304、306、308、410、504、506、508、524、526)之间是否存在
压缩依赖关系;如果确定结果为是,则:在解压缩所述第一数据块(304、306、308、410、504、506、508、524、526)之前,解压缩所述第二数据块(304、306、308、410、504、506、508、524、526)。11.根据权利要求10所述的数据压缩装置(102),其特征在于,所述控制器(202)还用于确定所述第二数据块(304、306、308、410、504、506、508、524、526)包括在第二数据对象(302、314、406、514、532)中,并且作为响应,获得所述第二数据对象(302、314、406、514、532)。12.根据权利要求10或11所述的数据压缩装置(102),其特征在于,所述压缩后的数据对象(302、314、406、514、532)中的一个或多个数据块(304、306、308、410、504、506、508、524、526)包括一个或多个压缩后的数据块(316、318、320、408、412、516、518、520、534、536),并且所述压缩后的数据对象(302、314、406、514、532)中的所述一个或多个数据块(304、306、308、410、504、506、508、524、526)的其余部分是非压缩的,所述控制器(202)用于解压缩所述一个或多个压缩后的数据块(304、306、308、410、504、506、508、524、526)。13.一种数据存储装置(104),其特征在于,包括存储器(208)和控制器(210),其中,所述存储器(208)用于存储数据对象(302、314、406、514、532),并且所述控制器(210)用于:接收待存储的数据元素(310、402、502、522),其中,所述数据元素(310、402、502、522)包括数据对象(302、314、406、514、532)和头元素,并且其中,所述数据对象指示所述数据对象中的一个或多个数据块,并且所述头元素(310、402、502、522)包括所述一个或多个数据块(304、306、308、410、504、506、508、524、526)中的每一个数据块的哈希值;对于每个数据块(304、306、308、410、504、506、508、524、526),基于所述数据块(304、306、308、410、504、506、508、524、526)的所述哈希值,确定数据块(304、306、308、410、504、506、508、524、526)是否存在参考数据块(304、306、308、410、504、506、508、524、526);如果确定结果为是,则将一个数据块(304、306、308、410、504、506、508、524、526)替换为另一个数据块(304、306、308、410、504、506、508、524、526)的参考数据块。14.一种数据装置(100),其特征在于,包括根据权利要求1至13中任一项所述的数据压缩装置(102)和根据权利要求13所述的数据存储装置(104)。15.一种用于数据压缩的方法(600),其特征在于,所述方法(600)包括:接收待压缩的数据对象(302、314、406、514、532);指示所述数据对象(302、314、406、514、532)中的一个或多个数据块(304、306、308、410、504、506、508、524、526);为所述一个或多个数据块(304、306、308、410、504、506、508、524、526)中的每一个数据块确定哈希值;随后,压缩所述数据对象(302、314、406、514、532);生成头元素,其中,所述头元素包括所述一个或多个数据块中的每一个数据块的所述哈希值,并将所述头元素(312、404、512、530)附加到压缩后的数据对象(302、314、406、514、532),其中,所述头元素(312、404、512、530)被设置为指示所述压缩后的数据对象(302、314、406、514、532)中的所述一个或多个数据块(304、306、308、410、504、506、508、524、526)。16.一种携带计算机指令的计算机可读介质,其特征在于,当加载到数据压缩装置
(102)的控制器(202)中并由所述控制器执行时,所述指令使所述数据压缩装置(102)能够实现根据权利要求15所述的方法(600)。17.一种用于存储数据对象的方法(700),其特征在于,所述方法(700)包括:接收待存储的数据元素(310、402、502、522),其中,所述数据元素(310、402、502、522)包括数据对象(302、314、406、514、532)和头元素(312、404、512、530),所述数据对象(302、314、406、514、532)指示所述数据对象(302、314、406、514、532)中的一个或多个数据块(304、306、308、410、504、506、508、524、526),并且所述头元素(312、404、512、530)包括所述一个或多个数据块(304、306、308、410、504、506、508、524、526)中的每一个数据块的哈希值;对于每个数据块(304、306、308、410、504、506、508、524、526),基于所述数据块(304、306、308、410、504、506、508、524、526)的所述哈希值,确定数据块(304、306、308、410、504、506、508、524、526)是否存在参考数据块(304、306、308、410、504、506、508、524、526);如果确定结果为是,则将一个数据块(304、306、308、410、504、506、508、524、526)替换为另一个数据块(304、306、308、410、504、506、508、524、526)的参考数据块。18.一种携带计算机指令的计算机可读介质,其特征在于,当加载到数据存储装置(104)的控制器(210)中并由所述控制器执行时,所述指令使所述数据存储装置(104)能够实现根据权利要求17所述的方法(700)。

技术总结
本发明提供了一种数据压缩装置,包括控制器,所述控制器用于:接收待压缩的数据对象;指示所述数据对象中的一个或多个数据块;为所述一个或多个数据块中的每一个数据块确定哈希值;随后,压缩所述数据对象;生成头元素,其中,所述头元素包括所述一个或多个数据块中的每一个数据块的哈希值,并将所述头元素附加到所述压缩后的数据对象,其中,所述头元素被设置为指示所述压缩后的数据对象中的所述一个或多个数据块。多个数据块。多个数据块。


技术研发人员:阿萨夫
受保护的技术使用者:华为技术有限公司
技术研发日:2020.12.21
技术公布日:2023/8/16
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐