压缩方法及相关装置制造方法及图纸

技术编号:15329313 阅读:118 留言:0更新日期:2017-05-16 13:01
本发明专利技术涉及计算机技术领域,特别是涉及压缩技术。在一种压缩方法中,包括:获取原始数据;对原始数据进行压缩,得到压缩结果;对压缩结果进行解压缩,得到解压缩结果;校验解压缩结果与原始数据是否一致;若一致,输出压缩结果;若不一致,输出原始数据。相较于现有技术,本发明专利技术提供的方案,在压缩原始数据之后,存储之前,会对压缩结果进行解压缩,得到解压缩结果,并校验解压缩结果与原始数据是否一致。若一致,输出压缩结果,也即对压缩结果进行存储。若不一致,说明解压缩后得到的数据和原始数据不一致,则抛弃压缩结果,输出原始数据,对原始数据进行存储。这样可避免解压缩后得到的数据有可能和原始数据不一致的现象的出现。

Compression method and related device

The invention relates to the technical field of computers, in particular to compression technology. In a compression method, obtaining the original data; the original data was compressed by compression results; decompress compression results, get decompression results; check whether the results are consistent with the original data decompression; if consistent output compression results; if not, the output of raw data. Compared with the prior art, the invention provides the program before storage after compression, the original data will decompress compression decompression results, get results, and check whether the results are consistent with the original data decompression. If consistent, output compression results, that is, the compression results are stored. If inconsistent, the data obtained after decompression is not consistent with the original data, then the compression result is discarded, the raw data is output, and the original data is stored. This avoids the possibility that the data obtained after decompression may be inconsistent with the original data.

【技术实现步骤摘要】
压缩方法及相关装置
本专利技术涉及计算机
,特别是涉及压缩技术。
技术介绍
在数据洪水爆发的今天,面对数据的急剧膨胀,存储设备(例如磁盘阵列)需要进行数据压缩来有效实现数据容量缩减:假设存储空间是1TB,但用户需要存储的数据是1.3TB。则存储设备可对上述1.3TB的原始数据进行压缩,将压缩结果(数据)存储,这样可以节约存储空间,并且这种压缩对用户而言是透明的;在需要读取数据时,则需要先对压缩数据进行解压缩。然而在实际应用过程中,专利技术人发现:解压缩后得到的数据有可能和原始数据不一致,对外表现为数据损坏,这进一步可能引起上层应用异常,如导致虚拟机、数据库等应用宕机。
技术实现思路
本专利技术的目的在于提供压缩方法及相关装置,以解决上述问题。为实现上述目的,本专利技术提供了如下方案:一方面,本申请的实施例提供一种压缩方法,该压缩方法由存储设备中的控制器中的处理器或硬件加速卡,与其他部件交互完成。该压缩方法包括:获取原始数据;对原始数据进行压缩,得到压缩结果;对压缩结果进行解压缩,得到解压缩结果;校验解压缩结果与原始数据是否一致;若一致,输出压缩结果;若不一致,输出原始数据。相较于现有技术,本专利技术提供的方案,在压缩原始数据之后、存储之前,会对压缩结果进行解压缩,得到解压缩结果,并校验解压缩结果与原始数据是否一致。若一致,输出压缩结果,也即对压缩结果进行存储。若不一致,说明解压缩后得到的数据和原始数据不一致,则抛弃压缩结果,输出原始数据,对原始数据进行存储。这样可避免解压缩后得到的数据有可能和原始数据不一致的现象的出现。在一个可能的设计中,在对原始数据进行压缩之前或在校验解压缩结果与原始数据是否一致之前,还可先计算原始数据的校验数据。此外,在校验解压缩结果与原始数据是否一致之前,还可先计算解压缩数据的校验数据。而校验所述解压缩结果与所述原始数据是否一致的步骤,可具体细化为:比较原始数据的检验数据与解压缩结果的校验数据是否一致。若一致,输出压缩结果;若不一致,输出原始数据。从而可以更好得避免解压缩后得到的数据和原始数据不一致的问题。在一个可能的设计中,上述原始数据的校验数据可包括原始数据的校验码(例如CRC码)和原始数据的长度的至少一种。而解压缩结果的校验数据可包括:解压缩结果的校验码(例如CRC校验码)和解压缩结果的长度的至少一种。为便于区分,可将原始数据的校验码称为第一校验码,将原始数据的长度称为第一长度,将解压缩结果的校验码称为第二校验码,将解压缩结果的长度称为第二长度。若原始数据的校验数据包括第一校验码和第一长度,则解压缩结果的校验数据相应的包括第二校验码和第二长度;若原始数据的校验数据仅包括第一校验码,则解压缩结果的校验数据相应的仅包括第二校验码;而若原始数据的校验数据仅包括第一长度,则解压缩结果的校验数据相应的仅包括第二长度。在本专利技术其他实施例中,也可用哈希算法分别得到原始数据和解压缩结果的哈希值,将二者的哈希值作为校验码。本实施例提供了校验数据的具体内容,从而可以更好得避免解压缩后得到的数据和原始数据不一致的问题。在一个可能的设计中,也可直接对解压缩结果和原始数据进行逐个字节对比,这种方式相对比较简单。再一方面,本专利技术实施例提供了一种存储设备,该存储设备具有实现上述方法实际中存储设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。又一方面,本专利技术实施例提供了一种计算机存储介质,用于储存为上述存储设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。相较于现有技术,本专利技术提供的方案,在压缩原始数据之后、存储之前,会对压缩结果进行解压缩,得到解压缩结果,并校验解压缩结果与原始数据是否一致。若一致,输出压缩结果,也即对压缩结果进行存储。若不一致,说明解压缩后得到的数据和原始数据不一致,则抛弃压缩结果,输出原始数据,对原始数据进行存储。这样可避免解压缩后得到的数据有可能和原始数据不一致的现象的出现。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的应用场景示意图;图2a和图2b为本专利技术实施例提供的控制器的示例性结构图;图3a、图4为本专利技术实施例提供的压缩方法示例性流程图;图3b为现有的压缩方法的示例性结构图;图5为本专利技术实施例提供的压缩装置(特别是硬件加速卡)的结构示例图;图6为本专利技术实施例提供的硬件加速卡内部的数据流向示意图。具体实施方式本专利技术实施例提供了压缩方法及相关装置(压缩装置、存储设备/系统、硬件加速数据卡)。上述存储设备/系统具体可为磁盘阵列等。图1描绘了本专利技术实施例提供的存储设备/系统的组成图,包括至少一个控制器101和硬盘框102。控制器101可以是一种计算设备,如服务器、台式计算机等等。在控制器101上安装有操作系统以及其他应用程序。控制器101可以接收来自应用主机的输入输出(I/O)请求,存储I/O请求中携带的数据,并将数据写入硬盘框102中。硬盘框102则可包括一个或多个硬盘。在一个应用场景下,控制器101可以通过SAN网络与应用主机(图中未示出)连接。硬盘框102则可包括一个或多个硬盘。例如,可安装20个硬盘。图2a是上述控制器101的一种结构示例图,如图2a所示,控制器101可包括通过总线相连的处理器201、存储器202、通信接口203(可进一步包括前端接口卡和后端接口卡),以及输入设备204和输出设备205。其中,前端接口卡可用于和应用主机通信,控制器101的处理器201可以通过前端接口卡接收应用主机的各种操作指令。控制器101的处理器201可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本专利技术实施例的一个或多个集成电路。在本专利技术实施例中,处理器201可以用于接收来自应用主机的写数据请求或者读数据请求、处理所述写数据请求或者读数据请求,以及将所述写数据请求或者读数据请求发送给cache等其他操作。存储器202可用于存储数据。更具体的,存储器202可包含内存、缓存(例如图2b中的cache206)。内存可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可以理解的是,内存可以为随机存储器(Random-AccessMemory,RAM)、磁碟、硬盘、光盘、固态硬盘(SolidStateDisk,SSD)或者非易失性存储器等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。需要说明的是,在实施例中内存也可集成缓存功能。后端接口卡,可用于和硬盘框102中的硬盘通信,控制器101的处理器201可以通过后端接口卡将数据发送给硬盘框102中的硬盘存储。需要说明的是,若硬盘框102和控制器101共同安装在一个框内,内部就集成了后端接口卡。而若硬盘框102和控制器101独立安装在不同的框中,则后端接口卡可不与其他部件集成在一起。上述压缩装置可以本文档来自技高网...
压缩方法及相关装置

【技术保护点】
一种压缩方法,其特征在于,包括:获取原始数据;对所述原始数据进行压缩,得到压缩结果;对所述压缩结果进行解压缩,得到解压缩结果;校验所述解压缩结果与所述原始数据是否一致;若一致,输出所述压缩结果;若不一致,输出所述原始数据。

【技术特征摘要】
1.一种压缩方法,其特征在于,包括:获取原始数据;对所述原始数据进行压缩,得到压缩结果;对所述压缩结果进行解压缩,得到解压缩结果;校验所述解压缩结果与所述原始数据是否一致;若一致,输出所述压缩结果;若不一致,输出所述原始数据。2.如权利要求1所述的方法,其特征在于,在对所述原始数据进行压缩之前或在校验解压缩结果与原始数据是否一致之前,还包括:计算所述原始数据的校验数据。3.如权利要求2所述的方法,其特征在于,在校验所述解压缩结果与所述原始数据是否一致之前,还包括:计算所述解压缩结果的校验数据。4.如权利要求3所述的方法,其特征在于,所述校验所述解压缩结果与所述原始数据是否一致包括:比较所述原始数据的检验数据与所述解压缩结果的校验数据是否一致。5.如权利要求4所述的方法,其特征在于,所述原始数据的校验数据包括:所述原始数据的循环冗余校验CRC码和所述原始数据的长度的至少一种。6.如权利要求4所述的方法,其特征在于,所述解压缩结果的校验数据包括:所述解压缩结果的CRC码和所述解压缩结果的长度的至少一种。7.如权利要求1所述的方法,其特征在于,所...

【专利技术属性】
技术研发人员:王涛
申请(专利权)人:杭州华为数字技术有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1