CN110945792A - 压缩数据、解压缩数据的方法和相关装置 - Google Patents
压缩数据、解压缩数据的方法和相关装置 Download PDFInfo
- Publication number
- CN110945792A CN110945792A CN201980001933.3A CN201980001933A CN110945792A CN 110945792 A CN110945792 A CN 110945792A CN 201980001933 A CN201980001933 A CN 201980001933A CN 110945792 A CN110945792 A CN 110945792A
- Authority
- CN
- China
- Prior art keywords
- compressed
- data blocks
- pis
- information
- data
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000007906 compression Methods 0.000 claims abstract description 56
- 230000006835 compression Effects 0.000 claims abstract description 56
- 230000006837 decompression Effects 0.000 claims description 25
- 238000013144 data compression Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 5
- 238000012005 ligant binding assay Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 238000012795 verification Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供一种压缩数据的方法、解压缩数据的方法和相关装置,该方法包括:获取N个待压缩数据块以及N个保护信息PI,其中该N个待压缩数据块与该N个PI一一对应,N为大于或等于2的正整数;对该N个待压缩数据块进行压缩,得到压缩数据块;对该N个PI压缩,得到压缩PI。上述技术方案可以提高对待压缩数据块的压缩效果。
Description
技术领域
本申请涉及信息技术领域,更具体地,涉及压缩数据、解压缩数据的方法和相关装置。
背景技术
数据在存储、传输等过程中,会经历多个部件、多种传输通道和复杂的软件处理,其中任意一个错误都可能导致数据发生错误。但是发生错误时,并没有产生告警、日志、错误信息、或者任何形式的通知。这种错误称为静默数据破坏(silent data corruption)。
为了识别数据是否发生静默数据破坏,业界引入了数据一致性技术。数据一致性是通过对每个数据块插入保护信息(protection information,PI)的方式来保证数据块的完整性。PI也可以称为数据一致性域(data integrity field,DIF)。
具体地,待处理的数据会按照一个预定的大小(例如扇区的大小,即512个字节)划分为多个数据块,每个数据块后增加一个PI,该PI是根据对应的数据块生成的。数据传输过程中会经过检查点,检查点会校验数据块和对应的PI是否匹配,如果发现数据块和对应的PI不匹配,则向上返回错误,如果数据块和对应的PI匹配,则继续向下传输。
然而,目前对带有PI的数据进行压缩处理时,不对PI进行压缩。上述处理方式由于没有对PI进行压缩,因此得到的压缩后的数据较大。
发明内容
本申请提供一种压缩数据、解压缩数据的方法和相关装置,可以提高对待压缩数据块的压缩效果。
第一方面,本申请实施例提供一种压缩数据的方法,该方法包括:获取N个待压缩数据块以及N个保护信息PI,其中该N个待压缩数据块与该N个PI一一对应,N为大于或等于2的正整数;对该N个待压缩数据块进行压缩,得到压缩数据块;对该N个PI压缩,得到压缩PI。上述技术方案,分别对待压缩数据块和PI进行压缩,因此可以提高对待压缩数据块的压缩效果。此外,压缩数据块和压缩PI是分开。换句话说,压缩PI并非是与压缩数据块混在一起的。因此,在对带有PI的数据进行压缩处理后,可以直接使用压缩后PI。
结合第一方面,在第一方面的一种可能的实现方式中,该N个PI包含具有特定规律的信息;该对N个PI压缩,得到压缩PI,包括:根据该具有特定规律的信息,对该N个PI压缩,得到该压缩PI。上述技术方案利用了PI中的具有特定规律的信息对PI进行压缩。这样可以减少压缩后的PI的长度,并且不影响对压缩PI进行解压缩以恢复该N个PI。
结合第一方面,在第一方面的一种可能的实现方式中,用于存储该N个待压缩数据块的地址是连续的,用于存储该N个PI的地址是连续的。这样,便于对该N个PI和该N个待压缩数据块进行压缩。
结合第一方面,在第一方面的一种可能的实现方式中,该获取N个待压缩数据块以及N个保护信息PI,包括:获取M个待压缩数据块和M个PI,其中该M个待压缩数据块与该M个PI一一对应,该M个待压缩数据块包括该N个待压缩数据块,该M个PI包括该N个PI,其中M为大于或等于N的正整数;判断该M个待压缩数据块中是否包括冗余的待压缩数据块;当该M个待压缩数据块中包括冗余的待压缩数据块,从该M个待压缩数据块中删除该冗余的待压缩数据块得到该N个待压缩数据块,从该M个PI中删除对应于该冗余的待压缩数据块的PI得到该N个PI;当该M个待压缩数据块中不包括该冗余的待压缩数据块,该M个待压缩数据块为该N个待压缩数据块,该M个PI为该N个PI。上述技术方案删除了待压缩数据块中的冗余数据块,这样可以减少需要被压缩的数据块,从而提高数据的压缩率。
结合第一方面,在第一方面的一种可能的实现方式中,该判断该M个待压缩数据块中是否包括冗余的待压缩数据块,包括:判断该M个PI中是否包括校验信息相同的多个PI。通过判断校验信息可以快速地确定是否有冗余的待压缩数据块,这样可以提高确定冗余的待压缩数据块的速度。
结合第一方面,在第一方面的一种可能的实现方式中,当该M个PI中的校验信息均不同,该M个待压缩数据块中不包括该冗余的待压缩数据块;当该M个PI中K个PI中的校验信息相同,逐字节比较与该K个PI对应的K个待压缩数据块,其中K为大于或等于2且小于或等于M的正整数;当该K个待压缩数据块中逐字节比较的结果均不同,该K个待压缩数据块中不包括该冗余的待压缩数据块;当该K个待压缩数据块中的K’个待压缩数据块逐字节比较的结果相同,K’个待压缩数据块中包括K’-1个该冗余的待压缩数据块,其中K’为大于或等于2且小于或等于K的正整数。通过逐字节比较的方式可以保证要不会有非冗余的待压缩数据块被删除。
第二方面,本申请实施例提供一种解压缩数据的方法,该方法包括:获取待解压数据,其中该待解压数据包括压缩数据块和压缩保护信息PI;对该压缩数据块进行解压,得到N个数据块,N为大于或等于2的正整数;根据该压缩PI和该N个数据块,确定N个PI,其中该N个数据块与该N个PI一一对应。上述技术方案可以将被压缩的数据恢复为原始数据。
结合第二方面,在第二方面的一种可能的实现方式中,该根据该压缩PI和该N个数据块,确定N个PI包括:根据该N个数据块,确定N个校验信息;根据该压缩PI,确定N个信息,其中该N个信息具有特定规律,该压缩PI中包含该N个信息中的一个;确定该N个PI,其中该N个PI中的每个PI包括该N个校验信息中的一个,该N个PI中的每个PI包括该N个信息中的一个。
结合第二方面,在第二方面的一种可能的实现方式中,用于存储该N个数据块的地址是连续的,用于存储该N个PI的地址是连续的。
结合第二方面,在第二方面的一种可能的实现方式中,该方法还包括:根据该N个数据块和该N个PI,确定M个数据块和M个PI,其中该M个数据块与该M个PI一一对应,该M个数据块包括该N个数据块,该M个PI包括该N个PI,其中M为大于N的正整数,该M个数据块中的M-N个数据块是该N个数据块中的至少一个数据块的冗余的数据块,该M个PI中的M-N个PI是与该冗余的数据块对应的PI,M为大于N的正整数。
第三方面,本申请实施例提供一种数据压缩装置,该数据压缩装置包括用于实现第一方面或第一方面任一种可能的实现方式的单元。
第四方面,本申请实施例提供一种数据解压缩装置,该数据解压缩装置包括用于实现第二方面或第二方面的任一种可能的实现方式的单元。
第五方面,本申请实施例提供一种存储介质,该存储介质存储用于实现第一方面或第一方面的任一种可能的实现方式所述的方法的指令。
第六方面,本申请实施例提供一种存储介质,该存储介质存储用于实现第二方面或第二方面的任一种可能的实现方式所述的方法的指令。
第七方面,本申请提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式所述的方法。
第八方面,本申请提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一种可能的实现方式所述的方法。
附图说明
图1是根据本申请实施例提供的一种压缩数据的方法的示意性流程图。
图2是根据本申请实施例提供的数据块和PI分离的方法的示意性流程图。
图3是一个第一待压缩数据的示意图。
图4是一个第二待压缩数据的示意图。
图5是根据本申请实施例提供的删除冗余的待压缩数据块以及对应的PI的示意性流程图。
图6是根据本申请实施例提供的对PI进行压缩的示意性流程图。
图7是一个压缩指示信息的示意图。
图8是一个压缩PI的示意图。
图9是根据本申请实施例提供的解压缩数据的方法的示意性流程图。
图10是根据本申请实施例提供的数据压缩装置的结构示意图。
图11是根据本申请实施例提供的数据解压缩装置的结构示意图。
图12是根据本申请实施例提供的存储阵列的控制器的结构框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本发明实施例具体可以应用到存储系统,如存储阵列、分布式存储系统等,还可以应用于主机或服务器等场景,本发明实施例对此不作限定。在存储阵列执行数据压缩或解压缩操作时,可以由存储阵列的控制器实施,具体可以由存储阵列的控制器的处理器执行。分布式存储系统执行数据压缩或解压缩操作时,可以由分布式存储系统中的存储节点执行,具体可以由存储节点的处理器执行。在主机或服务器执行数据压缩或解压缩操作时,具体可以由主机或服务器的处理器执行。本发明实施例中的处理器可以包含中央处理单元(Central Processing Unit,CPU)和存储器。另外,为节省CPU的计算资原,现场可编程门阵列(Field Programmable Gate Array,FPGA)或其他硬件也可以用于执行CPU全部操作,或者,FPGA或其他硬件与CPU分别用于执行前面的CPU的部分操作。为方便描述,本发明实施例统一用处理器来指CPU和存储器的组合,以及上述各种实现。另外,本发明实施例还可以应用于存储硬盘中的数据压缩和解压缩。本发明实施例也可以用于消费者级产品,例如,个人电脑、笔记本电脑、平板电脑、移动设备、手机等。
图1是根据本申请实施例提供的一种压缩数据的方法的示意性流程图。
101,待压缩数据块和PI分离。
102,删除冗余的待压缩数据块以及对应的PI。
103,对待压缩数据块以及PI分别进行压缩,得到压缩数据块和压缩PI,其中压缩数据块是对待压缩数据块进行压缩得到的,压缩PI是对PI进行压缩得到的。
因此,分别对待压缩数据块和PI进行压缩,可以提高对待压缩数据块的压缩效果。具体地,若待压缩数据块与PI是掺杂在一起的(即一个待压缩数据块后是一个PI,该PI后是另一个待压缩数据块,以此类推),PI会影响对待压缩数据块的压缩效率。而图1所示的方法中,多个待压缩数据块没有被PI隔开。因此,可以避免PI影响待压缩数据块的压缩,从而提高待压缩数据块的压缩效果。此外,压缩数据块和压缩PI是分开。换句话说,压缩PI并非是与压缩数据块混在一起的。因此,在对带有PI的数据进行压缩处理后,可以直接使用压缩后PI。
下面将结合图2至图8对图1所示方法的各个步骤进行详细描述。
图2是根据本申请实施例提供的数据块和PI分离的方法的示意性流程图。
201,获取待压缩的数据,待压缩的数据中包括M个待压缩数据块和M个PI,该M个待压缩数据块与M个PI一一对应。
本申请实施例中对如何在数据中插入PI并不做限定。换句话说,本申请实施例对如何将待插入PI的数据划分多个数据块,并如何根据数据块确定对应的PI的方式并不做限定。但是,为了便于描述,本申请实施例假设每个数据块的大小是512字节(Byte),每个PI的大小是8字节。
8字节的PI中可以包括如下信息:2字节的校验信息、2字节的应用信息、4字节的参考信息。
该校验信息也可以称为保护标签(guard tag),是根据与该PI对应的数据块确定的。检查点可以根据该校验信息来验证与该PI对应的数据块中的数据是否发生错误。该校验信息可以是根据与该PI对应的数据块生成的循环冗余校验(cyclic redundancy check,CRC)值。CRC值具有如下特点:如果用于生成该CRC值的数据块中的数据发生变化,则根据该数据块生成的CRC值也会发生变化。因此,检查点可以根据数据块计算一个CRC值,然后将计算得到的CRC值和对应于该数据块的PI中的CRC值进行比较,如果两个CRC值一致,则该数据块与该PI匹配,该数据块没有发生错误;如果两个CRC值不一致,则该数据块与该PI不匹配,该数据块发生错误。可以理解的是,除了使用CRC值作为校验信息外,还可以利用其他算法根据数据块生成一个用于对该数据块进行校验的校验信息,只要生成的校验信息具有与CRC值相同的特点即可。
应用信息也可以称为应用标签(application tag),该应用信息中可以包括与应用程序相关的一些信息。例如,该应用程序信息中可以应用程序信息和应用程序的版本信息。该应用程序信息可以是应用程序的名称、标识或者其他类似的信息。应用程序的版本信息可以是应用程序的版本号、版本代号等信息。
参考信息也可以称为参考标签(reference tag)。该参考信息中包括与该PI对应的数据块的逻辑块地址(logical block address,LBA)。例如,该LBA可以是用于存储对应于该PI的数据块的LBA。又如,该LBA可以是相对于一个特定LBA的偏移值,该特定LBA加上该偏移值就是用于存储对应于该PI的数据块的LBA。根据该参考信息,可以确定与该PI对应的数据块。当然,该参考信息也可以是其他能够用于反映PI与数据块对应关系的信息。
202,连续存放该M个待压缩数据块,连续存放该M个PI。这样,就完成了对待压缩数据块和PI分离操作。
具体地,连续存放该M个待压缩数据块是指使用地址连续的存储单元保存该M个待压缩数据块。换句话说,用于存储该M个待压缩数据块的地址是连续的。类似的,连续存放该M个PI是指使用地址连续的存储单元保存该M个PI。换句话说,用于存储该M个PI的地址是连续的。为了便于描述以下将步骤201中获取的待压缩数据称为第一待压缩数据,将步骤202得到的待压缩的数据称为第二待压缩数据。
图3是一个第一待压缩数据的示意图。如图3所示,该第一待压缩数据中包括5个待压缩数据块以及5个PI,其中,PI 1是对应于待压缩数据块1的PI,PI 2是对应于待压缩数据块2的PI,以此类推,本发明实施例称该5个待压缩数据块与该5个PI一一对应。如图3所示,该5个待压缩数据块与5个PI的排列方式(即存放方式)是按照待压缩数据块-PI-待压缩数据块-PI的顺序排列的,即待压缩数据块1之后是对应于待压缩数据块1的PI 1,PI 1后是待压缩数据块2,待压缩数据块2之后是对应于待压缩数据块2的PI 2,以此类推。
图4是一个第二待压缩数据的示意图。图4所示的第二待压缩数据是对如图3所示的第一待压缩数据进行待压缩数据块和PI分离操作后得到的第二待压缩数据。如图4所示,第二待压缩数据中包括的待压缩数据块与PI与如图3所示的第一待压缩数据中包括的待压缩数据块与PI相同,但是第二待压缩数据中的5个待压缩数据块是连续存放的,5个PI也是连续存放的。换句话说,用于存储该5个待压缩数据块的存储单元的地址是连续的,用于存储该5个PI的存储单元的地址是连续的。如图3所示,待压缩数据块1后是待压缩数据块2,待压缩数据块2后是待压缩数据块3,以此类推;待压缩数据块5之后是PI 1,PI 1后是PI 2,以此类推。一种实现方式,存储该5个待压缩数据块的存储单元的物理地址是连续的;另一种实现方式,存储该5个待压缩数据块的存储单元的逻辑地址是连续的。
为便于描述,以下将如图3所示的第一待压缩数据的待压缩数据块和PI的排列方式称为交错排列,将如图4所示的第二待压缩数据的待压缩数据块和PI的排列方式称为分离排列。
可选的,一些实施例中,在执行步骤101之前,还可以确定待压缩数据块和PI的排列方式是交错排列还是分离排列。若待压缩数据块和PI的排列方式已经是分离排列了,则可以不执行步骤101;若待压缩数据块和PI的排列方式是交错排列,则可以执行步骤101,将待压缩数据块和PI的排列方式从交错排列转换为分离排列。分离排列的待压缩数据块和PI更便于后续的处理。例如,便于步骤102中确定冗余的待压缩数据块的操作。又如,步骤103中,待压缩数据块和PI是分别进行压缩的,在此情况下,可以直接对多个待压缩数据块进行压缩处理,对多个PI进行压缩处理,而无需从先从交错的待压缩数据块和PI中提取出待压缩数据块,然后再对待压缩数据块进行压缩。
当然,在一些实施例中,也可以不对交错排列的待压缩数据块和PI进行分离。
图5是根据本申请实施例提供的删除冗余的待压缩数据块以及对应的PI的示意性流程图。为便于描述,假设图5所示的方法处理的对象也是图2所示方法中处理的M个待压缩数据块和M个PI。该M个待压缩数据块与该M个PI的排列方式可以是分离排列也可以是交错排列。如上所述,相对于交错排列,分离排列的待压缩数据块与PI更便于进行冗余的待压缩数据块删除。
501,判断该M个PI是否包括校验信息相同的多个PI。当该M个PI中的校验信息均不同,该M个待压缩数据块中不包括所述冗余的待压缩数据块;当该M个PI中K个PI中的校验信息相同,执行步骤502,K为大于或等于2且小于或等于M的正整数。
如上所述,校验信息是根据数据块生成的。当两个校验信息不同,则用于生成这两个校验信息的两个数据块不同;当两个校验信息相同,则用于生成这两个校验信息的两个数据块可能相同。为了保证删除的待压缩数据块确实是冗余的待压缩数据块,则在两个校验信息相同的情况下,还需要逐字节比较这两个校验信息对应的两个数据块以确定这两个是否是完全相同的两个数据块。
可选的,在一些实施例中,由于不同的数据块生成相同的校验信息的概率很低,因此若多个校验信息相同,则可以直接确定与这多个校验信息对应的待压缩数据块中存在冗余的待压缩数据块。换句话说,若多个校验信息相同,则可以判断这多个校验信息对应的待压缩数据块相同。
502,逐字节比较K个PI对应的K个待压缩数据块。当该K个待压缩数据块中逐字节比较的结果均不同,该K个待压缩数据块中不包括该冗余的待压缩数据块。换句话说,当该K个待压缩数据块中的任意两个待压缩数据块逐字节比较的结果不同,则该K个待压缩数据块中的任意两个待压缩数据块均不相同。在此情况下,该M个待压缩数据块中不包括冗余的待压缩数据块。当该K个待压缩数据块中的K’个待压缩数据块逐字节比较的结果相同,执行步骤503。
可以理解的是,需要进行逐字节比较的多个待压缩数据块对应的多个PI中的校验信息是相同的。PI的校验信息不同的两个待压缩数据块不会进行逐字节比较。例如,假设待压缩数据块1至待压缩数据块5分别对应于PI 1至PI 5。假设PI 1、PI 2和PI 3的校验信息相同;PI 4和PI 5的校验信息相同;PI 1和PI 4的校验信息不同。在此情况下,待压缩数据块1、待压缩数据块2和待压缩数据块3之间需要进行逐字节比较;待压缩数据块4和待压缩数据块5需要进行逐字节比较;而待压缩数据块1至待压缩数据块3中的均无需与待压缩数据块4和待压缩数据块5进行逐字节比较。
逐字节比较是将两个或多个数据块中的每个字节进行比较,如果该两个数据块相同,则该两个数据块中对应的字节均相同;如果两个数据块中对应的一个字节的一个位不同,则这两个数据块不同。
假设数据块1包括两个字节,两个字节为1111 1111 0000 0000,数据块2包括两个字节,两个字节为1111 1111 0000 0000。可见,数据块1的两个字节与数据块2的两个字节完全相同,则数据块2是一个冗余的数据块。假设数据块3包括两个字节,两个字节为11111111 0000 0001。可见,数据块1和数据块3的两个字节的前15位相同,但是最后1位不同,因此数据块1与数据块3不同。
503,确定K’个待压缩数据块中包括K’-1个冗余的待压缩数据块,将该K’-1个冗余的待压缩数据块以及该K’-1个冗余的待压缩数据块对应的PI删除。
例如,假设待压缩数据块1、待压缩数据块2和待压缩数据块3逐字节比较的结果是这三个待压缩数据块完全相同,则可以删除其中的两个待压缩数据块,只保留三个数据块中的一个待压缩数据块。被删除的两个待压缩数据块相对于未被删除的待压缩数据块是冗余的。换句话说,这三个待压缩数据块中,有两个待压缩数据块是冗余的待压缩数据块。这两个冗余的待压缩数据块就是被删除的待压缩数据块。可选的,在一些实施例中,冗余的待压缩数据块可以是任意的待压缩数据块。可选的,在另一些实施例中,被保留的待压缩数据块可以是K个待压缩数据块中的第一个待压缩数据块或者是最后一个待压缩数据块。
可选的,在一些实施例中,还可以确定一个冗余指示信息,该冗余指示信息用于指示被删除的冗余的待压缩数据块的相关信息。被删除的冗余的待压缩数据块的相关信息可以包括被删除的冗余的待压缩数据块的位置,以及被删除的冗余的待压缩数据块是相对于哪个待压缩数据块的冗余的待压缩数据块。
可以理解的是,当步骤501或步骤502中确定的结果是该M个待压缩数据块中不包括冗余的待压缩数据块,则图1所示的步骤102无需被执行。
可选的,在另一些实施例中,即使存在冗余的待压缩数据块,也可以不删除冗余的待压缩数据块。在此情况下,图1所示的步骤102也可以不被执行。
对待压缩数据块的压缩过程,可以利用常规的数据压缩引擎对待压缩数据块进行压缩,在此就不必赘述。下面将结合图6对如何对PI进行压缩得到压缩PI进行详细描述。
图6是根据本申请实施例提供的对PI进行压缩的示意性流程图。为便于描述,假设待压缩的PI共有N个PI,其中N为大于或等于2且小于或等于M的正整数。该N个PI对应于图2所示实施例中的M个PI。具体地,若该M个PI所对应的待压缩数据块中没有冗余的待压缩数据块或者不进行删除冗余的待压缩数据块的操作,则N等于M。换句话说,若该M个PI所对应的待压缩数据块中没有冗余的待压缩数据块或者不进行删除冗余的待压缩数据块的操作,该N个PI就是该M个PI。若该M个PI所对应的待压缩数据块中包括冗余的待压缩数据块,则N小于M,M与N的差就是删除了的PI的数目。
601,确定N个PI中是否包含具有特定规律的信息。若确定结果为否(即该N个PI中不包含具有特定规律的信息),则不对该N个PI进行压缩;若确定结果为是(即该N个PI中包含具有特定规律的信息),则执行步骤602(即对该N个PI进行压缩)。
根据内容是否相同,该具有特定规律的信息可以分为第一信息和第二信息。
该第一信息包括N个不同的信息,该N个PI中的每个PI包含该N个不同的信息中的一个。若获取N个不同的信息中的一个信息,就可以根据该特定规律,得到其余的N-1个信息。
可选的,在一些实施例中,若N个不同的信息是连续的,则该N个不同的信息可以称为是具有特定规律的信息。例如,假设N等于6,6个信息分别为1、2、3、4、5、6。若6个信息中的第1个信息以及总信息数目是已知的,就可以根据第1个信息得到其余的五个信息。若6个信息中的倒数第1个信息以及总信息数目是已知的,就可以根据倒数第1个信息得到其余的五个信息。若6个信息中的任一个信息、该任一个信息是第几个信息以及总信息数目是已知的,就可以根据该任一个信息得到其余的五个信息。
在另一些实施例中,若N个不同的信息中的任意两个信息的差是相同的,则该N个不同的信息可以称为是具有特定规律的信息。可以理解,N个连续的信息之间任意两个连续的信息的差是1。若N个连续的信息之间任意两个连续的信息的差是大于1的正整数,该N个不同的信息也可以称为是不同的具有特定规律的信息。例如,例如,假设N等于6,6个信息分别为2、4、6、8、10、12。若6个信息中的第1个信息以及总信息数目是已知的,就可以根据第1个信息得到其余的五个信息。若6个信息中的倒数第1个信息以及总信息数目是已知的,就可以根据倒数第1个信息得到其余的五个信息。若6个信息中的任一个信息、该任一个信息是第几个信息以及总信息数目是已知的,就可以根据该任一个信息得到其余的五个信息。
在另一些实施例中,只要N个不同的信息具有一定规律,即能够根据N个不同的信息中的任一个信息以及其他相关信息(例如总信息数目,该N个信息的顺序以及具体规律)得到其余的N-1个信息,该N个信息就可以称为N个具有特定规律的信息。例如,该N个不同的信息可以满足斐波那契数列,或者,该N个信息中相邻信息的差满足斐波那契数列等。
例如,如上所述,PI中可以包括对应的数据块的LBA。若该N个PI包括的N个LBA是连续的或者该N个LBA中的任意两个相邻的LBA(例如第1个PI和第2个PI,第4个PI和第5个PI)的差是相等的,则该N个LBA可以称为一组第一信息。
该第二信息包括N个相同的信息,该N个PI中的每个PI包括该N个相同的信息中的一个。
该N个PI包括的信息中可以包括一组第一信息也可以包括多组第一信息,每组第一信息包括N个具有特定规则的信息。类似的,该N个PI包括的信息中可以包括一组第二信息也可以包括多组第二信息,每组第二信息包括N个相同的信息。
例如,如上所述,PI中可以包括应用信息,该应用信息可以包括应用程序信息和应用程序的版本信息。若该N个PI包括的N个应用程序信息相同,则可以称该N个应用程序信息是一组第二信息;若该N个PI包括的N个应用程序的版本信息相同,则可以称该N个应用程序的版本信息是另一组第二信息。
602,根据所述具有特定规律的信息,对所述N个PI压缩,得到所述压缩PI。该压缩PI中包含该具有特定规律的信息中的一个。
具体地,在该N个PI中包含第一信息(即N个不同的,但是具有特定规律的信息)的情况下,该压缩PI中可以包含第一压缩信息,该第一压缩信息为该N个不同的信息中的一个。上述技术方案在对该N个不同的信息进行压缩时可以只保留该N个不同的信息中的一个信息。在解压缩时,可以根据保留的信息和该特定规律,得到其余N-1个信息。换句话说,上述技术方案可以将N个不同的信息压缩成一个信息。
在该N个PI中包含第二信息(即N个相同的信息)的情况下,该压缩PI中可以包括第二压缩信息,其中该第二压缩信息为该N个相同的信息中的一个。上述技术方案在对该N个不同的信息进行压缩时可以只保留该N个相同的信息中的一个信息。换句话说,上述技术方案可以将N个相同的信息压缩成一个信息。
如上所述,该N个PI包括的信息中可以包括一组第一信息也可以包括多组第一信息,每组第一信息包括N个具有不同的信息。若该N个PI包括一组第一信息,则该压缩PI中可以包括一个第一压缩信息。该第一压缩信息为该组第一信息中的N个不同的信息中的一个。若该N个PI包括多组第一信息,在该压缩信息中的可以包括多个第一压缩信息,该多个第一压缩信息和多组第一信息一一对应。该多个第一压缩信息中的每个第一压缩信息为对应的一组第一信息所包括的N个不同的信息中的一个。
类似的,该N个PI包括的信息中可以包括一组第二信息也可以包括多组第二信息,每组第二信息包括N个相同的信息。若该N个PI包括一组第二信息,则该压缩PI中可以包括一个第二压缩信息。该第一压缩信息为该组第一信息中的N个相同的信息中的一个。若该N个PI包括多组第二信息,在该压缩信息中的可以包括多个第二压缩信息,该多个第二压缩信息和多组第二信息一一对应。该多个第二压缩信息中的每个第二压缩信息为对应的一组第二信息所包括的N个相同的信息中的一个。
例如,假设该N个PI包括的信息中包括一组第一信息,该组第一信息为N个LBA,该N个LBA是连续的。压缩PI中可以包括一个第一压缩信息,可选的,在一些实施例中,该第一压缩信息为该N个连续的LBA中的第一个LBA。可选的,在另一些实施例中,该第一压缩信息为该N个连续的LBA中的最后一个LBA。
又如,假设该N个PI包括的信息中包括两组第二信息,其中第一组第二信息是N个应用程序信息,第二组第二信息是应用程序的版本信息。换句话说,该N个PI的应用程序信息和应用程序的版本信息都是相同的。在此情况下,该压缩PI中可以包括两个第二压缩信息,分别为应用程序信息和应用程序的版本信息。换句话说,该压缩PI中只需要保存一个应用程序信息和一个应用程序的版本信息即可。
此外,该压缩PI中可以不包括校验信息。具体地,校验信息是根据对应的待压缩数据块生成的。校验信息是用于压缩层的上层模块和压缩层通信校验使用的。具体地,压缩层从上层模块获取到待压缩的数据块后,可以利用校验信息来验证获取到的数据块是否发生错误。压缩后的校验信息不会用于压缩层和下层通信。因此,在对PI进行压缩的过程中可以删除校验信息。在解压缩时,可以再根据数据块生成对应的校验信息。
此外,若该N个PI包括的信息中除了校验信息外,还包括至少一组第三信息,该至少一组第三信息中的每组第三信息包括N个信息,该N个PI分别包括该N个信息,该N个信息中的任意两个信息不相同,该N个信息也没有特定规律。换句话说,该N个PI包括的信息中除了校验信息外,还包括不属于第一信息和第二信息的信息。在此情况下,压缩PI中保留该至少一组第三信息。
例如,假设该N个PI包括的N个应用程序信息相同,但是N个应用程序的版本信息不同。在此情况下,该压缩PI中可以包括一个应用程序信息和N个应用程序的版本信息。
压缩PI中还可以包括压缩指示信息,该压缩指示信息长度为2个字节。
图7是一个压缩指示信息的示意图。如图7所示压缩指示信息中包括版本字段,校验信息标签字段、应用程序的版本信息标签字段、应用程序信息标签字段、参考信息标签字段和保留字段。
可以理解的是,该压缩指示信息中包括的内容是与PI中包括的内容对应的。例如,上述压缩指示信息中包括校验信息标签字段、应用程序的版本信息标签字段、应用程序信息标签字段、参考信息标签字段是因为PI中包括校验信息、应用程序的版本信息、应用程序信息、参考信息。如果PI中仅包括校验信息、应用程序信息和参考信息而不包括应用程序的版本信息,那么该压缩指示信息中也包括校验信息标签字段、应用程序信息标签字段和参考信息标签字段而不包括应用程序的版本信息标签字段。
该版本字段的长度为4比特,该版本字段用于指示版本号。
该校验信息标签字段的长度为1比特,用于指示是否删除了校验信息,例如校验信息标签字段的值为0表示删除了校验信息,值为1表示未删除校验信息。
该应用程序的版本信息标签字段的长度为1比特,用于指示是否压缩了的PI中的应用程序的版本信息,例如,应用程序的版本信息标签字段值为0表示该压缩PI中的应用程序的版本信息是压缩后的应用程序的版本信息。换句话说,应用程序的版本信息标签字段值为0表示该压缩PI中只有一个应用程序的版本信息,该N个PI的应用程序的版本信息与该压缩PI中的应用程序的版本信息相同。应用程序的版本信息标签字段的值为1表示该压缩PI中的应用程序的版本信息共包括N个应用程序的版本信息,该N个应用程序的版本信息分别是N个PI中的应用程序的版本信息。
该应用程序信息标签字段的长度为1比特,用于指示是否压缩了的PI中的应用程序信息,例如应用程序信息标签字段的值为0表示该压缩PI中的应用程序信息是压缩后的应用程序信息。换句话说,应用程序信息标签字段值为0表示该压缩PI中只有一个应用程序信息,该N个PI的应用程序信息与该压缩PI中的应用程序信息相同。应用程序信息标签字段的值为1表示该压缩PI中的应用程序信息共包括N个应用程序信息,该N个应用程序信息分别是N个PI中的应用程序信息。
该参考信息标签字段的长度为1比特,用于指示是否压缩了的PI中的应用程序信息,例如参考信息标签字段的值为0表示该压缩PI中的应用程序信息是压缩后的参考信息。换句话说,参考信息标签字段值为0表示该压缩PI中只有一个参考信息,该参考信息是该N个PI包括的N个参考信息中的一个,该N个PI中的其余参考信息可以根据该压缩PI中的参考信息确定。参考信息标签字段的值为1表示该压缩PI中的参考信息共包括N个参考信息,该N个参考信息分别是N个PI中的参考信息。
保留字段长度是8比特。该保留字段可以用于保存一些相关的信息。例如,该保留字段保存的信息中可以包括一个指示信息,该指示信息用于指示该压缩PI中的参考信息是该N个参考信息中的哪一个参考信息。又如,该压缩PI可以包括对多组PI压缩后的结果,该保留字段保存的信息中可以包括一个指示信息,该指示信息用于指示压缩PI中的各个字段与PI的对应关系。
图8是一个压缩PI的示意图。如图8所示,该压缩PI中包括2字节的压缩指示信息,1字节的应用程序的版本信息,1字节的应用程序信息和4字节的参考信息。换句话说,与该PI对应的多个PI中的应用程序的版本信息是相同的,应用程序信息是相同的,参考信息是具有特定规律的。
通常情况下,待压缩的多个数据块对应的多个PI中的多个应用程序信息都是相同的、多个应用程序的版本信息都是相同的,多个参考信息都是连续的。因此,在一般情况下,多个PI可以被压缩为一个如图8所示的长度为8字节的压缩PI。在此情况下,对于压缩前长度大小为X的数据,采用本申请实施例所示的方法进行压缩后的压缩率(假设多个PI可以被压缩为一个如图8所示的长度为8字节的压缩PI)可以如公式1.1所示:
公式1.1中的分子表示压缩前的数据,分母表示压缩后的数据,其中X表示压缩前的数据大小,Y’表示待压缩数据块压缩后的大小,8是多个PI压缩后的大小。压缩后的待压缩数据块和PI还需要以512字节为长度被划分为多个数据块,每个数据块有一个对应的8字节的PI。因此,压缩后的数据还需要加上[(Y'+8)/512]*8。
下面将结合具体实施例对本申请的技术方案进行描述。可以理解的是,下面这些具体实施例仅是为了帮助本领域技术人员更好地理解本申请的技术方案,而并非是对本申请的技术方案的限定。为便于描述,以下实施例中所称的待压缩数据都是经过了待压缩数据块和PI分离操作以及冗余待压缩数据块删除操作后得到的待压缩数据。
本发明实施例以存储阵列为例,存储阵列的控制器获取待压缩数据1,待压缩数据1包括16个待压缩数据块和与该16个待压缩数据块对应的16个PI。该16个PI中包括的16个LBA是连续的,该16个PI中的应用程序的版本信息均相同,该16个PI中的应用程序信息均相同。在此情况下,该存储阵列的控制器可以确定对该16个PI进行压缩后得到的压缩PI,该压缩PI中包括一个LBA、一个应用程序的版本信息和一个应用程序信息,该LBA是该16个LBA中的起始信息。该压缩PI中包括的一个应用程序的版本信息就是该16个PI中的每个PI包括的应用程序的版本信息。类似的,该压缩PI中包括的一个应用程序信息就是该16个PI中的每个PI包括的应用程序信息。该压缩PI中还可以包括压缩指示信息,该压缩指示信息中的校验信息标签字段、应用程序的版本信息标签字段、应用程序信息标签字段、参考信息标签字段的取值均为0。该压缩PI中不包括该16个PI中的校验信息。
存储阵列的控制器获取待压缩数据2,待压缩数据2包括16个待压缩数据块和与该16个待压缩数据块对应的16个PI。该16个PI中包括的16个LBA是连续的,该16个PI中的应用程序的版本信息不完全相同,该16个PI中的应用程序信息均相同。在此情况下,该存储阵列的控制器可以确定对该16个PI进行压缩后得到的压缩PI,该压缩PI中包括一个LBA、16个应用程序的版本信息和一个应用程序信息,该LBA是该16个LBA中的起始信息。该压缩PI中包括的16个应用程序的版本信息就是该16个PI中的每个PI包括的应用程序的版本信息。该压缩PI中包括的一个应用程序信息就是该16个PI中的每个PI包括的应用程序信息。该压缩PI中还可以包括压缩指示信息,该压缩指示信息中的校验信息标签字段、应用程序信息标签字段、参考信息标签字段的取值为0,应用程序的版本信息标签字段的取值为1。该压缩PI中不包括该16个PI中的校验信息。
存储阵列的控制器获取待压缩数据3,待压缩数据3包括16个待压缩数据块和与该16个待压缩数据块对应的16个PI。该16个PI中包括的16个LBA中的第1至第9个PI中的LBA是连续的,第10至第16个PI中的LBA是连续的,且第9个PI的LBA与第10个PI的LBA是不连续的。该16个PI中的应用程序的版本信息中的第1至第9个PI中的应用程序的版本信息是相同的,第10至第16个PI中的应用程序的版本信息是相同的,且第9个PI中的应用程序的版本信息与第10个PI中的应用程序的版本信息不同。该16个PI中的应用程序信息中的第1至第9个PI中的应用程序信息是相同的,第10至第16个PI中的应用程序信息是相同的,且第9个PI中的应用程序信息与第10个PI中的应用程序信息不同。
可选的,在一些实施例中,该存储阵列的控制器可以不对该16个PI进行压缩,也不对该16个PI进行任何处理。
可选的,在另一些实施例中,该存储阵列的控制器可以将该16个PI中的每个PI中包括的校验信息删除,得到处理后的16个PI。该计算机设备还可以增加一个指示信息,该指示信息用于指示该处理后的16个PI中不包括校验信息。该指示信息的形式可以参照压缩指示信息的格式。
可选的,在另一些实施例中,该存储阵列的控制器可以将第1个PI至第9个PI进行压缩,得到一个压缩PI(以下简称压缩PI 1),将第10个PI至第16个PI进行压缩,得到另一个压缩PI(以下简称压缩PI 2)。
该压缩PI 1中包括一个LBA、一个应用程序的版本信息和一个应用程序信息,该LBA是第1个PI至第9个PI中9个LBA中的起始地址。该压缩PI 1中包括的一个应用程序的版本信息就是第1个PI至第9个PI中的每个PI包括的应用程序的版本信息。类似的,该压缩PI1中包括的一个应用程序信息就是第1个PI至第9个PI中的每个PI包括的应用程序信息。该压缩PI 1中还可以包括压缩指示信息,该压缩指示信息中的校验信息标签字段、应用程序信息标签字段、应用程序的版本信息标签字段、参考信息标签字段的取值为0。该压缩PI 1中不包括该第1个PI至第9个PI中的校验信息。
该压缩PI 2中包括一个LBA、一个应用程序的版本信息和一个应用程序信息,该LBA是第10个PI至第16个PI中7个LBA中的起始信息。该压缩PI 2中包括的一个应用程序的版本信息就是第10个PI至第16个PI中的每个PI包括的应用程序的版本信息。类似的,该压缩PI 2中包括的一个应用程序信息就是第10个PI至第16个PI中的每个PI包括的应用程序信息。该压缩PI 2中还可以包括压缩指示信息,该压缩指示信息中的校验信息标签字段、应用程序信息标签字段、应用程序的版本信息标签字段、参考信息标签字段的取值为0。该压缩PI 2中不包括该第10个PI至第16个PI中的校验信息。
图9是根据本申请实施例提供的解压缩数据的方法的示意性流程图。如图9所示的解压缩数据的方法是用于对采用如图1所示的方法得到的压缩数据进行解压缩的方法。
901,获取待解压缩的数据,该待解压缩的数据包括压缩数据块和压缩PI。该待解压缩的数据是采用如图1所示的压缩数据的方法得到的。
902,对该压缩数据块进行解压缩,得到N个数据块。
903,根据该N个数据块和该压缩PI,得到N个PI,该N个PI与该N个数据块一一对应。
具体地,根据该N个数据块得到N个校验信息。具体确定校验信息的方法可以参见如图2所示的实施例,在此就不必赘述。
根据该N个校验信息和该压缩PI,确定该N个PI。
可选的,在一些实施例中,当该压缩PI中仅包括一个应用程序的版本信息、一个应用程序信息和一个参考信息,则可以确定该N个PI中的应用程序信息是该压缩PI中的应用程序信息,该N个PI中的应用程序的版本信息是该压缩PI中的应用程序的版本信息,该N个PI中的参考信息可以根据该压缩PI中的参考信息确定。
可选的,在另一些实施例中,该压缩PI中可以包括压缩指示信息,根据该压缩指示信息可以确定该PI中的一个应用程序的版本信息、一个应用程序信息和一个参考信息均是压缩后的应用程序的版本信息、应用程序信息和参考信息。在此情况下,可以确定该N个PI中的应用程序信息是该压缩PI中的应用程序信息,该N个PI中的应用程序的版本信息是该压缩PI中的应用程序的版本信息,该N个PI中的参考信息可以根据该压缩PI中的参考信息确定。
可选的,在另一些实施例中,当该压缩PI中仅包括一个应用程序的版本信息、N个应用程序信息和一个参考信息,则可以确定该N个PI中的N个应用程序信息分别是该压缩PI中的N个应用程序信息,该N个PI中的应用程序的版本信息是该压缩PI中的应用程序的版本信息,该N个PI中的参考信息可以根据该压缩PI中的参考信息确定。
可选的,在另一些实施例中,该压缩PI中可以包括压缩指示信息,根据该压缩指示信息可以确定该PI中的一个应用程序的版本信息和一个参考信息均是压缩后的应用程序的版本信息和参考信息,应用程序信息不是压缩后的应用程序信息。在此情况下,可以确定该N个PI中的N个应用程序信息分别是该压缩PI中的N个应用程序信息,该N个PI中的应用程序的版本信息是该压缩PI中的应用程序的版本信息,该N个PI中的参考信息可以根据该压缩PI中的参考信息确定。
可选的,在一些实施例中,在得到了该N个数据块和N个PI后,还可以确定出该N个数据块和该N个PI是经过冗余删除后得到的。因此,可以将该N个数据块和N个PI恢复为冗余删除前的数据。换句话说,可以将被删除的冗余数据块和对应的PI重新插入到该N个数据块和N个PI中,得到M个数据块和M个PI。可以根据被删除的冗余的待压缩数据块的相关信息来确定是否有冗余的待压缩数据块被删除,以及在确定有被删除的数据块的情况下,确定被删除的数据块的具体位置以及是哪些数据块的冗余数据块被删除。
例如,确定数据块1的一个冗余的数据块被删除,被删除的数据块是第5个数据块。在此情况下,则在第4个数据块后增加一个数据块1,并在第4个PI后增加一个与对应于数据块1的PI相同的PI。
可选的,在一些实施例中,还可以对该M个数据块和M个PI进行数据块和PI分离操作的逆操作。换句话说,可以将分离排列的数据块和PI恢复为交错排列的数据块和PI。
如上所述,如图9所示的解压缩数据的方法是用于对采用如图1所示的方法得到的压缩数据进行解压缩的方法,因此如图9所示的解压缩数据的方法具体实现方式相当于是如图1所示的压缩数据的方法的实现方式的逆过程。因此,如图9所示的解压缩数据的方法的具体内容可以参见如图1至图8所示的实施例,在此就不必赘述。
图10是根据本申请实施例提供的数据压缩装置的结构示意图。该数据压缩装置可以为存储阵列、分布式存储系统等,还可以是主机或服务器等,也可以是数据压缩硬件,如压缩卡等。如图10所示,数据压缩装置1000可以包括获取单元1001和压缩单元1002。
获取单元1001,用于获取N个待压缩数据块以及N个保护信息PI,其中该N个待压缩数据块与该N个PI一一对应,N为大于或等于2的正整数。
压缩单元1002,用于对该N个待压缩数据块进行压缩,得到压缩数据块。
压缩单元1002,用于对该N个PI压缩,得到压缩PI。
获取单元1001和压缩单元1002的具体功能和有益效果可以参见图1至图8的实施例,在此就不必赘述。
一种可能的实施例中,该数据压缩装置可单元可以由本发明实施例中的处理器实现。另一种实现,该数据压缩装置各单元可以由软件实现,或者软件与硬件相结合实现。
与图10所示的数据压缩装置相对应,图11是根据本申请实施例提供的数据解压缩装置的结构示意图。如图11所示,数据解压缩装置1100可以包括获取单元1101和解压缩单元1102。
获取单元1101,用于获取待解压数据,其中该待解压数据包括压缩数据块和压缩保护信息PI。
解压缩单元1102,用于对该压缩数据块进行解压,得到N个数据块,N为大于或等于2的正整数。
解压缩单元1102,还用于根据该压缩PI和该N个数据块,确定N个PI,其中该N个数据块与该N个PI一一对应。
获取单元1101和解压缩单元1102的具体功能和有益效果可以参见图9的实施例,在此就不必赘述。
一种可能的实施例中,该数据解压缩装置各单元可以由本发明实施例中的处理器实现。另一种实现,该数据解压缩装置各单元可以由软件实现,或者软件与硬件相结合实现。
图12是根据本申请实施例提供的存储阵列的控制器的结构框图。如图12所示,存储阵列的控制器1200包括中央处理器(central processing unit,CPU)1201、存储器1202,CPU 1201和存储器1202之间通过内部连接通路互相通信。CPU 1201可以用于对数据进行处理,以及对存储阵列的控制器进行控制,执行软件程序,处理软件程序的数据等。存储器1202主要用于存储软件程序和数据。可以理解的除了如图12所示的CPU和存储器之外,该存储阵列的控制器还可以包括其他组件。
本申请实施例还提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的压缩数据的方法。
本申请实施例还提供一种包含指令的计算机程序产品,该指令被执行时执行上述方法实施例中的压缩数据的方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的解压缩数据的方法。
本申请实施例还提供一种包含指令的计算机程序产品,该指令被执行时执行上述方法实施例中的解压缩数据的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所披露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。
Claims (20)
1.一种压缩数据的方法,其特征在于,所述方法包括:
获取N个待压缩数据块以及N个保护信息PI,其中所述N个待压缩数据块与所述N个PI一一对应,N为大于或等于2的正整数;
对所述N个待压缩数据块进行压缩,得到压缩数据块;
对所述N个PI压缩,得到压缩PI。
2.如权利要求1所述的方法,其特征在于,所述N个PI包含具有特定规律的信息;
所述对N个PI压缩,得到压缩PI,包括:根据所述具有特定规律的信息,对所述N个PI压缩,得到所述压缩PI。
3.如权利要求1或2所述的方法,其特征在于,用于存储所述N个待压缩数据块的地址是连续的,用于存储所述N个PI的地址是连续的。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述获取N个待压缩数据块以及N个保护信息PI,包括:
获取M个待压缩数据块和M个PI,其中所述M个待压缩数据块与所述M个PI一一对应,所述M个待压缩数据块包括所述N个待压缩数据块,所述M个PI包括所述N个PI,其中M为大于或等于N的正整数;
判断所述M个待压缩数据块中是否包括冗余的待压缩数据块;
当所述M个待压缩数据块中包括冗余的待压缩数据块,从所述M个待压缩数据块中删除所述冗余的待压缩数据块得到所述N个待压缩数据块,从所述M个PI中删除对应于所述冗余的待压缩数据块的PI得到所述N个PI;
当所述M个待压缩数据块中不包括所述冗余的待压缩数据块,所述M个待压缩数据块为所述N个待压缩数据块,所述M个PI为所述N个PI。
5.如权利要求4所述的方法,其特征在于,所述判断所述M个待压缩数据块中是否包括冗余的待压缩数据块,包括:
判断所述M个PI中是否包括校验信息相同的多个PI。
6.如权利要求5所述的方法,其特征在于,
当所述M个PI中的校验信息均不同,所述M个待压缩数据块中不包括所述冗余的待压缩数据块;
当所述M个PI中K个PI中的校验信息相同,逐字节比较与所述K个PI对应的K个待压缩数据块,其中K为大于或等于2且小于或等于M的正整数;
当所述K个待压缩数据块中逐字节比较的结果均不同,所述K个待压缩数据块中不包括所述冗余的待压缩数据块;
当所述K个待压缩数据块中的K’个待压缩数据块逐字节比较的结果相同,K’个待压缩数据块中包括K’-1个所述冗余的待压缩数据块,其中K’为大于或等于2且小于或等于K的正整数。
7.一种解压缩数据的方法,其特征在于,所述方法包括:
获取待解压数据,其中所述待解压数据包括压缩数据块和压缩保护信息PI;
对所述压缩数据块进行解压,得到N个数据块,N为大于或等于2的正整数;
根据所述压缩PI和所述N个数据块,确定N个PI,其中所述N个数据块与所述N个PI一一对应。
8.如权利要求7所述的方法,其特征在于,所述根据所述压缩PI和所述N个数据块,确定N个PI包括:
根据所述N个数据块,确定N个校验信息;
根据所述压缩PI,确定N个信息,其中所述N个信息具有特定规律,所述压缩PI中包含所述N个信息中的一个;
确定所述N个PI,其中所述N个PI中的每个PI包括所述N个校验信息中的一个,所述N个PI中的每个PI包括所述N个信息中的一个。
9.如权利要求7或8所述的方法,其特征在于,用于存储所述N个数据块的地址是连续的,用于存储所述N个PI的地址是连续的。
10.如权利要求7至9中任一项所述的方法,其特征在于,所述方法还包括:根据所述N个数据块和所述N个PI,确定M个数据块和M个PI,其中所述M个数据块与所述M个PI一一对应,所述M个数据块包括所述N个数据块,所述M个PI包括所述N个PI,其中M为大于N的正整数,所述M个数据块中的M-N个数据块是所述N个数据块中的至少一个数据块的冗余的数据块,所述M个PI中的M-N个PI是与所述冗余的数据块对应的PI,M为大于N的正整数。
11.一种数据压缩装置,其特征在于,所述数据压缩装置包括:
获取单元,用于获取N个待压缩数据块以及N个保护信息PI,其中所述N个待压缩数据块与所述N个PI一一对应,N为大于或等于2的正整数;
压缩单元,用于对所述N个待压缩数据块进行压缩,得到压缩数据块;
所述压缩单元,还用于对所述N个PI压缩,得到压缩PI。
12.如权利要求11所述的数据压缩装置,其特征在于,所述N个PI包含具有特定规律的信息;
所述压缩单元,具体用于根据所述具有特定规律的信息,对所述N个PI压缩,得到所述压缩PI。
13.如权利要求11或12所述的数据压缩装置,其特征在于,所述计算机装置还包括存储单元,所述存储单元中用于存储所述N个待压缩数据块的地址是连续的,用于存储所述N个PI的地址是连续的。
14.如权利要求11至13中任一项所述的数据压缩装置,其特征在于,所述获取单元,具体用于获取M个待压缩数据块和M个PI,其中所述M个待压缩数据块与所述M个PI一一对应,所述M个待压缩数据块包括所述N个待压缩数据块,所述M个PI包括所述N个PI,其中M为大于或等于N的正整数;
所述获取单元,具体用于判断所述M个待压缩数据块中是否包括冗余的待压缩数据块;
当所述M个待压缩数据块中包括冗余的待压缩数据块,从所述M个待压缩数据块中删除所述冗余的待压缩数据块得到所述N个待压缩数据块,从所述M个PI中删除对应于所述冗余的待压缩数据块的PI得到所述N个PI;
当所述M个待压缩数据块中不包括所述冗余的待压缩数据块,所述M个待压缩数据块为所述N个待压缩数据块,所述M个PI为所述N个PI。
15.如权利要求14所述的数据压缩装置,其特征在于,所述获取单元,具体用于判断所述M个PI中是否包括校验信息相同的多个PI。
16.如权利要求15所述的数据压缩装置,其特征在于,所述获取单元,具体用于
当所述M个PI中的校验信息均不同,所述M个待压缩数据块中不包括所述冗余的待压缩数据块;
当所述M个PI中K个PI中的校验信息相同,逐字节比较与所述K个PI对应的K个待压缩数据块,其中K为大于或等于2且小于或等于M的正整数;
当所述K个待压缩数据块中逐字节比较的结果均不同,所述K个待压缩数据块中不包括所述冗余的待压缩数据块;
当所述K个待压缩数据块中的K’个待压缩数据块逐字节比较的结果相同,K’个待压缩数据块中包括K’-1个所述冗余的待压缩数据块,其中K’为大于或等于2且小于或等于K的正整数。
17.一种数据解压缩装置,其特征在于,所述数据解压缩装置包括:
获取单元,用于获取待解压数据,其中所述待解压数据包括压缩数据块和压缩保护信息PI;
解压缩单元,用于对所述压缩数据块进行解压,得到N个数据块,N为大于或等于2的正整数;
所述解压缩单元,还用于根据所述压缩PI和所述N个数据块,确定N个PI,其中所述N个数据块与所述N个PI一一对应。
18.如权利要求17所述的数据解压缩装置,其特征在于,所述解压缩单元,具体用于根据所述N个数据块,确定N个校验信息;
所述解压缩单元,具体用于根据所述压缩PI,确定N个信息,其中所述N个信息具有特定规律,所述压缩PI中包含所述N个信息中的一个;
所述解压缩单元,具体用于确定所述N个PI,其中所述N个PI中的每个PI包括所述N个校验信息中的一个,所述N个PI中的每个PI包括所述N个信息中的一个。
19.如权利要求17或18所述的数据解压缩装置,其特征在于,所述装置,还包括存储单元,所述存储单元中用于存储所述N个数据块的地址是连续的,用于存储所述N个PI的地址是连续的。
20.如权利要求17至19中任一项所述的数据解压缩装置,其特征在于,所述获取单元,还用于根据所述N个数据块和所述N个PI,确定M个数据块和M个PI,其中所述M个数据块与所述M个PI一一对应,所述M个数据块包括所述N个数据块,所述M个PI包括所述N个PI,其中M为大于N的正整数,所述M个数据块中的M-N个数据块是所述N个数据块中的至少一个数据块的冗余的数据块,所述M个PI中的M-N个PI是与所述冗余的数据块对应的PI,M为大于N的正整数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018138390 | 2018-10-31 | ||
RURU2018138390 | 2018-10-31 | ||
PCT/CN2019/110589 WO2020088211A1 (zh) | 2018-10-31 | 2019-10-11 | 压缩数据、解压缩数据的方法和相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110945792A true CN110945792A (zh) | 2020-03-31 |
CN110945792B CN110945792B (zh) | 2024-07-16 |
Family
ID=69913064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980001933.3A Active CN110945792B (zh) | 2018-10-31 | 2019-10-11 | 压缩数据、解压缩数据的方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110945792B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6452602B1 (en) * | 1999-12-13 | 2002-09-17 | Ati International Srl | Method and apparatus for storing compressed data |
CN1728561A (zh) * | 2004-07-30 | 2006-02-01 | 郭鹏 | 一种多数列——局部数字特征定位压缩/解压缩方法 |
CN103942292A (zh) * | 2014-04-11 | 2014-07-23 | 华为技术有限公司 | 虚拟机镜像文件处理方法、装置及系统 |
CN104572987A (zh) * | 2015-01-04 | 2015-04-29 | 浙江大学 | 一种通过压缩提高简易再生码存储效率的方法和系统 |
US9268711B1 (en) * | 2011-11-30 | 2016-02-23 | Emc Corporation | System and method for improving cache performance |
CN105511812A (zh) * | 2015-12-10 | 2016-04-20 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统大数据优化方法及装置 |
CN106648955A (zh) * | 2016-11-15 | 2017-05-10 | 杭州华为数字技术有限公司 | 压缩方法及相关装置 |
-
2019
- 2019-10-11 CN CN201980001933.3A patent/CN110945792B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6452602B1 (en) * | 1999-12-13 | 2002-09-17 | Ati International Srl | Method and apparatus for storing compressed data |
CN1728561A (zh) * | 2004-07-30 | 2006-02-01 | 郭鹏 | 一种多数列——局部数字特征定位压缩/解压缩方法 |
US9268711B1 (en) * | 2011-11-30 | 2016-02-23 | Emc Corporation | System and method for improving cache performance |
CN103942292A (zh) * | 2014-04-11 | 2014-07-23 | 华为技术有限公司 | 虚拟机镜像文件处理方法、装置及系统 |
CN104572987A (zh) * | 2015-01-04 | 2015-04-29 | 浙江大学 | 一种通过压缩提高简易再生码存储效率的方法和系统 |
CN105511812A (zh) * | 2015-12-10 | 2016-04-20 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统大数据优化方法及装置 |
CN106648955A (zh) * | 2016-11-15 | 2017-05-10 | 杭州华为数字技术有限公司 | 压缩方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110945792B (zh) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8751462B2 (en) | Delta compression after identity deduplication | |
EP3896564A1 (en) | Data processing method and device, and computer readable storage medium | |
CN107305586B (zh) | 索引生成方法、索引生成装置及搜索方法 | |
CN107682016B (zh) | 一种数据压缩方法、数据解压方法及相关系统 | |
CN111125033B (zh) | 一种基于全闪存阵列的空间回收方法及系统 | |
EP3051700A1 (en) | Hardware efficient fingerprinting | |
CN111158948A (zh) | 基于去重的数据存储与校验方法、装置及存储介质 | |
CN111274245B (zh) | 一种用于优化数据存储的方法和装置 | |
US8909606B2 (en) | Data block compression using coalescion | |
US10324963B2 (en) | Index creating device, index creating method, search device, search method, and computer-readable recording medium | |
CN111124940B (zh) | 一种基于全闪存阵列的空间回收方法及系统 | |
CN110888918A (zh) | 相似数据检测方法及装置、计算机设备和存储介质 | |
CN117112004A (zh) | 差分数据确定方法、差分还原方法、装置、设备及介质 | |
WO2021082926A1 (zh) | 一种数据压缩的方法及装置 | |
US11411577B2 (en) | Data compression method, data decompression method, and related apparatus | |
JP5492103B2 (ja) | バックアップ装置、バックアップ方法、データ圧縮方法、バックアッププログラムおよびデータ圧縮プログラム | |
CN110945792B (zh) | 压缩数据、解压缩数据的方法和相关装置 | |
CN114625697B (zh) | 文件系统恢复方法、装置、电子设备及存储介质 | |
US9176973B1 (en) | Recursive-capable lossless compression mechanism | |
CN111625186B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN103049388B (zh) | 一种分页存储器件的压缩管理方法及装置 | |
CN115454343A (zh) | 一种基于raid芯片的数据处理方法、装置及介质 | |
CN114691813A (zh) | 数据传输方法、装置、电子设备和计算机可读存储介质 | |
CN109408290B (zh) | 一种基于InnoDB的碎片文件恢复方法、装置及存储介质 | |
JP2022070104A (ja) | データ圧縮装置及びデータ圧縮方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |