CN115599757A - 数据压缩方法、装置、计算设备及存储系统 - Google Patents
数据压缩方法、装置、计算设备及存储系统 Download PDFInfo
- Publication number
- CN115599757A CN115599757A CN202111109332.XA CN202111109332A CN115599757A CN 115599757 A CN115599757 A CN 115599757A CN 202111109332 A CN202111109332 A CN 202111109332A CN 115599757 A CN115599757 A CN 115599757A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- compressed
- characteristic value
- strategy
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据压缩方法、装置、计算设备及存储系统,涉及数据压缩领域。该方法包括:计算设备对待压缩数据进行压缩时,根据影响待压缩数据的压缩结果的参数确定待压缩数据的压缩特征值,根据压缩特征值确定压缩待压缩数据的压缩策略,根据压缩策略对待压缩数据进行压缩得到压缩后数据,并存储压缩后数据。如此,相对于计算设备采用一种压缩算法对不同特征的数据进行压缩,本申请提供的数据压缩方法中计算设备使用的压缩策略是依据影响待压缩数据的压缩结果的特征选取得到,利用匹配待压缩数据的特征的压缩策略对待压缩数据进行压缩,能够有效地提高数据的压缩率。
Description
本申请要求于2021年07月08日提交国家知识产权局、申请号为202110773759.3、申请名称为“一种数据处理的方法、装置和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据压缩领域,尤其涉及一种数据压缩方法、装置、计算设备及存储系统。
背景技术
随着云计算和大数据产业的繁荣,数据中心规模越大,则数据中心存储的数据也越多,更大的数据量和更长的存储周期意味着更高的存储成本。目前,计算设备可以利用压缩算法(如:LZ4、LZO或Snappy等)对待存储数据进行压缩后再存储,从而降低待存储数据的数据量,节省相应的硬盘、节点、机架、场地和运维开销等。在计算设备中,当用户设置好压缩算法后,所有的数据都基于所设置的压缩算法进行数据压缩,导致数据的压缩率比较低。
发明内容
本申请提供了数据压缩方法、装置、计算设备及存储系统,由此来提高数据的压缩率。
第一方面,提供了一种数据压缩方法,该方法可以由计算设备执行,具体包括如下步骤:计算设备对待压缩数据进行压缩时,根据影响待压缩数据的压缩结果的参数确定待压缩数据的压缩特征值,根据压缩特征值确定压缩待压缩数据的压缩策略,根据压缩策略对待压缩数据进行压缩得到压缩后数据,并存储压缩后数据。
如此,相对于计算设备采用一种压缩算法对不同特征的数据进行压缩,本申请提供的数据压缩方法中计算设备使用的压缩策略是依据影响待压缩数据的压缩结果的特征选取得到,利用匹配待压缩数据的特征的压缩策略对待压缩数据进行压缩,能够有效地提高数据的压缩率。
在一种可能的实现方式中,参数包括对待压缩数据进行压缩时所用到的硬件资源的参数及/或描述待压缩数据的数据特征的参数。数据特征的参数包含数据类型、数据块大小和待压缩数据包含的字符的分布中至少一种。硬件资源的参数包含计算设备的处理器的占用率、将压缩后数据存储至存储设备时,计算设备与存储设备之间的网络带宽和存储设备的可用存储容量中的至少一种。
在另一种可能的实现方式中,计算设备存储有多个压缩特征值与压缩策略的对应关系。根据压缩特征值确定压缩待压缩数据的压缩策略,包括:计算设备确定待压缩数据的压缩特征值对应的对应关系中的压缩特征值;根据对应关系所确定的压缩特征值确定压缩特征值对应的压缩策略为压缩待压缩数据的压缩策略。从而,通过预先设置多个压缩特征值与压缩策略的对应关系,使计算设备实时对待压缩数据进行压缩时快速准确地选取匹配待压缩数据的特征的压缩策略。
其中,多个压缩特征值与压缩策略的对应关系可以是依据神经网络训练得到的。
在另一种可能的实现方式中,压缩策略中包括多个压缩窗口;根据压缩策略对待压缩数据进行压缩包括:计算设备根据多个压缩窗口分别对待压缩数据进行压缩,以得到多个压缩后数据;比较多个压缩后数据的压缩率,选择压缩率最高的压缩后数据作为压缩后数据。可理解的,压缩窗口是指搜索待压缩数据中相同字符串的范围,通过多个不同的压缩窗口对待压缩数据中的相同字符串进行搜索,搜索到的相同字符串的长度可能不同,因此可能得到不同压缩率的压缩后数据。从而,利用多级弹性压缩窗口对待压缩数据进行压缩,获得压缩率尽可能高的压缩后数据。
在另一种可能的实现方式中,在得到压缩后数据后,方法还包括:计算设备确定压缩数据时所采用的压缩策略的压缩率;根据压缩率调节对应关系中的压缩特征值和压缩策略的参数。从而,通过更新对应关系中的压缩策略,提升对应关系的准确性,使得计算设备获取更佳匹配待压缩数据的特征的压缩策略,提高数据的压缩率。
第二方面,提供了一种数据压缩装置,所述装置包括用于执行第一方面或第一方面任一种可能设计中的数据压缩方法的各个模块。
第三方面,提供一种计算设备,该计算设备包括至少一个处理器和存储器,存储器用于存储一组计算机指令;当处理器作为第一方面或第一方面任一种可能实现方式中的执行设备执行所述一组计算机指令时,执行第一方面或第一方面任一种可能实现方式中的数据压缩方法的操作步骤。
第四方面,提供一种存储系统,该存储系统包括至少一个计算节点和至少一个存储节点,所述计算节点用于执行第一方面或第一方面任一种可能实现方式中的数据压缩方法的操作步骤,得到压缩后数据,所述存储节点用于存储所述压缩后数据;或者,所述计算节点将待压缩数据传输至所述存储节点,所述存储节点执行第一方面或第一方面任一种可能实现方式中的数据压缩方法的操作步骤,得到压缩后数据,存储所述压缩后数据。
第五方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
第六方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请一个实施例的分布式存储系统的架构示意图;
图2为本申请一个实施例的盘控分离的结构示意图;
图3为本申请一个实施例的集中式存储系统的架构示意图;
图4为本申请一个实施例的数据压缩方法的流程示意图;
图5为本申请一个实施例的确定待压缩数据的压缩特征值的示意图;
图6为本申请一个实施例的字典压缩的过程示意图;
图7为本申请一个实施例的字典压缩的过程示意图;
图8为本申请一个实施例的数据包的结构示意图;
图9为本申请一个实施例的数据压缩装置的结构示意图;
图10为本申请一个实施例的计算设备的结构示意图。
具体实施方式
数据压缩(data compression)是指依据压缩算法对待压缩数据重新组织,以减少待压缩数据中的冗余数据,达到缩减待压缩数据的数据量,减少存储待压缩数据所需的存储空间,提高待压缩数据的压缩率、传输速度和压缩速度的方法。本申请对进行数据压缩的计算设备的具体形态不予限定。计算设备例如是手机终端、平板电脑、笔记本电脑、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、混合现实(MixedReality,MR)设备、扩展现实(Extended Reality,ER)设备或车载终端等。计算设备还可以是边缘设备(例如,携带具有处理能力芯片的盒子)、服务器、分布式存储系统中计算能力的设备或者集中式存储系统中计算能力的设备。
图1为本申请一个实施例的分布式存储系统的架构示意图。如图1所示,本实施例提供的分布式存储系统包括计算节点集群和存储节点集群。
计算节点集群包括一个或多个计算节点110,图1中示出了三个计算节点110,但不限于三个计算节点110。各个计算节点110之间可以通过网络相互通信。计算节点110是一种计算设备,为网络数据的节点和枢纽,负责为网络中的多个客户端或用户同时提供信息服务,如服务器、计算机等。
在硬件上,如图1所示,计算节点110至少包括处理器112、内存113和网卡114。其中,处理器112是一个中央处理器(central processing unit,CPU),用于处理来自计算节点110外部的数据访问请求,或者计算节点110内部生成的请求。
示例性地,处理器112接收用户发送的写数据请求时,会将这些写数据请求中的数据暂时保存在内存113中。当内存113中的数据总量达到一定阈值时,处理器112将内存113中存储的数据发送给存储节点100进行持久化存储。除此之外,处理器112还用于对数据进行计算或处理,例如进行元数据管理、重复数据删除、数据压缩、虚拟化存储空间以及地址转换等。
图1中仅示出了一个CPU 112,在实际应用中,一个计算节点110中的CPU 112的数量可以有多个,其中,一个CPU 112又可以具有一个或多个CPU核。本实施例不对CPU的数量,以及CPU核的数量进行限定。
内存113是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(read only memory,ROM)。举例来说,随机存取存储器是动态随机存取存储器(dynamic random access memory,DRAM),或者存储级存储器(storage class memory,SCM)。
DRAM是一种半导体存储器,与大部分随机存取存储器(random access memory,RAM)一样,属于一种易失性存储器(volatile memory)设备。SCM是一种同时结合传统储存装置与存储器特性的复合型储存技术,存储级存储器能够提供比硬盘更快速的读写速度,但存取速度上比DRAM慢,在成本上也比DRAM更为便宜。然而,DRAM和SCM在本实施例中只是示例性的说明,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(staticrandom access memory,SRAM)等。而对于只读存储器,举例来说,可以是可编程只读存储器(programmable read only memory,PROM)、可抹除可编程只读存储器(erasableprogrammable read only memory,EPROM)等。
另外,内存113还可以是双列直插式存储器模块或双线存储器模块(dual in-linememory module,DIMM),即由动态随机存取存储器(DRAM)组成的模块,还可以是固态硬盘(solid state disk,SSD)。
实际应用中,计算节点110中可配置多个内存113,以及不同类型的内存113。本实施例不对内存113的数量和类型进行限定。此外,可对内存113进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,内存113中存储的数据也不会丢失。具有保电功能的内存被称为非易失性存储器。
网卡114用于与存储节点100通信。例如,当内存113中的数据总量达到一定阈值时,计算节点110可通过网卡114向存储节点100发送请求以对所述数据进行持久化存储。另外,计算节点110还可以包括总线,用于计算节点110内部各组件之间的通信。在功能上,由于图1中的计算节点110的主要功能是计算业务,在存储数据时可以利用远程存储器来实现持久化存储,因此它具有比常规服务器更少的本地存储器,从而实现了成本和空间的节省。但这并不代表计算节点110不能具有本地存储器,在实际实现中,计算节点110也可以内置少量的硬盘,或者外接少量硬盘。任意一个计算节点110可通过网络访问存储节点集群中的任意一个存储节点100。
存储节点集群可以包括多个存储节点100,所述存储节点用于对计算节点传输的数据进行持久化存储,图1中示出了三个存储节点100,但不限于三个存储节点100。例如,可以多于三个存储节点,也可以少于三个存储节点。
一个存储节点100包括一个或多个控制单元101、网卡104与多个硬盘105。网卡104用于与计算节点110通信。硬盘105用于存储数据,可以是磁盘或者其他类型的存储介质,例如固态硬盘或者叠瓦式磁记录硬盘等。控制单元101用于根据计算节点110发送的读/写数据请求,往硬盘105中写入数据或者从硬盘105中读取数据。在读写数据的过程中,控制单元101需要将读/写数据请求中携带的地址转换为硬盘能够识别的地址。由此可见,控制单元101也具有一些简单的计算功能。
在实际应用中,控制单元101可具有多种形态。一种情况下,控制单元101包括CPU和内存。CPU用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘105的数据,或者从硬盘105读取出来将要发送给计算节点110的数据。另一种情况下,控制单元101的数量可以是一个,也可以是两个或两个以上。当存储节点100包含至少两个控制单元101时,硬盘105与控制单元101之间可具有归属关系。当硬盘105与控制单元101之间具有归属关系时,每个控制器只能访问归属于它的硬盘,因此这往往涉及到在控制单元101之间转发读/写数据请求,导致数据访问的路径较长。另外,如果存储空间不足,在存储节点100中增加新的硬盘105时需要重新绑定硬盘105与控制单元101之间的归属关系,操作复杂,导致存储空间的扩展性较差。
因此在另一种实施方式中,控制单元101的功能可以卸载到网卡104上。换言之,在图1所示的实施方式中,存储节点100内部不具有控制单元101,而是由网卡104来完成数据读写、地址转换以及其他计算功能。此时,网卡104是一个智能网卡。它可以包含CPU和内存。CPU用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘105的数据,或者从硬盘105读取出来将要发送给计算节点110的数据。存储节点100中的网卡104和硬盘105之间没有归属关系,网卡104可访问该存储节点100中任意一个硬盘105,因此在存储空间不足时扩展硬盘会较为便捷。
图1所示的存储节点的结构属于盘控一体的架构,即控制单元与硬盘105包括在同一个物理设备中,但在一些实施例中,存储节点的结构也可以为盘控分离的结构,如图2所示,控制和存储作为两个独立设备,即控制设备200和硬盘框300互相连接。控制设备200包括多个控制单元,例如控制单元0和控制单元1,多个控制单元通过网卡104连接至计算节点110。每个控制单元的结构相同,以控制单元0为例,包括前端接口201、CPU202、内存203、及后端接口204,其中前端接口201连接至网卡104,以将计算节点通过网卡发送的数据传输至控制单元0,后端接口204连接至硬盘框,已将经控制单元0处理过的数据传输至硬盘框300进行存储、CPU202与内存203用于处理计算节点110传输的数据或者本地运行的程序的数据,具体请参考计算节点110中的CPU112及内存113的描述,在此不再赘述。硬盘框300作为独立的设备除了硬盘105之外,还包括控制单元301,用于对计算节点传输的数据进行处理后存储至硬盘105,及对硬盘105进行管理。
图1所示的为分布式存储系统的架构图,本申请实施例的方案还可以应用于集中式存储系统。在集中式存储系统中,计算节点的数据存储在一个存储节点中,所述存储节点例如可以为存储阵列。集中式存储系统的架构如图3所示。其中存储节点100与计算节点110结构与图1中的相同,在此不再赘述。图3所示的存储节点100为盘控一体的结构,在集成式存储系统中,存储节点的结构也可以是图2所示的盘控分离的结构。
本申请实施例提供的数据压缩方法,在计算设备对待压缩数据进行压缩时,计算设备根据影响待压缩数据的压缩结果的参数确定待压缩数据的压缩特征值,根据压缩特征值自适应地确定压缩策略,根据压缩策略对待压缩数据进行压缩得到压缩后数据。如此,相对于计算设备采用一种压缩算法对不同特征的数据进行压缩,本申请提供的数据压缩方法中计算设备使用的压缩策略是依据影响待压缩数据的压缩结果的特征选取得到,利用匹配待压缩数据的特征的压缩策略对待压缩数据进行压缩,能够有效地提高数据的压缩率,以使存储设备存储更多的数据,提高存储设备的存储空间利用率。
接下来,结合图4至图8对本申请实施例提供的数据压缩方法进行详细阐述。图4为本申请实施例提供的一种数据压缩方法的流程示意图。如图4所示,该方法包括以下步骤。
步骤410、计算设备获取待压缩数据。
计算设备可以接收外部设备(如:键盘、鼠标、相机、语音接收器等)发送的待压缩数据;或者,计算设备运行应用生成待压缩数据。若计算设备为存储设备,计算设备也可以通过网络接收其他计算设备(如:服务器)发送的待压缩数据。待压缩数据可以是文字、数字、字母、图像和语音等。
步骤420、计算设备采集影响待压缩数据的压缩结果的参数。
影响待压缩数据的压缩结果的参数包括对待压缩数据进行压缩时所用到的硬件资源的参数及/或描述待压缩数据的数据特征的参数。
计算设备对待压缩数据进行压缩前在预设时段(如:几秒或者几十毫秒)内实时采集压缩时所用到的硬件资源的参数。硬件资源的参数包含计算设备的处理器的占用率、将压缩后数据存储至存储设备时,计算设备与存储设备之间的网络带宽、存储设备的带宽和存储设备的可用存储容量等影响数据压缩结果的硬件资源中的至少一种。
处理器的占用率表示处理器的忙闲状态。若处理器的占用率大于或等于阈值,表示处理器处于忙状态,可用的计算资源较少;反之,若处理器的占用率小于阈值,表示处理器处于闲状态,可用的计算资源较多。
可理解的,为了从待压缩数据中搜索到尽可能多的相同字符串,提高待压缩数据的压缩率,计算设备使用的压缩算法可能较复杂。如果计算设备利用复杂度较高的压缩算法对待压缩数据进行压缩,计算设备需要占用较多的计算资源。处理器处于忙状态时,如果计算设备占用较多的计算资源进行数据压缩,由于可用的计算资源较少,压缩时长可能较长。处理器处于闲状态时,由于可用的计算资源较多,即使计算设备占用较多的计算资源进行数据压缩,相对处理器处于忙状态时,压缩时长较短。因此,处理器处于忙状态时,计算设备可以利用复杂度较低的压缩算法对待压缩数据进行压缩,在确保数据的压缩率的前提下,尽可能缩短压缩时长。处理器处于闲状态时,计算设备可以利用复杂度较高的压缩算法对待压缩数据进行压缩,在确保压缩时长的前提下,尽可能地提高数据的压缩率。
计算设备和存储设备可以是两个独立的物理设备。例如上述图1所示的分布式存储系统中的计算节点110或存储节点100。计算设备通过网络向存储设备传输压缩后数据。网络例如是存储区域网络(storage area network,SAN)。计算设备与存储设备之间的网络带宽表示计算设备与存储设备在单位时间(如:1秒)内传输的数据量。计算设备与存储设备之间的网络带宽较大,计算设备与存储设备在单位时间内传输的数据量较多;计算设备与存储设备之间的网络带宽较小,计算设备与存储设备在单位时间内传输的数据量较少。
可理解的,计算设备与存储设备之间的网络带宽较小时,如果计算设备利用压缩率较高的压缩算法进行数据压缩,由于压缩后数据的数据量较小,传输压缩后数据的传输时长较短。计算设备与存储设备之间的网络带宽较大时,由于计算设备与存储设备在单位时间内传输的数据量较多,即使压缩后数据的数据量较大,相对网络带宽较小时,传输时长也可能较短。因此,计算设备与存储设备之间的网络带宽较小时,计算设备可以利用压缩率较高的压缩算法对待压缩数据进行压缩,在确保传输时长的前提下,尽可能地提高数据的压缩率。
存储设备的带宽表示在单位时间(如:1秒)内存储设备所存取的数据量。可理解的,存储设备的带宽较小时,如果计算设备利用压缩率较高的压缩算法进行数据压缩,由于压缩后数据的数据量较小,存储设备存取压缩后数据的时长较短。因此,存储设备的带宽较小时,计算设备可以利用压缩率较高的压缩算法对待压缩数据进行压缩,在确保存取时长的前提下,尽可能地提高数据的压缩率。
存储设备的可用存储容量是指用于存储压缩后数据的存储设备中剩余的可用存储空间。可理解的,存储设备的剩余可用存储容量较大,可存储的数据量越大。存储设备的剩余可用存储容量较小,可存储的数据量越少。存储设备的剩余可用存储容量较小时,计算设备可以利用压缩率较高的压缩算法对待压缩数据进行压缩,尽可能地减少压缩后数据的数据量,提高存储设备的存储空间的利用率。
计算设备可以分析待压缩数据获得到数据特征的参数。数据特征的参数包含数据类型、数据块大小和待压缩数据包含的字符的分布中至少一种。
数据类型包括文字、数字、字母和图像等。可理解的,不同数据类型的数据中字符的重复程度可能不同。例如,数字、字母和图像包含的重复字符可能较多。计算设备可以利用复杂度较高的压缩算法对待压缩数据进行压缩,搜索到尽可能多的相同字符串,提高数据的压缩率。
数据块大小是指计算设备进行数据压缩的单位数据量。例如数据块大小的范围为8千字节(kilobyte,KB)至256KB之间。数据块大小可以由系统管理员预先设置。可理解的,数据块大小越小,数据块中的相同字符可能越少;数据块大小越大,数据块中的相同字符可能越多。数据块大小较大时,计算设备可以利用复杂度较高的压缩算法对待压缩数据进行压缩,搜索到尽可能多的相同字符串,提高数据的压缩率。
待压缩数据包含的字符的分布表示待压缩数据包含的字符的分布规律。例如,待压缩数据包含a和b两个字符,a和b的分布规律可以是aaabbb或ababab或abbabb等。可理解的,对于待压缩数据包含较多的重复字符时,计算设备可以利用复杂度较高的压缩算法对待压缩数据进行压缩,搜索到尽可能多的相同字符串,提高数据的压缩率。
在实际应用中,可以根据具体的应用场景确定需要用的参数,可以仅为硬件资源参数中的至少一种,也可以是仅为表示数据特征的参数中的至少一种,也可以综合考虑硬件资源参数及数据特征参数。具体的参数值可以是系统默认的,也可以是用户根据需要进行设置。
步骤430、计算设备根据影响待压缩数据的压缩结果的参数确定待压缩数据的压缩特征值。
由于计算设备所采集的各个参数的量纲单位往往不一致,为了便于综合考量各个参数对数据压缩结果的影响,计算设备可以将各个参数进行归一化处理,得到量纲统一的参数。在一些实施例中,计算设备可以将参数进行结构化处理得到待压缩数据的压缩特征值。压缩特征值可以是一个特征向量。特征向量中的一个元素代表一个参数。
例如,IA表示待压缩数据的特征向量,IA=[a1,a2,a3,a4,a5,a6,a7],其中,元素a1表示计算设备的处理器的占用率向量,元素a2表示计算设备与存储设备之间的网络带宽向量,元素a3表示存储设备的带宽向量,元素a4表示存储设备的可用存储容量向量,元素a5表示数据类型向量,元素a6表示数据块大小向量,元素a7表示待压缩数据包含的字符的分布向量。
可选地,为了提高后续依据影响待压缩数据的压缩结果的参数确定的待压缩数据的压缩特征值匹配压缩策略的准确度,以及消除冗余参数,计算设备还可以对具有共性特征(如:相同量纲单位)的参数进行合并处理。例如,计算设备可以将计算设备与存储设备之间的网络带宽和存储设备的带宽进行合并。
计算设备存储有多个压缩特征值与压缩策略的对应关系。计算设备可以计算待压缩数据的压缩特征值与对应关系中每个压缩特征值的相似度,将对应关系中相似度最高的压缩特征值确定为与待压缩数据的压缩特征值匹配的压缩特征值。
在一些实施例中,计算设备计算待压缩数据的压缩特征值与对应关系中每个压缩特征值的汉明距离(Hamming Distance),得到多个汉明距离。汉明距离越短,表示待压缩数据的压缩特征值与对应关系的压缩特征值越相似。计算设备可以比较多个汉明距离,选择汉明距离最短的压缩特征值作为对应关系所确定的压缩特征值。待压缩数据的压缩特征值与对应关系的压缩特征值的汉明距离满足公式(1)。
其中,IA表示待压缩数据的压缩特征值,IB表示对应关系的压缩特征值,ai表示待压缩数据的压缩特征值中的元素,bi表示对应关系的压缩特征值中的元素,n表示元素的个数,Dham表示待压缩数据的压缩特征值与对应关系的压缩特征值的汉明距离。
在另一些实施例中,计算设备也可以计算待压缩数据的压缩特征值与对应关系中每个压缩特征值的欧式距离,得到多个欧式距离。计算设备可以比较多个欧式距离,选择欧式距离最短的压缩特征值作为对应关系所确定的压缩特征值。
在另一些实施例中,计算设备可以根据预设距离范围从多个汉明距离或多个欧式距离中选取对应关系所确定的压缩特征值。如果在预设范围内存在多个汉明距离或欧式距离的对应关系的压缩特征值,计算设备可以依据最近邻距离比选取对应关系所确定的压缩特征值,从而,提高匹配对应关系中的压缩特征值的精确度。最近邻距离比满足公式(2)。
其中,β表示最近邻距离比阈值,β的取值范围为0-1。如图5中的(a)所示,点B1和点B2表示对应关系中不同的两个压缩特征值。点O表示待压缩数据的压缩特征值,在预设距离范围内,点O与点B1和点B2的汉明距离或欧式距离相似。如图5中的(b)所示,表示计算设备依据公式(2)确定点B1表示的压缩特征值为对应关系所确定的压缩特征值。
在另一些实施例中,计算设备也可以计算待压缩数据的压缩特征值与对应关系中每个压缩特征值的归一化互相关值,得到多个归一化互相关值。归一化互相关值越接近于1表示待压缩数据的压缩特征值与对应关系的压缩特征值越相似。归一化互相关值越接近于0表示待压缩数据的压缩特征值与对应关系的压缩特征值越不相似。计算设备确定归一化互相关值最接近于1的压缩特征值作为对应关系所确定的压缩特征值。待压缩数据的压缩特征值与对应关系的压缩特征值的归一化互相关值满足公式(3)。
其中,NCC(IA,IB)表示待压缩数据的压缩特征值与对应关系的压缩特征值的归一化互相关值,Sa代表待压缩数据的压缩特征值的方差。Sb代表对应关系的压缩特征值的方差。ua代表待压缩数据的压缩特征值的平均值。ub代表对应关系的压缩特征值的平均值。
步骤440、计算设备根据压缩特征值确定压缩待压缩数据的压缩策略。
计算设备将根据对应关系所确定的压缩特征值对应的压缩策略确定为压缩待压缩数据的压缩策略。
可理解的,多个压缩特征值与压缩策略的对应关系是一个预先设置的模板库,即模板库包含了多个条目,每个条目包含一个压缩特征值与该压缩特征值对应的压缩策略。在一种示例中,压缩策略指示压缩特征值对应的压缩算法。模板库中不同的压缩特征值对应的压缩算法不同。压缩算法包括但不限于:香农编码,霍夫曼(Huffman)编码,字典压缩算法(如:LZ77、LZSS、LZ78和LZW)。在另一种示例中,压缩策略指示压缩特征值对应的压缩算法的参数,例如字典压缩算法中的字典区的大小。模板库中不同的压缩特征值对应同一种压缩算法的不同参数。
对应关系中的压缩特征值对应的压缩策略是依据步骤420中阐述的硬件资源的参数和数据特征的参数对压缩率的影响设置的,即依据尽可能高的压缩率原则设置对应关系中的压缩特征值对应的压缩策略指示的压缩算法或压缩算法的参数。
例如,压缩特征值为处理器的占用率,若处理器的占用率小于阈值,则处理器的占用率对应的压缩策略指示较长字典区的字典压缩算法。若处理器的占用率大于或等于阈值,则处理器的占用率对应的压缩策略指示较短字典区的字典压缩算法。
又如,压缩特征值为存储设备的剩余可用存储容量,若存储设备的剩余可用存储容量较小,则存储设备的剩余可用存储容量对应的压缩策略指示较长字典区的字典压缩算法;若存储设备的剩余可用存储容量较大,则存储设备的剩余可用存储容量对应的压缩策略指示较短字典区的字典压缩算法。
又如,压缩特征值为计算设备与存储设备之间的网络带宽或存储设备的带宽,若网络带宽或存储设备的带宽较小,则存储设备的剩余可用存储容量对应的压缩策略指示较长字典区的字典压缩算法。
又如,压缩特征值为数据块大小,若数据块大小较大,则存储设备的剩余可用存储容量对应的压缩策略指示较长字典区的字典压缩算法。
又如,压缩特征值为待压缩数据包含的字符的分布,若待压缩数据包含较多的重复字符,则存储设备的剩余可用存储容量对应的压缩策略指示较长字典区的字典压缩算法。
在一些实施例中,可以综合考虑硬件资源参数及数据特征参数设置压缩特征值对应的压缩策略,从而提高待压缩数据的压缩率。
例如,压缩特征值包括处理器的占用率和计算设备与存储设备之间的网络带宽。假设处理器的占用率大于或等于阈值,表示处理器的可用的计算资源较少,计算设备与存储设备之间的网络带宽较大,表示计算设备与存储设备在单位时间内传输的数据量较多,则压缩特征值对应的压缩策略指示较短字典区的字典压缩算法。计算设备利用较短字典区的字典压缩算法对待压缩数据进行压缩,计算设备可以占用较少的计算资源,在确保数据的压缩率的前提下,尽可能缩短压缩时长。由于计算设备与存储设备之间的网络带宽较大,计算设备也可以较快地传输压缩后数据。
又如,压缩特征值包括处理器的占用率和存储设备的可用存储容量。假设处理器的占用率小于阈值,存储设备的可用存储容量较少,则压缩特征值对应的压缩策略指示较长字典区的字典压缩算法。由于处理器的可用的计算资源较多,计算设备可以利用较长字典区的字典压缩算法对待压缩数据进行压缩,尽可能地减少压缩后数据的数据量,节省存储设备的存储空间,提高存储设备的存储空间的利用率。
又如,压缩特征值包括压缩特征值包括处理器的占用率和待压缩数据包含的字符的分布。假设处理器的占用率小于阈值,待压缩数据包含较多的重复字符,则压缩特征值对应的压缩策略指示较长字典区的字典压缩算法。由于处理器的可用的计算资源较多,计算设备可以利用较长字典区的字典压缩算法对待压缩数据进行压缩,搜索到尽可能多的相同字符串,尽可能地减少压缩后数据的数据量,提高数据的压缩率。
又如,压缩特征值包括压缩特征值包括处理器的占用率、存储设备的可用存储容量和待压缩数据包含的字符的分布。假设处理器的占用率小于阈值,存储设备的可用存储容量较少,待压缩数据包含较多的重复字符,则压缩特征值对应的压缩策略指示较长字典区的字典压缩算法。由于处理器的可用的计算资源较多,待压缩数据包含较多的重复字符,计算设备可以利用较长字典区的字典压缩算法对待压缩数据进行压缩,尽可能地减少压缩后数据的数据量,节省存储设备的存储空间,提高存储设备的存储空间的利用率。
在实际应用中,根据压缩特征值设置压缩特征值对应的压缩策略时,可以侧重考虑硬件资源参数中的至少一种,也可以侧重考虑数据特征的参数中的至少一种,也可以综合考虑硬件资源参数及数据特征参数。
因此,由于压缩策略是依据硬件资源的参数及数据特征的参数对待压缩数据的压缩结果的影响设置的,即依据尽可能高的压缩率原则设置对应关系中的压缩特征值对应的压缩策略指示的压缩算法或压缩算法的参数,计算设备从对应关系中选取与待压缩数据的压缩特征值相似的压缩特征值对应的压缩策略,利用该压缩策略对待压缩数据进行压缩,能够有效地提高数据的压缩率。
需要说明的是,对应关系可以是系统管理员根据经验预先设置的。或者,对应关系可以是根据神经网络训练得到的。例如,计算设备将压缩特征值对应的压缩策略进行标记,将压缩特征值和标记的压缩策略输入神经网络,对神经网络进行训练,直到神经网络中的损失函数收敛,且损失函数值小于特定阈值则神经网络训练完成,从而使得神经网络具备依据压缩特征值预测压缩策略的功能,达到预测精度。计算设备将待压缩数据的压缩特征值输入训练完成的神经网络,可以得到待压缩数据的压缩特征值的压缩策略。需要说明的是,训练神经网络的计算设备和确定压缩待压缩数据的压缩策略的计算设备可以是同一设备也可以是不同的设备,不予限定。
步骤450、计算设备根据压缩策略对待压缩数据进行压缩得到压缩后数据。
压缩策略可以是指字典压缩算法。字典压缩算法的基本思路是用位置信息替代待压缩数据中的原始数据实现压缩,解压缩时则根据位置信息实现数据的还原。具体地,字典压缩算法是将待编码区中的字符串在字典区进行搜索,获取与待编码区相匹配的最长字符串,返回最长字符串的起始字符离字典区和待编码区分界处的距离,以及匹配字符串的匹配长度(literal length)。然后,将压缩窗口向右平移匹配长度+1个字符,继续进行搜寻,直到待编码数据编码完成,以此来达到数据压缩的目的。字典压缩算法的输出是一个三元组(偏移(offset),匹配长度,字符(char))。偏移表示最长字符串的偏移距离。偏移可以是指最长字符串离字典区左边的距离或者最长字符串离字典区右边(字典区和待编码区分界处)的距离。匹配长度表示匹配字符串的长度。字符表示匹配之后的下一个字符。
下面举例说明字典压缩的具体过程。示例地,假设待编码数据为aacaacabcabaaac。字典区的大小为6个字符的长度,待编码区的大小为4个字符长度。由于字典是动态生成的,编码开始时字典为空,编码过程字典包含不同的字符。
如图6中的(a)所示,编码开始,将待编码区的左端和待编码数据的左端(字典区和待编码区分界处)对齐,待编码区包括字符aaca,字典为空,字典中没有与之匹配的字符,则偏移为0,匹配长度为0。由于未匹配到相同的字符,则三元组中的字符为待编码数据的第一个字符a。因此,输出的三元组为<0,0,a>。
如图6中的(b)所示,将压缩窗口向右移动len(匹配长度0)+1个字符,则字典区包含字符a。待编码区包括字符acaa。在字典区和待编码区的相匹配的最长字符串为a,匹配字符串为a,则偏移为1,匹配长度为1,匹配之后的下一个字符为c。因此,输出的三元组为<1,1,c>。
如图6中的(c)所示,将压缩窗口向右移动len(匹配长度1)+1个字符,即压缩窗口向右移动2个字符,则字典区包含字符aac。待编码区包括字符aaca。在字典区和待编码区的相匹配的最长字符串为aac,匹配字符串为aaca,则偏移为3,匹配长度为4,匹配之后的下一个字符为b。因此,输出的三元组为<3,4,b>。
如图6中的(d)所示,将压缩窗口向右移动len(匹配长度4)+1个字符,即压缩窗口向右移动5个字符,则字典区包含字符caacab。待编码区包括字符caba。在字典区和待编码区的相匹配的最长字符串为cab,匹配字符串为cab,则偏移为3,匹配长度为3,匹配之后的下一个字符为a。因此,输出的三元组为<3,3,a>。
如图6中的(e)所示,将压缩窗口向右移动len(匹配长度3)+1个字符,即压缩窗口向右移动4个字符,则字典区包含字符abcaba。待编码区包括字符aac。在字典区和待编码区的相匹配的最长字符串为a,匹配字符串为aa,则偏移为1,匹配长度为2,匹配之后的下一个字符为c。因此,输出的三元组为<1,2,c>。
如图6中的(f)所示,将压缩窗口向右移动len(匹配长度2)+1个字符,即压缩窗口向右移动3个字符,则字典区包含字符abaaac。待编码区包括字符为空,编码完成。
因此,计算设备利用字典压缩算法对待编码数据aacaacabcabaaac进行压缩后,得到的三元组序列包含<0,0,a>、<1,1,c>、<3,4,b>、<3,3,a>和<1,2,c>。
随着字典区的长度的不同,字典区也可能包含不同的字符,则在字典压缩过程中,搜索到的匹配字符串也不同。示例地,如图7所示,为本申请实施例提供的另一种字典压缩过程的示意图。将字典区的大小6个字符的长度修改为2个字符的长度。图7中的(a)和(b)参考图6中的(a)和(b)的描述。
如图7中的(c)所示,将压缩窗口向右移动len(匹配长度1)+1个字符,即压缩窗口向右移动2个字符,则字典区包含字符ac。待编码区包括字符aaca。字典中没有与之匹配的字符,在字典区和待编码区的相匹配的最长字符串为0,则偏移为0,匹配长度为0,匹配之后的下一个字符为a。因此,输出的三元组为<0,0,a>。
如图7中的(d)所示,将压缩窗口向右移动len(匹配长度0)+1个字符,即压缩窗口向右移动1个字符,则字典区包含字符ca。待编码区包括字符acba。在字典区和待编码区的相匹配的最长字符串为a,匹配字符串为a,则偏移为1,匹配长度为1,匹配之后的下一个字符为c。因此,输出的三元组为<1,1,c>。
如图7中的(e)所示,将压缩窗口向右移动len(匹配长度1)+1个字符,即压缩窗口向右移动2个字符,则字典区包含字符ac。待编码区包括字符abca。字典中没有与之匹配的字符,在字典区和待编码区的相匹配的最长字符串为0,则偏移为0,匹配长度为0,匹配之后的下一个字符为a。因此,输出的三元组为<0,0,a>。
在aacacac之后的字符bcaba在字典中没有与之匹配的字符,在字典区和待编码区的相匹配的最长字符串为0,偏移为0,匹配长度为0,输出的三元组包含<0,0,b>,<0,0,c>,<0,0,a>,<0,0,b>,<0,0,a>。
如图7中的(f)所示,将压缩窗口向右移动len(匹配长度0)+1个字符,即压缩窗口向右移动1个字符,则字典区包含字符ba。待编码区包括字符aac。在字典区和待编码区的相匹配的最长字符串为a,匹配字符串为aa,则偏移为1,匹配长度为2,匹配之后的下一个字符为c。因此,输出的三元组为<1,2,c>。
如图7中的(g)所示,将压缩窗口向右移动len(匹配长度2)+1个字符,即压缩窗口向右移动3个字符,则字典区包含字符ac。待编码区包括字符为空,编码完成。
因此,计算设备利用字典压缩算法对待编码数据aacaacabcabaaac进行压缩后,得到的三元组序列包含<0,0,a>、<1,1,c>、<0,0,a>、<1,1,c>、<0,0,a>、<0,0,b>、<0,0,c>、<0,0,a>、<0,0,b>、<0,0,a>和<1,2,c>。
由图6和图7可知,依据字典区的大小为6个字符的长度编码得到的压缩后数据包含5个三元组,依据字典区的大小为2个字符的长度编码得到的压缩后数据包含11个三元组。字典区越小,压缩率越低。计算设备依据图6和图7的压缩率,选取压缩窗口为6个字符,压缩后数据为<0,0,a>、<1,1,c>、<3,4,b>、<3,3,a>和<1,2,c>。
可理解的,如果字典区越小,字典包含的字符越少,则计算设备在待编码区搜索到与字典区中的匹配字符就越少,压缩率越低。如果字典区越大,字典包含的字符越多,则计算设备在待编码区搜索到与字典区中的匹配字符就可能越多,压缩率越高。但是,计算设备需要花费更长时间查找重复字符,导致压缩速度较慢,进而影响到系统性能。
在一些实施例中,压缩策略可以指示至少两种压缩算法,使计算设备从至少两种压缩算法选取压缩率最高的压缩算法对待压缩数据进行压缩。或者,压缩策略可以指示压缩算法中的多种参数的取值,使计算设备从多种参数的取值选取压缩率最高的压缩算法的参数的取值对待压缩数据进行压缩。
例如,压缩策略还可以包含多个压缩窗口。压缩窗口是指字典压缩算法中的字典区。压缩策略包含多个不同大小的字典区。计算设备根据多个压缩窗口分别对待压缩数据进行压缩,以得到多个压缩后数据;比较多个压缩后数据的压缩率,选择压缩率最高的压缩后数据作为压缩后数据。因此,计算设备采用多个不同大小的压缩窗口对待压缩数据进行压缩后,将压缩率最高的压缩后数据作为压缩后数据,从而,进一步地提高数据的压缩率。
在另一些实施例中,计算设备还可以依据数据块大小将待压缩数据划分为多个待压缩数据块,针对每个待压缩数据块依据本申请实施例提供的数据压缩方法进行压缩,相对对待压缩数据整体进行压缩,能够进一步地提高数据的压缩率。
在另一些实施例中,计算设备可以依据数据块大小划分待压缩数据得到待压缩数据块,对待压缩数据块进行哈希运算后,将哈希值存入字典区。计算设备依据待压缩数据块的哈希值匹配字典区的哈希值,匹配成功进行压缩,匹配不成功则将新的哈希值存入字典区。由于不同的待压缩数据块可以使用不同的哈希算法进行哈希运算,相对采用一种哈希算法对待压缩数据进行哈希,有效地降低了哈希碰撞的概率。
可选地,压缩策略还可以指示是否对压缩后数据进行再次压缩。例如,压缩策略包含再次压缩标识。再次压缩标识的取值为1,指示进行再次压缩。再次压缩标识的取值为0,指示不进行再次压缩。计算设备可以对压缩后数据进行熵编码,进一步提高数据的压缩率。
可选地,在得到压缩后数据后,计算设备还可以调节对应关系中压缩特征值和压缩策略的参数,以便提高对应关系的准确度。例如,该方法还包括步骤460和步骤470。
步骤460、计算设备确定压缩数据时所采用的压缩策略的压缩率。
压缩率(compression rate)是一种描述压缩文件的效果名。压缩率可以是压缩后数据的大小与压缩前数据的大小之比。计算设备确定的压缩数据时所采用的压缩策略的压缩率可以是压缩后数据的数据量和待压缩数据的数据量之比。压缩率一般是越小,压缩后数据的数据量越小。例如,压缩前数据的大小为100兆字节(Megabytes,MB),压缩前数据的大小为90MB,压缩率为90/100*100%=90%。
步骤470、计算设备根据压缩率调节压缩特征值和压缩策略的参数。
若压缩待压缩数据时所采用的压缩策略的压缩率依然较低,计算设备也可以根据压缩率调整压缩数据时所采用的压缩策略的参数,从而,更贴切地针对场景的实时特征设置压缩策略,使压缩数据时所采用的压缩策略以达到压缩率最优的效果。例如,若处理器的占用率小于阈值,压缩策略的压缩率较低,计算设备可以增大字典区的大小。若处理器的占用率大于或等于阈值,计算设备与存储设备之间的网络带宽较大,压缩率较高,计算设备可以减小字典区的大小。
计算设备可以对对应关系中压缩特征值整体进行调整,即调整压缩特征向量中的每个元素。计算设备也可以对压缩特征向量中的部分元素进行调整。计算设备还可以保留同一元素的历史向量,形成链式结构,从而提高压缩策略更新的可靠性。例如,计算设备对压缩特征向量中的元素(如:处理器的占用率、计算设备与存储设备之间的网络带宽、存储设备的带宽、存储设备的可用存储容量、数据类型、数据块大小或待压缩数据包含的字符的分布)的历史值和当前值取平均,将平均值确定为更新后的取值。
计算设备对待压缩数据进行压缩后得到压缩后数据,将压缩后数据存入存储设备。例如,该方法还包括步骤480。
步骤480、计算设备向存储设备发送压缩后数据和压缩窗口。
计算设备可以向存储设备(如:硬盘105)发送数据包,数据包包含了压缩后数据和压缩待压缩数据所使用的压缩窗口。如图8所示,数据包可以包含包头810和载荷820。包头810包含基本首部,即传输数据包所需的地址。载荷820包含扩展首部和需要传输的数据。计算设备可以将偏移合入压缩头中。压缩头包含了压缩后数据的三元组和压缩窗口。压缩头可以位于数据包的载荷820中。示例地,计算设备依据图6和图7的压缩率,选取压缩窗口为6个字符,压缩后数据为<0,0,a>、<1,1,c>、<3,4,b>、<3,3,a>和<1,2,c>。
在一些实施例中,计算设备可以根据压缩后数据的长度动态调整压缩头占用位数的总长度,即偏移、匹配长度和字符的各自比特位数支持动态调整,在不同数据类型下(例如特殊字符、中文字符以及英文字符等)压缩头中三元组各自的比特长度会动态调整。相对固定长度的压缩头,使压缩头中每个字节利用更充分,增大数据的压缩比。
计算设备从存储设备读取压缩头数据后,可以根据压缩头包含的压缩窗口确定计算设备压缩时采用的压缩窗口的大小,根据压缩窗口对压缩后数据的三元组进行解码,获得原始的待压缩数据。
可以理解的是,为了实现上述实施例中的功能,计算设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图8,详细描述了根据本实施例所提供的数据压缩方法,下面将结合图9,描述根据本实施例所提供的数据压缩装置。
图9为本实施例提供的可能的数据压缩装置的结构示意图。这些数据压缩装置可以用于实现上述方法实施例中计算设备的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该数据压缩装置可以是如图1至图3所示的计算节点110或存储节点100,还可以是应用于服务器的模块(如芯片)。
如图9所示,数据压缩装置900包括通信模块910、预处理模块920、策略匹配模块930、压缩模块940和存储模块950。数据压缩装置900用于实现上述图4中所示的方法实施例中计算设备的功能。
通信模块910用于获取待压缩数据,以及将压缩后数据和压缩窗口传输至硬盘105。例如,通信模块910用于执行图4中步骤410和步骤480。
预处理模块920用于获取影响待压缩数据的压缩结果的参数,以及根据影响待压缩数据的压缩结果的参数确定所述待压缩数据的压缩特征值。例如,预处理模块920用于执行图4中步骤420和步骤430。
策略匹配模块930用于根据所述压缩特征值确定压缩所述待压缩数据的压缩策略。例如,策略匹配模块930用于执行图4中步骤440。
其中,参数包括对所述待压缩数据进行压缩时所用到的硬件资源的参数及/或描述所述待压缩数据的数据特征的参数。数据特征的参数包含数据类型、数据块大小和所述待压缩数据包含的字符的分布中至少一种。硬件资源的参数包含所述计算设备的处理器的占用率、将所述压缩后数据存储至存储设备时,所述计算设备与所述存储设备之间的网络带宽和所述存储设备的可用存储容量中的至少一种。
压缩模块940,用于根据所述压缩策略对所述待压缩数据进行压缩得到压缩后数据。例如,压缩模块940用于执行图4中步骤450。
策略匹配模块930具体用于确定所述待压缩数据的压缩特征值对应的所述对应关系中的压缩特征值;根据所述对应关系所确定的压缩特征值确定所述压缩特征值对应的压缩策略为压缩所述待压缩数据的压缩策略。
压缩模块940具体用于根据所述多个压缩窗口分别对所述待压缩数据进行压缩,以得到多个压缩后数据;比较所述多个压缩后数据的压缩率,选择压缩率最高的压缩后数据作为所述压缩后数据。所述压缩策略中包括多个压缩窗口。
存储模块950用于存储多个压缩特征值与压缩策略的对应关系。
数据压缩装置900还包括更新模块960。更新模块960用于确定压缩数据时所采用的所述压缩策略的压缩率;根据所述压缩率调节对应关系中的所述压缩特征值和所述压缩策略的参数,得到调整后的压缩特征值和压缩策略的参数,将调整后的压缩特征值和压缩策略的参数存入存储模块950。例如,更新模块960用于执行图4中步骤460和步骤470。
应理解的是,本申请实施例的数据压缩装置900可以通过ASIC实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图4所示的数据压缩方法时,数据压缩装置900及其各个模块也可以为软件模块。
根据本申请实施例的数据压缩装置900可对应于执行本申请实施例中描述的方法,并且数据压缩装置900中的各个单元的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
图10为本实施例提供的一种计算设备1000的结构示意图。如图所示,计算设备1000包括处理器1010、总线1020、存储器1030、内存单元1040和通信接口1050。
应理解,在本实施例中,处理器1010可以是CPU,该处理器1010还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、应用专用集成电路(application specific integrated circuit,ASIC)、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
处理器还可以是图形处理器(graphics processing unit,GPU)、神经网络处理器(neural network processing unit,NPU)、微处理器、ASIC、或一个或多个用于控制本申请方案程序执行的集成电路。
通信接口1050用于实现计算设备1000与外部设备或器件的通信。在本实施例中,通信接口1050用于接收待压缩数据和发送压缩后数据。
总线1020可以包括一通路,用于在上述组件(如处理器1010、内存单元1040和存储器1030)之间传送信息。总线1020除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1020。总线1020可以是快捷外围部件互连标准(Peripheral Component Interconnect Express,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。
作为一个示例,计算设备1000可以包括多个处理器。处理器可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的计算单元。处理器1010可以调用存储器1030存储的多个压缩特征值与压缩策略的对应关系,根据所述压缩特征值确定压缩所述待压缩数据的压缩策略,以及根据所述压缩策略对所述待压缩数据进行压缩得到压缩后数据。
值得说明的是,图10中仅以计算设备1000包括1个处理器1010和1个存储器1030为例,此处,处理器1010和存储器1030分别用于指示一类器件或设备,具体实施例中,可以根据业务需求确定每种类型的器件或设备的数量。
内存单元1040可以对应上述方法实施例中用于存储多个压缩特征值与压缩策略的对应关系等信息的存储介质。内存单元1040可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambusRAM,DR RAM)。
存储器1030用于存储数据,可以是磁盘,如机械硬盘或固态硬盘。
上述计算设备1000可以是一个通用设备或者是一个专用设备。例如,计算设备1000可以是手机终端,平板电脑,笔记本电脑,VR设备、AR设备、MR设备或ER设备,车载终端等,还可以是边缘设备(例如,携带具有处理能力芯片的盒子)等。可选地,计算设备1000也可以是服务器或其他具有计算能力的设备。
应理解,根据本实施例的计算设备1000可对应于本实施例中的数据压缩装置900,并可以对应于执行根据图4中任一方法中的相应主体,并且数据压缩装置900中的各个模块的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (18)
1.一种数据压缩方法,应用于计算设备,其特征在于,所述方法包括:
根据影响待压缩数据的压缩结果的参数确定所述待压缩数据的压缩特征值;
根据所述压缩特征值确定压缩所述待压缩数据的压缩策略;
根据所述压缩策略对所述待压缩数据进行压缩得到压缩后数据,并存储所述压缩后数据。
2.根据权利要求1所述的方法,其特征在于,所述参数包括对所述待压缩数据进行压缩时所用到的硬件资源的参数及/或描述所述待压缩数据的数据特征的参数。
3.根据权利要求2所述的方法,其特征在于,所述数据特征的参数包含数据类型、数据块大小和所述待压缩数据包含的字符的分布中至少一种。
4.根据权利要求2所述的方法,其特征在于,所述硬件资源的参数包含所述计算设备的处理器的占用率、将所述压缩后数据存储至存储设备时,所述计算设备与所述存储设备之间的网络带宽和所述存储设备的可用存储容量中的至少一种。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述计算设备存储有多个压缩特征值与压缩策略的对应关系;
所述根据所述压缩特征值确定压缩所述待压缩数据的压缩策略,包括:
确定所述待压缩数据的压缩特征值对应的所述对应关系中的压缩特征值;
根据所述对应关系所确定的压缩特征值确定所述压缩特征值对应的压缩策略为压缩所述待压缩数据的压缩策略。
6.根据权利要求5所述的方法,其特征在于,所述多个压缩特征值与压缩策略的对应关系是依据神经网络训练得到的。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述压缩策略中包括多个压缩窗口;
根据所述压缩策略对所述待压缩数据进行压缩包括:
根据所述多个压缩窗口分别对所述待压缩数据进行压缩,以得到多个压缩后数据;
比较所述多个压缩后数据的压缩率,选择压缩率最高的压缩后数据作为所述压缩后数据。
8.根据权利要求1-7中任一项所述的方法,其特征在于,在得到所述压缩后数据后,所述方法还包括:
确定压缩数据时所采用的所述压缩策略的压缩率;
根据所述压缩率调节对应关系中的所述压缩特征值和所述压缩策略的参数。
9.一种数据压缩装置,应用于计算设备,其特征在于,所述装置包括:
预处理模块,用于根据影响待压缩数据的压缩结果的参数确定所述待压缩数据的压缩特征值;
策略匹配模块,用于根据所述压缩特征值确定压缩所述待压缩数据的压缩策略;
压缩模块,用于根据所述压缩策略对所述待压缩数据进行压缩得到压缩后数据,并存储所述压缩后数据。
10.根据权利要求9所述的装置,其特征在于,所述参数包括对所述待压缩数据进行压缩时所用到的硬件资源的参数及/或描述所述待压缩数据的数据特征的参数。
11.根据权利要求10所述的装置,其特征在于,所述数据特征的参数包含数据类型、数据块大小和所述待压缩数据包含的字符的分布中至少一种。
12.根据权利要求10所述的装置,其特征在于,所述硬件资源的参数包含所述计算设备的处理器的占用率、将所述压缩后数据存储至存储设备时,所述计算设备与所述存储设备之间的网络带宽和所述存储设备的可用存储容量中的至少一种。
13.根据权利要求9-12中任一项所述的装置,其特征在于,所述计算设备存储有多个压缩特征值与压缩策略的对应关系;
所述策略匹配模块根据所述压缩特征值确定压缩所述待压缩数据的压缩策略时,具体用于:
确定所述待压缩数据的压缩特征值对应的所述对应关系中的压缩特征值;
根据所述对应关系所确定的压缩特征值确定所述压缩特征值对应的压缩策略为压缩所述待压缩数据的压缩策略。
14.根据权利要求13所述的装置,其特征在于,所述多个压缩特征值与压缩策略的对应关系是依据神经网络训练得到的。
15.根据权利要求9-14中任一项所述的装置,其特征在于,所述压缩策略中包括多个压缩窗口;
所述压缩模块根据所述压缩策略对所述待压缩数据进行压缩时,具体用于:
根据所述多个压缩窗口分别对所述待压缩数据进行压缩,以得到多个压缩后数据;
比较所述多个压缩后数据的压缩率,选择压缩率最高的压缩后数据作为所述压缩后数据。
16.根据权利要求9-15中任一项所述的装置,其特征在于,在得到所述压缩后数据后,所述装置还包括更新模块;
所述更新模块,用于确定压缩数据时所采用的所述压缩策略的压缩率;以及根据所述压缩率调节对应关系中的所述压缩特征值和所述压缩策略的参数。
17.一种计算设备,其特征在于,所述计算设备包括存储器和至少一个处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求1-8中任一项所述的方法的操作步骤。
18.一种存储系统,其特征在于,所述存储系统包括至少一个计算节点和至少一个存储节点,所述计算节点用于执行上述权利要求1-8中任一项所述的方法的操作步骤,得到压缩后数据,所述存储节点用于存储所述压缩后数据;或者,所述计算节点将待压缩数据传输至所述存储节点,所述存储节点执行上述权利要求1-8中任一项所述的方法的操作步骤,得到压缩后数据,存储所述压缩后数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22836718.1A EP4350527A1 (en) | 2021-07-08 | 2022-06-22 | Data compression method and apparatus, and computing device and storage medium |
PCT/CN2022/100440 WO2023279964A1 (zh) | 2021-07-08 | 2022-06-22 | 数据压缩方法、装置、计算设备及存储系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110773759 | 2021-07-08 | ||
CN2021107737593 | 2021-07-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599757A true CN115599757A (zh) | 2023-01-13 |
Family
ID=84842138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111109332.XA Pending CN115599757A (zh) | 2021-07-08 | 2021-09-22 | 数据压缩方法、装置、计算设备及存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599757A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964347A (zh) * | 2023-03-16 | 2023-04-14 | 菏泽市产品检验检测研究院 | 一种市场监管监测中心数据的智能存储方法 |
CN117312613A (zh) * | 2023-10-07 | 2023-12-29 | 杭州易靓好车互联网科技有限公司 | 基于云计算的订单数据智能管理方法及系统 |
CN117376430A (zh) * | 2023-10-30 | 2024-01-09 | 北京富邦智达自动化科技有限公司 | 基于dcs的工业数据快速传输方法及系统 |
CN117579079A (zh) * | 2024-01-15 | 2024-02-20 | 每日互动股份有限公司 | 一种数据压缩的处理方法、装置、设备及介质 |
-
2021
- 2021-09-22 CN CN202111109332.XA patent/CN115599757A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964347A (zh) * | 2023-03-16 | 2023-04-14 | 菏泽市产品检验检测研究院 | 一种市场监管监测中心数据的智能存储方法 |
CN117312613A (zh) * | 2023-10-07 | 2023-12-29 | 杭州易靓好车互联网科技有限公司 | 基于云计算的订单数据智能管理方法及系统 |
CN117312613B (zh) * | 2023-10-07 | 2024-03-08 | 杭州易靓好车互联网科技有限公司 | 基于云计算的订单数据智能管理方法及系统 |
CN117376430A (zh) * | 2023-10-30 | 2024-01-09 | 北京富邦智达自动化科技有限公司 | 基于dcs的工业数据快速传输方法及系统 |
CN117376430B (zh) * | 2023-10-30 | 2024-04-23 | 北京富邦智达自动化科技有限公司 | 基于dcs的工业数据快速传输方法及系统 |
CN117579079A (zh) * | 2024-01-15 | 2024-02-20 | 每日互动股份有限公司 | 一种数据压缩的处理方法、装置、设备及介质 |
CN117579079B (zh) * | 2024-01-15 | 2024-03-29 | 每日互动股份有限公司 | 一种数据压缩的处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2023279964A1 (zh) | 数据压缩方法、装置、计算设备及存储系统 | |
CN115599757A (zh) | 数据压缩方法、装置、计算设备及存储系统 | |
US11463102B2 (en) | Data compression method, data decompression method, and related apparatus, electronic device, and system | |
US9223765B1 (en) | Encoding and decoding data using context model grouping | |
CN111416743B (zh) | 一种卷积网络加速器、配置方法及计算机可读存储介质 | |
US8791843B2 (en) | Optimized bitstream encoding for compression | |
CN107046812B (zh) | 一种数据保存方法和装置 | |
US11431351B2 (en) | Selection of data compression technique based on input characteristics | |
WO2020253406A1 (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
US10680645B2 (en) | System and method for data storage, transfer, synchronization, and security using codeword probability estimation | |
US11973519B2 (en) | Normalized probability determination for character encoding | |
CN113296718B (zh) | 数据处理方法以及装置 | |
US9035809B2 (en) | Optimizing compression engine throughput via run pre-processing | |
US20160124683A1 (en) | In-memory data compression complementary to host data compression | |
US10706018B2 (en) | Bandwidth-efficient installation of software on target devices using reference code libraries | |
CN114666212B (zh) | 配置数据下发方法 | |
US20210173824A1 (en) | Data storage method, data obtaining method, and apparatus | |
CN115941598A (zh) | 一种流表半卸载方法、设备及介质 | |
US11733867B2 (en) | System and method for multiple pass data compaction utilizing delta encoding | |
US11755540B2 (en) | Chunking method and apparatus | |
CN114157305B (zh) | 一种基于硬件快速实现gzip压缩的方法及其应用 | |
CN112544038A (zh) | 存储系统数据压缩的方法、装置、设备及可读存储介质 | |
US20240134523A1 (en) | Data compression method and apparatus, computing device, and storage system | |
CN115905146A (zh) | 数据处理方法、装置、计算设备及存储系统 | |
CN113434286A (zh) | 一种适用于移动应用处理器的能效优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |