一种压缩方法、系统、装置及计算机可读存储介质与流程

文档序号:15566655发布日期:2018-09-29 03:30阅读:167来源:国知局

本发明涉及数据压缩技术领域,更具体地说,涉及一种压缩方法、系统、装置及计算机可读存储介质。



背景技术:

在大数据时代,压缩技术能够节省实际存储空间,降低产品的成本。现有的一种压缩方法是软件压缩方法,即采用软件对数据进行压缩与解压缩。

然而,现有的软件压缩方法的灵活性较低,比如需要占用大量cpu运算,影响存储系统的整体处理性能等。

综上所述,如何提供一种灵活性更好的压缩方案是目前本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种压缩方法,其能在一定程度上解决如何提供一种灵活性更好的压缩方法的技术问题。本发明还提供了一种压缩系统、装置及计算机可读存储介质。

为了实现上述目的,本发明提供如下技术方案:

一种压缩方法,包括:

判断目标数据的压缩方式,若是软件压缩方式,则基于预设的压缩软件对所述目标数据进行压缩;若是硬件压缩方式,则发送所述目标数据至预设的硬件压缩设备,以基于所述硬件压缩设备对所述目标数据进行压缩;

其中,所述硬件压缩设备包括内置有硬件压缩芯片的设备。

优选的,判断所述目标数据的压缩方式为硬件压缩方式之后,所述发送所述目标数据至预设的硬件压缩设备之前,还包括:

判断所述硬件压缩设备是否正常,若否,则基于所述压缩软件对所述目标数据进行压缩;若是,则执行所述发送所述目标数据至预设的硬件压缩设备的步骤。

优选的,所述基于预设的压缩软件对所述目标数据进行压缩之后,还包括:

在软件压缩后的目标数据中写入软件压缩方式的标记;

所述发送所述目标数据至预设的硬件压缩设备,以基于所述硬件压缩设备对所述目标数据进行压缩之后,还包括:

在硬件压缩后的目标数据中写入硬件压缩方式的标记。

优选的,所述在硬件压缩后的目标数据中写入硬件压缩方式的标记之后,还包括:

接收到解压缩指令后,判断所述硬件压缩设备是否正常,若是,则基于所述硬件压缩设备对硬件压缩后的目标数据进行解压缩;若否,则基于所述压缩软件对所述硬件压缩后的目标数据进行解压缩,其中,所述压缩软件的解压缩算法包括所述硬件压缩设备的解压缩算法。

优选的,所述判断目标数据的压缩方式,包括:

读取所述目标数据绑定的压缩方式类型,若所述压缩方式类型为软件压缩方式类型,则判断出所述目标数据的压缩方式为软件压缩方式;若所述压缩方式类型为硬件压缩方式类型,则判断出所述目标数据的压缩方式为硬件压缩方式。

优选的,所述判断目标数据的压缩方式,包括:

接收输入端口传输的所述目标数据的压缩指令,解析所述压缩指令,若所述压缩指令为软件压缩指令,则判断出所述目标数据的压缩方式为软件压缩方式;若所述压缩指令为硬件压缩指令,则判断出所述目标数据的压缩方式为硬件压缩方式。

优选的,所述判断所述目标数据的压缩方式,包括:

预估基于预设的压缩软件对所述目标数据进行压缩所占用的cpu运算;

比较所述cpu运算是否大于等于预设的cpu运算阈值,若是,则判断出所述目标数据的压缩方式为硬件压缩方式;若否,则判断出所述目标数据的压缩方式为软件压缩方式。

一种压缩系统,包括:

判断模块,用于判断目标数据的压缩方式;

软件压缩模块,用于若判断模块判断出所述压缩方式是软件压缩方式,则基于预设的压缩软件对所述目标数据进行压缩;

发送模块,用于若判断模块判断出所述压缩方式是硬件压缩方式,则发送所述目标数据至预设的硬件压缩设备,以基于所述硬件压缩设备对所述目标数据进行压缩;

其中,所述硬件压缩设备包括内置有硬件压缩芯片的设备。

一种压缩装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上任一所述的压缩方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述的压缩方法的步骤。

本发明提供的一种压缩方法,先判断目标数据的压缩方式,若是软件压缩方式,则基于预设的压缩软件对目标数据进行压缩;若是硬件压缩方式,则发送目标数据至预设的硬件压缩设备,以基于硬件压缩设备对目标数据进行压缩,也即用硬件压缩方式对目标数据进行压缩。可以看出,本发明提供的一种压缩方法可以灵活地在硬件压缩方式与软件压缩方式间进行选择,进而可以选择最适合实际情况的压缩方式对目标数据进行压缩。与现有技术中仅采用软件压缩方式的压缩方法相比,可以借助硬件压缩方法降低软件压缩方法对存储系统整体处理性能的影响。综上所述,本发明提供的一种压缩方法在一定程度上解决了如何提供一种灵活性更好的压缩方案的技术问题。本发明提供的一种压缩系统、设备及计算机可读存储介质也解决了相应技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种压缩方法的流程图;

图2为实际应用中压缩系统通过线程与硬件压缩设备连接的结构示意图;

图3为本发明实施例提供的一种压缩系统的结构示意图;

图4为本发明实施例提供的一种压缩设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的一种压缩方法中各个步骤的动作执行主体可以为本发明实施例提供的一种压缩系统,而该系统可以内置于计算机、服务器等中,所以本发明实施例提供的一种压缩方法中各个步骤的动作执行主体也可以为内置了该系统的计算机、服务器等。为了描述方便,这里将本发明实施例提供的一种压缩方法中各个步骤的动作执行设定为本发明实施例提供的一种压缩系统,简称为压缩系统。

请参阅图1,图1为本发明实施例提供的一种压缩方法的流程图。

本发明实施例提供的一种压缩方法,可以包括以下步骤:

步骤s101:判断目标数据的压缩方式,若是软件压缩方式,则执行步骤s102:基于预设的压缩软件对目标数据进行压缩;若是硬件压缩方式,则执行步骤s103:发送目标数据至预设的硬件压缩设备,以基于硬件压缩设备对目标数据进行压缩;

其中,硬件压缩设备包括内置有硬件压缩芯片的设备。

实际应用中,压缩软件和硬件压缩设备所应用的压缩算法可以是同一种压缩算法,比如均是deflate压缩算法等;压缩软件和硬件压缩设备还可以各自应用一种压缩算法,比如,压缩软件应用lz4压缩算法,硬件压缩设备应用lzma压缩算法等。此外,压缩软件和硬件压缩设备所应用的压缩算法可以根据实际需要进行设定或调整,均不影响本方案的实施。具体应用场景中,硬件压缩设备可以采用intel的895x压缩芯片或者c62x压缩芯片来进行压缩或解压缩,当然也可以采用其他压缩芯片,本发明在这里不做具体限定。在考虑到硬件压缩设备的负载能力时,为了避免硬件压缩设备的负载过大,可以设置多个硬件压缩设备来均衡负载,比如3个、5个等,为了平衡每个硬件压缩设备的负载能力,可以借助线程将压缩软件与每一个硬件压缩设备连接,具体可以为:一个线程对应一个硬件压缩设备,压缩系统通过选择线程将目标数据发送至相对应的硬件压缩设备。请参阅图2,图2为实际应用中压缩系统通过线程与硬件压缩设备连接的结构示意图;图2中,压缩系统通过第一线程与硬件压缩设备1连接,通过第二线程与硬件压缩设备2连接,通过第三线程与硬件压缩设备3连接。

本发明提供的一种压缩方法,先判断目标数据的压缩方式,若是软件压缩方式,则基于预设的压缩软件对目标数据进行压缩;若是硬件压缩方式,则发送目标数据至预设的硬件压缩设备,以基于硬件压缩设备对目标数据进行压缩,也即用硬件压缩方式对目标数据进行压缩。可以看出,本发明提供的一种压缩方法可以灵活地在硬件压缩方式与软件压缩方式间进行选择,进而可以选择最适合实际情况的压缩方式对目标数据进行压缩。与现有技术中仅采用软件压缩方式的压缩方法相比,可以借助硬件压缩方法降低软件压缩方法对存储系统整体处理性能的影响。综上所述,本发明提供的一种压缩方法在一定程度上解决了如何提供一种灵活性更好的压缩方案的技术问题。

本发明实施例提供的一种压缩方法中,判断目标数据的压缩方式为硬件压缩方式之后,发送目标数据至预设的硬件压缩设备之前,还可以包括:

判断硬件压缩设备是否正常,若否,则基于压缩软件对目标数据进行压缩;若是,则执行发送目标数据至预设的硬件压缩设备的步骤。

实际应用中,硬件压缩设备可能会出现故障,这时,压缩系统在判断目标数据的压缩方式为硬件压缩方式之后,可以先判断硬件压缩设备是否正常,若是,则将目标数据发送至硬件压缩设备,若否,则基于压缩软件对目标数据进行压缩。具体应用场景中,压缩系统可以向硬件压缩设备发送测试数据,根据硬件压缩设备是否输出压缩后的测试数据来判断硬件压缩设备是否正常等,若硬件压缩设备输出压缩后的测试数据,则判断出该硬件压缩设备正常,若硬件压缩设备未输出压缩后的测试数据,则判断出该硬件压缩设备不正常。

本发明实施例提供的一种压缩方法中,基于预设的压缩软件对所述目标数据进行压缩之后,还可以包括:

在软件压缩后的目标数据中写入软件压缩方式的标记;

发送目标数据至预设的硬件压缩设备,以基于硬件压缩设备对目标数据进行压缩之后,还可以包括:

在硬件压缩后的目标数据中写入硬件压缩方式的标记。

实际应用中,为了便于压缩系统得知目标数据是由软件压缩方式还是由硬件压缩方式压缩的,压缩系统可以在压缩后的目标数据中写入与目标数据的压缩方式对应的标记,具体过程请参阅本实施例,之后,压缩系统可以根据压缩后的目标数据的标记选择相应的解压缩方式对压缩后的目标数据进行解压缩。此外,还可以设置保存仅用于保存软件压缩后的目标数据的第一存储空间,和仅用于保存硬件压缩后的目标数据的第二存储空间,这样,压缩系统只需在相应的存储空间中查找压缩后的目标数据,便可得知目标数据的压缩方式。

本发明实施例提供的一种压缩方法中,在硬件压缩后的目标数据中写入硬件压缩方式的标记之后,还可以包括:

接收到解压缩指令后,判断硬件压缩设备是否正常,若是,则基于硬件压缩设备对硬件压缩后的目标数据进行解压缩;若否,则基于压缩软件对硬件压缩后的目标数据进行解压缩,其中,压缩软件的解压缩算法包括硬件压缩设备的解压缩算法。

实际应用中,压缩系统在对目标数据进行压缩后,还可能需要对压缩后的目标数据进行解压缩,在此过程中,应该避免硬件压缩设备故障而无法对硬件压缩后的目标数据进行解压缩的情况,具体实施过程请参阅本实施例。应当指出,此种情况下,压缩软件的解压缩算法中需要包含硬件压缩设备的解压缩算法,比如在硬件压缩设备的压缩算法为deflate压缩算法时,压缩软件的解压缩算法中应该包括与deflate压缩算法相对应的inflate解压缩算法。

本发明实施例提供的一种压缩方法中,判断目标数据的压缩方式,具体可以为:

读取目标数据绑定的压缩方式类型,若压缩方式类型为软件压缩方式类型,则判断出目标数据的压缩方式为软件压缩方式;若压缩方式类型为硬件压缩方式类型,则判断出目标数据的压缩方式为硬件压缩方式。

实际应用中,为了快速得知目标数据的压缩方式,压缩系统可以根据目标数据绑定的压缩方式类型来判断目标数据的压缩方式,具体过程请参阅本实施例,这里所说的压缩方式类型可以是由外界预先绑定至目标数据的等。

本发明实施例提供的一种压缩方法中,判断目标数据的压缩方式,具体可以为:

接收输入端口传输的目标数据的压缩指令,解析压缩指令,若压缩指令为软件压缩指令,则判断出目标数据的压缩方式为软件压缩方式;若压缩指令为硬件压缩指令,则判断出目标数据的压缩方式为硬件压缩方式。

实际应用中,为了快速得知目标数据的压缩方式,压缩系统还可以根据自身输入端口传输的目标数据的压缩指令来判断目标数据的压缩方式,具体过程请参阅本实施例。

本发明实施例提供的一种压缩方法中,判断目标数据的压缩方式,具体可以为:

预估基于预设的压缩软件对目标数据进行压缩所占用的cpu运算;

比较cpu运算是否大于等于预设的cpu运算阈值,若是,则判断出目标数据的压缩方式为硬件压缩方式;若否,则判断出目标数据的压缩方式为软件压缩方式。

实际应用中,为了进一步降低软件压缩方式对存储系统整体性能的影响,存储系统可以通过判断基于压缩软件对目标数据进行压缩所消耗的存储系统的资源量是否大于预设的阈值,来判断目标数据的压缩方式,具体过程请参阅本实施例。此外,压缩系统还可以在比较出cpu运算大于等于预设的cpu运算阈值后,将目标数据拆分成两份,压缩软件对这两份数据进行压缩所占用的cpu运算均小于cpu运算阈值,然后基于压缩软件对其中的一份数据进行压缩,发送另一份数据至硬件压缩设备,采用硬件压缩方法对该另一份数据进行压缩,这样可以在一定程度上提高对目标数据的压缩效率。

本发明还提供了一种压缩系统,其具有本发明实施例提供的一种压缩方法具有的对应效果。请参阅图3,图3为本发明实施例提供的一种压缩系统的结构示意图。

本发明实施例提供的一种压缩系统,可以包括:

判断模块101,用于判断目标数据的压缩方式;

软件压缩模块102,用于若判断模块判断出压缩方式是软件压缩方式,则基于预设的压缩软件对目标数据进行压缩;

发送模块103,用于若判断模块判断出压缩方式是硬件压缩方式,则发送目标数据至预设的硬件压缩设备,以基于硬件压缩设备对目标数据进行压缩;

其中,硬件压缩设备包括内置有硬件压缩芯片的设备。

本发明实施例提供的一种压缩系统中,还可以包括:

检测模块,用于在判断模块判断目标数据的压缩方式为硬件压缩方式之后,发送模块发送目标数据至预设的硬件压缩设备之前,判断硬件压缩设备是否正常,若否,则基于压缩软件对目标数据进行压缩;若是,则执行发送目标数据至预设的硬件压缩设备的步骤。

本发明实施例提供的一种压缩系统中,还可以包括:

写入模块,用于在软件压缩模块基于预设的压缩软件对目标数据进行压缩之后,在软件压缩后的目标数据中写入软件压缩方式的标记;在发送模块发送目标数据至预设的硬件压缩设备,并基于硬件压缩设备对目标数据进行压缩之后,在硬件压缩后的目标数据中写入硬件压缩方式的标记。

本发明实施例提供的一种压缩系统中,还可以包括:

解压缩模块,用于在写入模块在硬件压缩后的目标数据中写入硬件压缩方式的标记之后,接收到解压缩指令后,判断硬件压缩设备是否正常,若是,则基于硬件压缩设备对硬件压缩后的目标数据进行解压缩;若否,则基于压缩软件对硬件压缩后的目标数据进行解压缩,其中,压缩软件的解压缩算法包括硬件压缩设备的解压缩算法。

本发明实施例提供的一种压缩系统中,判断模块可以包括:

读取单元,用于读取目标数据绑定的压缩方式类型,若压缩方式类型为软件压缩方式类型,则判断出目标数据的压缩方式为软件压缩方式;若压缩方式类型为硬件压缩方式类型,则判断出目标数据的压缩方式为硬件压缩方式。

本发明实施例提供的一种压缩系统中,判断模块可以包括:

接收单元,用于接收输入端口传输的目标数据的压缩指令,解析压缩指令,若压缩指令为软件压缩指令,则判断出目标数据的压缩方式为软件压缩方式;若压缩指令为硬件压缩指令,则判断出目标数据的压缩方式为硬件压缩方式。

本发明实施例提供的一种压缩系统中,判断模块可以包括:

预估单元,用于预估基于预设的压缩软件对目标数据进行压缩所占用的cpu运算;

比较单元,用于比较cpu运算是否大于等于预设的cpu运算阈值,若是,则判断出目标数据的压缩方式为硬件压缩方式;若否,则判断出目标数据的压缩方式为软件压缩方式。

本发明还提供了一种压缩装置及计算机可读存储介质,其均具有本发明实施例提供的一种压缩方法具有的对应效果。请参阅图4,图4为本发明实施例提供的一种压缩装置的结构示意图。

本发明实施例提供的一种压缩装置,可以包括:

存储器201,用于存储计算机程序;

处理器202,用于执行计算机程序时实现如上任一实施例所描述的压缩方法的步骤。

本发明实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述的压缩方法的步骤。

本发明实施例提供的一种压缩系统、设备及计算机可读存储介质中相关部分的说明请参见本发明实施例提供的一种压缩方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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