CN103929185B - 实时减少数据压缩的中央处理单元开销的方法和系统 - Google Patents
实时减少数据压缩的中央处理单元开销的方法和系统 Download PDFInfo
- Publication number
- CN103929185B CN103929185B CN201410012485.6A CN201410012485A CN103929185B CN 103929185 B CN103929185 B CN 103929185B CN 201410012485 A CN201410012485 A CN 201410012485A CN 103929185 B CN103929185 B CN 103929185B
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- inspiration
- uncompressed
- data sequence
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013144 data compression Methods 0.000 title claims abstract description 23
- 230000009467 reduction Effects 0.000 title claims abstract description 8
- 238000007906 compression Methods 0.000 claims abstract description 148
- 230000006835 compression Effects 0.000 claims abstract description 148
- 238000003860 storage Methods 0.000 claims description 48
- 238000009826 distribution Methods 0.000 claims description 30
- 239000000872 buffer Substances 0.000 claims description 20
- 239000013598 vector Substances 0.000 claims description 9
- 238000013500 data storage Methods 0.000 description 22
- 230000015654 memory Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 230000008901 benefit Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 239000000835 fiber Substances 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 101000746134 Homo sapiens DNA endonuclease RBBP8 Proteins 0.000 description 1
- 101000969031 Homo sapiens Nuclear protein 1 Proteins 0.000 description 1
- 102100021133 Nuclear protein 1 Human genes 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000994 depressogenic effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
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
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
-
- 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
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/607—Selection between different types of compressors
-
- 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
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
- H03M7/6088—Selection strategies according to the data type
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Measuring And Recording Apparatus For Diagnosis (AREA)
Abstract
本发明公开了一种用于实时减少计算环境中数据压缩的CPU开销的方法和系统。由处理器设备在计算环境中执行用于数据压缩的CPU开销的实时减少。在从数据序列中随机选择的数据样本上应用非压缩启发以确定是否压缩该数据序列。基于所述非压缩启发计算压缩潜力。将压缩潜力与阈值进行比较。如果匹配压缩阈值,则压缩该数据序列;如果匹配霍夫曼编码阈值,则使用霍夫曼编码压缩该数据序列;或者不压缩地存储该数据序列。
Description
技术领域
本发明一般涉及计算机,并且更具体地涉及计算环境中数据压缩的CPU开销的实时减少。
背景技术
当今社会中,计算机系统是普遍的。可在工作场所、在家里、或在学校发现计算机系统。计算机系统可以包括数据存储系统或盘存储系统以处理和存储数据。数据存储系统或盘存储系统被用来处理和存储数据。存储系统可包括一个或多个盘驱动器。这些数据处理系统通常需要大量的数据存储。客户数据或者数据处理系统内的用户所产生的数据占据该数据存储的一个很大的部分。这些计算机系统中的许多系统包括虚拟存储组件。
数据压缩被广泛用于减少处理、传输或存储给定量的信息所需要的数据量。数据压缩是为了最小化数据的表示而对数据进行的编码。例如,压缩可被用于减少文件的存储需求以提高信道上的通信速率,或者用于在加密之前减少冗余以提高安全性。然而,数据压缩消耗非常大量的计算(例如,中央处理单元“CPU”)资源。
发明内容
在一个实施例中,提供了一种用于实时减少使用处理器设备的数据压缩的CPU开销的方法。对从数据序列中随机选择的数据样本应用非压缩启发(heuristics)以确定是否压缩所述数据序列。基于非压缩启发计算压缩潜力(potential)。将压缩潜力与阈值进行比较。如果匹配压缩阈值则压缩所述数据序列,如果匹配霍夫曼编码阈值则使用霍夫曼编码压缩所述数据序列,或者不压缩地存储所述数据序列。
在另一实施例中,提供了一种用于实时减少数据压缩的CPU开销的计算机系统。该计算机系统包括计算机可读介质以及与所述计算机可读介质可操作地通信的处理器。所述处理器对从数据序列中随机选择的数据样本应用非压缩启发以确定是否压缩所述数据序列。基于所述非压缩启发计算压缩潜力。将压缩潜力与阈值进行比较。如果匹配压缩阈值则压缩所述数据序列,如果匹配霍夫曼编码阈值则使用霍夫曼编码压缩所述数据序列,或者不压缩地存储所述数据序列。
在进一步的实施例中,提供了一种用于实时减少数据压缩的CPU开销的计算机程序产品。所述计算机可读存储介质具有在其上存储的计算机可读程序代码部分。所述计算机可读程序代码部分包括对从数据序列中随机选择的数据样本应用非压缩启发以确定是否压缩所述数据序列的第一可执行部分。基于所述非压缩启发计算压缩潜力。将压缩潜力与阈值进行比较。如果匹配压缩阈值则压缩所述数据序列,如果匹配霍夫曼编码阈值则使用霍夫曼编码压缩所述数据序列,或者不压缩地存储所述数据序列。
除了上述示例性方法实施例之外,其它的示例性系统和计算机产品的实施例也被提供并提供相关的优点。已经提供了上述概要以便以简化的形式介绍将在下面的详细描述中进一步描述的构思的精选。本概要并不旨在识别要求保护的主题的关键特征或必要特征,也不是旨在用于帮助确定要求保护的主题的范围。要求保护的主题并不限于解决背景技术中提到的任何或所有缺点的实施方式。
附图说明
为了使本发明的优点容易理解,将通过参考附图中所示的具体实施例来呈现以上简要描述的本发明的更具体的描述。应理解,这些附图描绘了本发明的实施例,并且因此不应被认为是对其范围的限制,将通过使用附图来描述和说明本发明的附加特征和细节,附图中:
图1是示出可在其中实现本发明的各方面的具有示例性存储设备的计算机存储环境的框图;
图2是示出可在其中实现本发明的各方面的计算机系统中的示例性数据存储系统的硬件结构的框图;
图3是示出可在其中实现本发明的各方面的用于实时减少数据压缩的CPU开销的示例性方法的流程图;
图4是字节熵(entropy)作为文件服务器数据集的压缩比的函数的示例图,其中可实现本发明的各方面;
图5是示出使用可与本发明组合的前缀压缩估计来实时减少数据压缩的CPU开销的示例性方法的流程图;
图6是示出可在其中实现本发明的各方面的、使用启发和前缀压缩估计两者来实时减少数据压缩的CPU开销的示例性方法的流程图;
图7是可在其中实现本发明的各方面的、使用启发来实时减少数据压缩的CPU开销的详细的流程图;
图8A是可在其中实现本发明的各方面的、对于文件服务器数据集的8KB的数据块的压缩配给(ration)的启发建议的附加示例图;
图8B是可在其中实现本发明的各方面的、对于VM图像数据集的8KB的数据块的压缩配给的启发建议的附加示例图;
图8C是可在其中实现本发明的各方面的、对于基准数据集的8KB的数据块的压缩配给的启发建议的附加示例图;
图9是可在其中实现本发明的各方面的,用于比较对各种压缩比的数据压缩1KB前缀、压缩8KB数据、以及启发方法的平均压缩时间的附加示例图。
具体实施方式
如前所述,数据压缩消耗了非常大量的计算(例如,中央处理单元“CPU”)资源。压缩所需的时间取决于压缩比。通过将压缩的输出的长度除以输入数据的长度来计算压缩比。例如,压缩比可以是0和1之间的数值。在压缩的输出大于输入数据的情况下,压缩比大于1。小的压缩比指示来自压缩的高益处,而更大的压缩比数值指示来自压缩的低益处。不可压缩的数据比高度可压缩的数据花费更多以处理。成本的差异可高达四倍。对于每个输入数据(例如,数据流/序列),存在等效的压缩的输出数据缓冲器(buffer)。输出压缩的缓冲器的大小取决于输入缓冲器的内容和所使用的压缩方法。某些输入数据不能被压缩到显著较小的输出缓冲器,或者实现有意义的压缩输出所需的CPU资源量太高。不幸的是,这只能在输入数据被处理和压缩后才能被检测到。因此,在进行实际压缩前不能作出用于确定压缩还是不压缩数据流的正确决定。简而言之,确定是否压缩数据既有优点也有缺点。例如,压缩数据的一个优点是通过压缩卷(volume)节省了存储容量(例如,减少磁盘驱动器、存储脚印(footprint)、冷却和功率等)。然而,一个缺点是,压缩所有数据可能由于压缩存储卷中的大量不可压缩的数据而浪费系统资源和时间。
相反,为了满足这一需要,本发明提供了一种用于检测不能被压缩的数据或者其压缩只能获得非常小的减少的数据从而跳过该数据的压缩的解决方案。此外,本发明允许另一种可能的决定,即,压缩数据流,但仅使用更轻度的压缩技术,例如,仅使用霍夫曼编码。该检测方法读取输入数据(例如,数据流)的随机选择的小片段,并计算该数据上的一组启发。通过启发的输出来确定压缩、不压缩、或仅使用霍夫曼编码进行压缩的决定。在实时压缩的环境中,可用于执行压缩的CPU资源是有限的。因此,识别不可压缩的或者压缩到较小程度的输入数据(例如,数据流)使得用于压缩数据的系统(例如,CPU)资源能够被显著压缩。目前的预测压缩比的方法首先需要实际压缩数据或者数据的很大部分。在一个实施例中,应用通过压缩输入数据的前缀进行的估计。前缀大小必须足够长,以提供足够良好的精度。
在一个实施例中,仅通过示例的方式,本发明执行是否压缩和/或不压缩数据的确定并且在压缩数据之前执行该处理,并基于所提供的指示进行压缩(或如何压缩/不压缩)。在这种方式下,对于是否能实现有意义的压缩比、或者不应压缩输入的确定,允许节约CPU资源并减少“浪费的”资源。在一个实施例中,本发明与用于实际压缩的CPU资源开销相比,导致很少的系统/CPU资源开销。另外,本发明允许仅在实现有意义的压缩时集中(focus)资源。
如下面将要描述的,在一个实施例中,本发明提供了一种用于实时减少使用处理器设备的数据压缩的CPU开销的解决方案。对从数据序列中随机选择的数据样本应用非压缩启发以确定是否压缩该数据序列。基于所述非压缩启发来计算压缩潜力,所述非压缩启发是不对数据执行压缩的启发。将压缩潜力与阈值进行比较。如果压缩潜力与阈值匹配,则该数据序列或者被压缩、或者被使用霍夫曼编码进行编码,或者被存储。
现在转到图1,描绘了计算环境中的数据存储系统(例如,虚拟磁带系统)的示例性架构10。计算机系统10包括连接到(多个)大容量存储(storage)设备14和存储器(memory)设备16的中央处理单元(CPU)12。大容量存储设备可以包括硬盘驱动器(HDD)设备、固态器件(SSD)等,它们可以配置在独立盘冗余阵列(RAID)中。进一步描述的备份操作可以在位于系统10中或其他地方的(多个)设备14上执行。存储器设备16可以包括诸如电可擦除可编程只读存储器(EEPROM)的存储器或相关设备的主机。存储器设备16和大容量存储设备14经由信号承载介质连接到CPU12。此外,CPU12通过通信端口18连接到具有附接的多个附加计算机系统22和24的通信网络20。
图2是示出根据本发明的计算机系统中的数据存储系统的硬件结构的示例性框图200。参照图2,示出了主机计算机210、220、225,各自作为中央处理单元,用于执行数据存储系统200的一部分的数据处理。主机(物理或虚拟设备)210、220和225可以是数据存储系统200中实现本发明的目的的一个或多个新的物理设备或逻辑设备。在一个实施例中,仅仅通过示例的方式,数据存储系统200可以被实现为IBM系统存储TMDS8000TM。网络连接260可以是光纤信道织网(fabric)、光纤信道点对点链路、以太网织网或点对点链路上的光纤信道、FICON或ESCONI/O接口、任何其它的I/O接口类型、无线网络、有线网络、局域网(LAN)、广域网(WAN)、异构的、同构的、公共的(即因特网)、私有的,或者它们的任意组合。主机210、220和225可以是本地的或者分布在一个或多个位置之中,并且可配备有到存储控制器240的任何类型的织网(或织网信道)(图2中未示出)或网络适配器260,诸如光纤信道、FICON、ESCON、以太网、光纤、无线或同轴适配器。数据存储系统200相应地配备有合适的织网(图2中未示出)或网络适配器260以进行通信。数据存储系统200被描绘在图1中,包括存储控制器240和储存器(storage)230。
为了便于更清楚地理解本文描述的方法,存储控制器240被作为单个处理单元显示在图2中,其包括微处理器242、系统存储器243和非易失性存储(“NVS”)216,它们将在下面更详细地描述。应注意,在一些实施例中,存储控制器240由多个处理单元构成,每个单元具有自己的处理器复合体和系统存储器,并通过数据存储系统200内的专用网络互连。储存器230可以包括一个或多个存储设备(诸如存储阵列),其通过存储网络连接到存储控制器240。
在一些实施例中,储存器230中包括的设备可以连接为环形架构。存储控制器240管理储存器230,并促进针对储存器230的写入和读出请求的处理。存储控制器240的系统存储器243存储程序指令和数据,处理器242可以访问该程序指令和数据以执行与管理储存器230相关联的功能和方法步骤,以及执行计算机存储环境中的本发明的步骤和方法。在一个实施例中,系统存储器243包括计算机存储环境中的操作软件250,或者与之相关联或与之进行通信,该操作软件250包括这里描述的方法和操作。如图2所示,系统存储器243还可以包括用于储存器230的高速缓存(cache)245或与之通信,高速缓存245在此也称为“高速缓冲存储器”,用于缓冲“写入数据”和“读出数据”,其分别指代读/写请求和它们的相关的数据。在一个实施例中,高速缓存245被分配在系统存储器243外部的设备中,但仍然可由微处理器242访问,并且可以在除了实现本文中描述的操作之外,还用来提供防止数据丢失的附加安全性。
在一些实施例中,高速缓存245由易失性存储器和非易失性存储器实现,并通过本地总线(图2中未示出)耦合(couple)到微处理器242以增强数据存储系统200的性能。包括在数据存储控制器中的NVS216可由微处理器242访问,并且用于对在其它附图中描述的本发明的操作和执行提供附加支持。该NVS216,也可以被称为“永久(persistent)”高速缓存或“高速缓冲存储器”,并由可能或可能不使用外部电源来保留其中存储的数据的非易失性存储器来实现。为了任何适合于实现本发明的目标的目的,可以将NVS存储在高速缓存245中并与该高速缓存245一起存储。在一些实施例中,诸如电池的备用电源(图2中未示出)为NVS216供给足够的功率,以在数据存储系统200有电力丢失的情况下保留存储在NVS216中的数据。在某些实施例中,NVS216的容量小于或等于高速缓存245的总容量。
储存器230物理上可以包括一个或多个存储设备,诸如存储阵列。存储阵列是诸如硬盘的单独(individual)存储设备的逻辑分组。在某些实施例中,储存器230包括JBOD(简单盘捆绑)阵列或RAID(独立盘冗余阵列)阵列。物理存储阵列的集合可以被进一步组合以形成队列(rank),其使得物理存储与逻辑配置分离。队列中的存储空间可被分配为逻辑卷,其定义读/写请求中指定的存储位置。
在一个实施例中,仅仅通过示例的方式,图2所示的存储系统可以包括逻辑卷,或简称为“卷”,可以有不同的种类的分配。储存器230a、230b和230n被示出作为数据存储系统200中的队列,并在本文中被称为队列230a、230b和230n。队列可以是数据存储系统200本地的,或者可以位于物理上的远程位置。换言之,本地存储控制器可以与远程存储控制器连接并管理远程位置处的存储。队列230a被示出配置了两个完整卷234和236,以及一个部分卷232a。队列230b被示出配置了另一部分卷232b。因此卷232被跨队列230a和230b分配。队列230n被示出为完全分配给卷238——也就是说,队列230n指代卷238的整个物理存储。从上面的例子,应理解,队列可以被配置为包括一个或多个部分和/或完整的卷。卷和队列可被进一步分为所谓的“道(track)”,它表示储存器的固定块。因此,道与给定的卷相关联,并且可以被给予给定队列。
存储控制器240可包括计算机存储环境中的实时压缩决策模块255、压缩模块257、启发模块258和压缩潜力计算模块259。实时压缩决策模块255、压缩模块257、启发模块258和压缩潜力计算模块259可以与存储控制器240,主机210、220、225和存储设备230中的每个及每一个组件共同工作。实时压缩决策模块255、压缩模块257、启发模块258和压缩潜力计算模块259结构上可以是一个完整模块,其一起相互联合工作以执行下述这样的功能,或者可以是各自单独的模块。实时压缩决策模块255、压缩模块257、启发模块258和压缩潜力计算模块259也可以位于高速缓存245中或者存储控制器240的其它组件中以实现本发明的目的。
可以构造存储控制器240具有:控制开关241,用于控制到主机计算机210、220、225的光纤信道协议;微处理器242,用于控制所有的存储控制器240;非易失性控制存储器243,用于存储控制存储控制器240的操作的微程序(操作软件)250、控制数据和每个后述的表格;高速缓存245,用于临时存储(缓存)数据;以及缓冲器244,用于辅助高速缓存245读取和写入数据;控制开关241,用于控制协议以控制数据传输到存储设备230或从其传输数据;实时压缩决策模块255;压缩模块257;启发模块258;以及可能在其上设置了信息的压缩潜力计算模块259。多个缓冲器244可以与本发明一起在计算环境中实现,或者按照所示实施例的机制执行其它功能。
在一个实施例中,仅仅通过示例的方式,主机计算机或一个或多个物理或虚拟的设备210、220、225与存储控制器240通过作为接口的网络适配器(其可以是光纤信道)260(即,经由有时被称为“织网(fabric)”的交换机)进行连接。在一个实施例中,仅仅通过示例的方式,将描述图2所示的系统的操作。微处理器242可控制存储器243存储来自主机设备(物理的或虚拟的)210的命令信息和用于识别所述主机设备(物理的或虚拟的)210的信息。控制开关(switch)241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS216、实时压缩决策模块255、压缩模块257、启发模块258和压缩潜力计算模块259相互通信,并且可以是分开的或一个单独的组件。此外,一些组件(如果不是所有)(诸如操作软件245)可以与存储器243一起被包含在计算机存储环境中。存储设备内的每个组件可链接在一起,并可以为了与本发明相适应的目的互相通信。
基于本文描述的实施例,本发明关于/对从数据序列中随机选取的数据样本的核心字符的字符对与核心字符的字符对的随机分布之间的关系应用非压缩启发,以通过基于该非压缩启发计算压缩潜力来确定是否压缩该数据序列。实时压缩决策工具允许作出决策以确定压缩输入数据流(或数据序列)还是不压缩该输入数据流。换句话说,决策操作允许节约资源,而不是压缩数据的一小部分、然后接下来决定将什么存储在磁盘上。如果没有这种决策操作,则通过压缩数据的一小部分、然后接下来决定将什么存储在磁盘上而浪费系统资源,特别是当连续数据特性从可压缩变为非可压缩或者相反时。当大多数连续数据主要是可压缩时,压缩该数据的小前缀被用作决定是否压缩该数据的机制。在这种情况下,系统可以继续从前缀的末端压缩到数据的末端,并且在这里使用的资源不会浪费。
决策操作是实时压缩决策工具,其可以工作在输入/输出(I/O)路径之内,并为每个写入块提供该写入块是否应该被压缩的决策。该决策是通过低开销地对数据进行采样、并使用一组轻量级的(light-weight)启发确定压缩潜力来确定的(例如,在数据块(datachunk)上采集倾向于表征该数据块的可压缩性的简单启发参数,并完全基于这些启发做出决策)。启发可以是非常高效的,并且可能比实际压缩该数据块高效得多。决策操作例如通过跳过“不可压缩的”数据而减少了实时压缩所使用的整体资源。此外,本发明应用具有各种压缩特性的熵来辅助决策操作。
现在转到图3,示出了用于实时减少用于数据压缩的CPU开销的示例性方法300。方法300通过对数据序列的随机选择的数据样本应用非压缩启发来确定是否压缩该数据序列(步骤304)而开始(步骤302)。在一个实施例中可以选择整个缓冲器。基于非压缩启发计算压缩潜力(步骤306)。将压缩潜力与阈值进行比较(步骤308)。方法300可以:如果压缩潜力匹配压缩阈值,则压缩该数据序列;或者在压缩潜力匹配仅霍夫曼阈值时仅使用霍夫曼编码进行压缩;否则,将该数据存储为非压缩的(步骤310)。方法300结束(步骤312)。
为了进一步说明图1-3,在一个实施例中,通过示例的方式,本发明(1)选择输入数据缓冲器的小样本;(2)计算(与压缩时间相比较)可以被快速算出并能指示输入的可压缩性的一组启发;(3)基于该启发计算压缩潜力函数;以及(4)仅在压缩潜力函数指示该数据与阈值匹配时压缩所述输入。输入数据缓冲器可以是应用文件或数据块(data block)。数据序列的样本可以是整个输入缓冲器和/或来自缓冲器的随机选择的(或者预定的)字节序列。样本大小可以进一步适配于输入缓冲器中不同的字符的数目(也称为字母表(alphabet)大小),并且可以是字母表大小的函数。
用于确定是否压缩或如何压缩的启发可以来自下面的示例。1)采样的数据的字节熵(例如,熵是与随机变量关联的不确定性的指示)。在此上下文中,其被称为香农熵(Shannon entropy),它描述了包含在数据中的信息的期望值。字节熵是这种对于数据的数据可压缩性的自然指示器的示例。字节熵可以是优化的霍夫曼编码的益处(benefit)的准确估计,并且一般而言在具有较低的熵的缓冲器上压缩通常更有效。2)核心字符集(核心集合(coreset))——构成样本中大多数(其被确定为一个预定的百分比)字节的字符的集合。核心集合可以被定义为构成数据的大部分(例如,90%)的唯一符号的集合。例如,构成样本的90%的字符的集合。在所描述的实施例中,本发明利用核心集合的大小作为阈值。3)字符对的出现和这种字符对的随机(均匀)分布之间的关系(参阅下面的详细示例计算)。4)字符对的熵。
为了说明熵,图4描绘了用于文件服务器数据集的相关性,其中为8KB的数据块计算熵和压缩比。现在转到图4,示出了可在其中实现本发明的各方面的、字节熵作为文件服务器数据集的压缩比的函数的示例图400。X轴示出压缩比范围从0到1.1。计算系统的熵示于Y轴,范围从0到8。X轴和Y轴的这些值被用于说明的目的。可压缩数据与不可压缩数据示于图4。如图所示,对于文件服务器数据集来说,小于5.5的熵通常预示该数据将是可压缩的(压缩比小于0.8)。如图所示,存在其熵高于5.5的可压缩数据,这主要是由于这样的事实:熵不测量数据中的重复,因此不能捕获压缩的所有方面。因此,本文所描述的说明性实施例提供了对可压缩性的更精确的指示。
在一个实施例中,为了计算系统的速度优化的目的,可以一个接一个地计算启发(例如,连续地计算启发),并基于计算出的启发分数做出决策(是否压缩)或计算下一启发。随机采样可以是自适应的(adaptive),并继续到存在统计上合理的样本数量为止,并且也自适应于遇到的字母表。可以结合随机样本使用数据结构和索引,从而减少存储器脚印和扫描。启发的计算可以一个接一个(从轻到重)地发生,以相比于用户真正所需要的来仅尝试和决定所需要的。因此,通过这些方法优化了速度。例如,可以观察到对于高度可压缩数据所消耗的决策开销为约10%,而对于不可压缩数据,开销小于3%。
可以基于部分和/或全部的启发分数计算压缩潜力函数。字符对的出现和这些字符对(character pair)的随机(均匀)分布之间的关系可以如下估算(提供了两个示例性实施例)。1)将来自核心集合的在样本中找到的对的数量与来自核心集合的在这些对以完全随机的方式/分布出现在随机采样的文本中的情况下所预期的对的数量进行比较。2)计算对值上的以下两个分布向量之间的L2 norm(欧几里得)距离:(a)表示来自核心集合的对在样本中所观察到的分布的第一分布向量,以及(b)表示基于单字符直方图的(统计)预期的对分布的第二分布向量,假设后续(subsequent)字符对之间没有相关性。3)另一种选择是测量(核心集合上的)连续字符对的熵,并且,将所观察到的字符对的相对熵与基于单字符直方图的(统计)预期的字符对熵进行比较。可以根据预定的设置来间歇地打开和关闭检测和决策功能。例如,可以使用以下设置之一:1)始终应用——如果数据应被压缩,运行启发并给出指示。2)当压缩比高于用于预定数量的缓冲器/字节的给定阈值时,按需求应用启发,并且当所有(或大多数)数据是可以良好的比例压缩时关闭。3)根据缓冲器的大小应用启发——只对给定集合的缓冲器大小。4)与前缀压缩一起应用启发,当大部分数据是可压缩的时,使用基于前缀压缩的检测,当可压缩性频繁改变时使用启发。
图5是示出使用可与本发明组合的前缀压缩估计来实时减少数据压缩的CPU开销的示例性方法500的流程图。方法500通过压缩数据的前缀(步骤504)开始(步骤502)。计算压缩的前缀的压缩比(例如,前缀压缩比)(步骤506)。将压缩比与阈值进行比较(步骤508)。仅在压缩益处计算值大于阈值时,方法500继续使用霍夫曼编码对数据进行压缩(步骤510)。该方法结束(步骤512)。
图6是示出可在其中实现本发明的各方面的、使用启发和前缀压缩估计两者来实时减少数据压缩的CPU开销的示例性方法600的流程图。方法600通过确定数据序列是否是大多数(例如,大于50%)可压缩(步骤604)而开始(步骤602)。如果是,该方法600使用以上图5所述的方法500来决定是否对数据进行压缩(步骤606)。如果不是,方法600确定数据序列的可压缩特性是否频繁地从可压缩变化到不可压缩或者相反(步骤608)。如果是,则该方法600使用以上图3所述的方法300来决定是否对数据进行压缩(步骤610)。如果不是,则方法600结束(步骤612)。
图7是示出可在其中实现本发明的各方面的、使用启发来实时减少数据压缩的CPU开销的方法的流程框图。图7描述了:1)启发方法:启发的可能顺序(order),b)如何应用阈值,c)如何进行压缩,以及d)使用霍夫曼编码来编码或存储数据。因此,在一个实施例中,本发明包括(1)随机采样写入操作数据的小子集,以及(2)如上所述,基于启发提供关于压缩还是不压缩数据的建议。如图7在下面所示,算法流程是从顶部到底部,并在每一步骤处检查一个参数或启发。如果启发满足给定的阈值则做出建议。水平箭头表示建议,向下箭头表示移动到下一个启发计算,除了步骤(5)上的底部箭头,其也是建议。竖条代表在每个步骤处用于作出建议的阈值。设计该算法以尽可能早地做出建议,减少计算开销。如图7所示,在步骤702中(例如,图7中的数字“1”),总是压缩少量的(小于1KB)数据,因为计算该启发通常会比压缩耗时更长。在步骤704中(例如,图7中的数字“2”),如果数据中不同符号的总数非常小(例如,50),则压缩该数据。在步骤706a中(例如,图7中的数字“3”),如果核心集合的大小非常小(例如,小于50),则压缩该数据,并且在步骤706b中(例如,图7中的数字“3”),如果核心集合的大小非常大(例如,大于200),则存储该数据(例如,不压缩该数据)。在一个实施例中,核心集合的大小始终在1和256之间。在步骤708a中,如果熵适当地低(例如,小于5.5),则压缩该数据。在步骤708b中(例如,图7中的数字“5a”),对于具有中度值熵(例如,5.5-6.5)和到随机分布的较小距离(例如,0.001)的数据的熵,存储该数据。在步骤708c中,对于具有较高的距离的数据的熵,压缩该数据。在步骤708d中(例如,图7中的数字“5b”),具有较高的熵(例如,大于6.5)和到随机分布的较小距离(例如,0.001)的数据不应被压缩,但到随机分布相对足够远(例如,0.02)的数据应被压缩。所述距离阈值之间的数据应使用霍夫曼编码进行压缩。
图8A是可在其中实现本发明的各方面的、对于文件服务器数据集的8KB数据块的压缩配给的启发建议的附加示例图。X轴示出了范围从0到1的压缩比。大于1的压缩比被表示为1,在X轴中被标记为1+。如上所述,通过压缩比的启发建议指示数据序列或者被压缩,或者被使用霍夫曼编码进行编码,或者被存储。Y轴表示样本的数量。如可观察到的,图8A示出启发方法针对文件服务器数据集的压缩比的建议。识别出具有高于0.9的压缩比的绝大多数不可压缩数据。可压缩的数据(压缩率小于0.8)几乎总是被识别为可压缩的。对于0.8和0.9之间的压缩比,所述建议被混合。应注意,意图是将这样的数据归类为不可压缩的,但在这个范围内的数据结果却是难以准确识别的(特别是对于8KB的块)。
图8B是可在其中实现本发明的各方面的、对于虚拟机(VM)图像数据集的8KB数据块的压缩配给的启发建议的附加示例图。X轴示出了范围从0到1的压缩比。大于1的压缩比被表示为1,在X轴中被标记为1+。如上所述,通过压缩比的启发建议指示数据序列或者被压缩,或者被使用霍夫曼编码进行编码,或者被存储。Y轴表示样本的数量。如可观察到的,图8B示出启发方法对于文件服务器数据集的压缩比的建议。识别出具有高于0.9的压缩比的绝大多数的不可压缩数据。可压缩的数据(压缩率小于0.8)几乎总是被识别为可压缩的。对于0.8和0.9之间的压缩比,所述建议被混合。应注意,意图是将这样的数据归类为不可压缩的,但在这个范围内的数据结果却是难以准确识别的(特别是对于8KB的块)。
图8C是可在其中实现本发明的各方面的、对于基准(benchmark)数据集的8KB的数据块的压缩配给的启发建议的附加示例图。X轴示出了范围从0到1的压缩比。大于1的压缩比被表示为1,在X轴中被标记为1+。如上所述,通过压缩比的启发建议指示数据序列或者被压缩,或者被使用霍夫曼编码进行编码,或者被存储。Y轴表示样本的数量。如可观察到的,图8C示出启发方法对于文件服务器数据集的压缩比的建议。识别出具有高于0.9的压缩比的绝大多数的不可压缩数据。可压缩的数据(压缩率小于0.8)几乎总是被识别为可压缩的。对于0.8和0.9之间的压缩比,所述建议被混合。应注意,意图是将这样的数据归类为不可压缩的,但在这个范围内的数据结果却是难以准确识别的(特别是对于8KB的块)。
图9是可在其中实现本发明的各方面的、用于针对各种压缩比的数据比较压缩1KB前缀、压缩8KB数据、以及启发方法的平均压缩时间的附加示例图。图9中示出了压缩、前缀压缩和启发方法的运行时间。图9示出了对于1KB前缀的前缀估计方法、启发方法的运行时间,将其与整个8KB数据块的压缩时间进行对比。X轴示出了范围从0到1的压缩比。Y轴示出了以微秒为单位的时间。如从图9中可观察到的,启发方法对于具有很好的压缩性的数据和高度不可压缩的数据两者都非常快速。对于具有0.4到0.9的压缩比的中间数据,本发明需要检查所有(或几乎所有)的启发以得到建议,因此需要较长的运行时间。对于所有的压缩比,启发方法比运行前缀估计快得多。然而,对于可压缩数据(无论何时作出正确决策),前缀估计基本上无代价,因为本发明可以仅从1KB点继续压缩数据,对于不可压缩数据,另一方面,前缀压缩估计明显是开销。因此,很显然,对于可压缩数据,前缀估计方法稍微好一点,但对于不可压缩数据,启发方法快2倍(例如,2X)到6倍(例如,6X)。
因此,在一个实施例中,本发明在单个解决方案中采用了前缀估计和启发方法两者。在一个实施例中,当所有或大多数数据是可压缩的时,可以采用前缀方法,但是每当遇到足够(例如,阈值)的不可压缩数据时就切换到启发方法。当处理大多是可压缩数据时,这种混合方法只引入很少的开销,但是一旦遇到不可压缩数据就会提供很大的CPU缓解。在一个实施例中,本发明始终应用非压缩启发并提供关于是否压缩数据序列的指示。当对于预定数量的序列和应用的非压缩启发,压缩比高于预定阈值时,可以按需要应用非压缩启发。根据缓冲器的大小应用非压缩启发,并且当数据序列的压缩比低于阈值时,应用前缀压缩估计方法并基于前缀压缩比来决定是否压缩该数据序列。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
该计算机程序指令也可以被加载到计算机、其它可编程数据处理装置或其它设备上,以引起在计算机、其它可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令能够提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
虽然已经详细地说明了本发明的一个或多个实施例,本领域技术人员应理解,在不脱离如权利要求中所阐述的本发明的范围的情况下,可以对这些实施例作出修改和改变。
Claims (16)
1.一种用于实时减少计算环境中使用处理器设备的数据压缩的CPU开销的方法,所述方法包括:
对从数据序列中随机选择的数据样本应用非压缩启发,通过基于所述非压缩启发计算压缩潜力来确定是否压缩所述数据序列,其中,将所述压缩潜力与阈值进行比较;以及
执行以下之一:
如果匹配压缩阈值,则压缩所述数据序列,
如果匹配霍夫曼编码阈值,则使用霍夫曼编码压缩所述数据序列,以及
不压缩地存储所述数据序列。
2.根据权利要求1所述的方法,还包括:
使用所述非压缩启发中的至少一个,
选择随机选择的数据样本,以及
计算构成所述随机选择的数据样本中的预定百分比的字节的核心字符、所述数据样本的数据的熵、字符对的出现与所述字符对的随机分布之间的关系、以及所述字符对的熵,用于确定是否压缩所述数据序列。
3.根据权利要求1所述的方法,还包括一个接一个地计算所述非压缩启发,以开发用于作出确定是否压缩所述数据序列的决策的启发分数,其中,所述CPU的速度被优化。
4.根据权利要求3所述的方法,还包括基于所述非压缩启发的启发分数计算所述压缩潜力。
5.根据权利要求1所述的方法,还包括:
通过以下来估计字符对的出现与所述字符对的随机分布之间的关系:
将来自所述随机选择的数据样本中的核心字符的对的数量与来自所述核心字符的在随机分布中预期要在所述随机选择的数据样本中出现的对的数量进行比较,以及
计算第一分布向量和第二分布向量之间的欧几里得距离,所述第一分布向量表示来自所述核心字符的对的数量在所述随机选择的数据样本中的观察到的分布,所述第二分布向量表示在假设来自所述核心字符的后续对之间没有相关性的情况下单值的预期分布。
6.根据权利要求1所述方法,还包括执行以下之一:关闭和开启计算所述压缩潜力,以及根据预定的设置确定是否压缩所述数据序列。
7.根据权利要求6所述的方法,其中所述预定的设置包括以下至少一个:
连续应用所述非压缩启发并提供关于是否压缩所述数据序列的指示,
当对于预定数量的数据序列,压缩比高于预定阈值时,按需要应用所述非压缩启发,
根据缓冲器的大小应用所述非压缩启发,以及
当所述数据序列的前缀压缩比低于一个阈值时,应用前缀压缩估计并基于前缀压缩比来决定是否压缩所述数据序列。
8.根据权利要求1所述的方法,还包括对来自从数据序列中随机选择的数据样本的核心字符的字符对与所述核心字符的字符对的随机分布之间的关系应用所述非压缩启发,用于通过基于所述非压缩启发计算所述压缩潜力来确定是否压缩所述数据序列。
9.一种用于实时减少计算环境中数据压缩的CPU开销的系统,该系统包括在计算存储环境中可操作的处理器设备,其中所述处理器设备:
对从数据序列中随机选择的数据样本应用非压缩启发,用于通过基于所述非压缩启发计算压缩潜力来确定是否压缩所述数据序列,其中,将所述压缩潜力与阈值进行比较;以及
执行以下之一:
如果匹配压缩阈值,则压缩所述数据序列,
如果匹配霍夫曼编码阈值,则使用霍夫曼编码压缩所述数据序列,以及
不压缩地存储所述数据序列。
10.根据权利要求9所述的系统,其中所述处理器设备:
使用所述非压缩启发中的至少一个,
选择随机选择的数据样本,以及
计算构成所述随机选择的数据样本中的预定百分比的字节的核心字符、所述数据样本的数据的熵、字符对的出现与所述字符对的随机分布之间的关系、以及所述字符对的熵,用于确定是否压缩所述数据序列。
11.根据权利要求10所述的系统,其中所述处理器设备一个接一个地计算所述非压缩启发,以开发用于作出确定是否压缩所述数据序列的决策的启发分数,其中,所述CPU的速度被优化。
12.根据权利要求11所述的系统,其中所述处理器设备基于所述非压缩启发的启发分数计算所述压缩潜力。
13.根据权利要求10所述的系统,其中所述处理器设备:
通过以下来估计字符对的出现与所述字符对的随机分布之间的关系:
将来自所述随机选择的数据样本中的核心字符的对的数量与来自所述核心字符的在随机分布中预期要在所述随机选择的数据样本中出现的对的数量进行比较,以及
计算第一分布向量和第二分布向量之间的欧几里得距离,所述第一分布向量表示来自所述核心字符的对的数量在所述随机选择的数据样本中的观察到的分布,所述第二分布向量表示在假设来自所述核心字符的后续对之间没有相关性的情况下单值的预期分布。
14.根据权利要求10所述的系统,其中所述处理器设备执行以下之一:关闭和开启计算所述压缩潜力,以及根据预定的设置确定是否压缩所述数据序列。
15.根据权利要求10所述的系统,其中所述处理器设备执行以下至少一个:
连续应用所述非压缩启发并提供关于是否压缩所述数据序列的指示,
当对于预定数量的数据序列,压缩比高于预定阈值时,按需要应用所述非压缩启发,
根据缓冲器的大小应用所述非压缩启发,以及
当所述数据序列的前缀压缩比低于一个阈值时,应用前缀压缩估计并基于前缀压缩比来决定是否压缩所述数据序列。
16.根据权利要求10所述的系统,其中所述处理器设备对来自从数据序列中随机选择的数据样本的核心字符的字符对与所述核心字符的字符对的随机分布之间的关系应用所述非压缩启发,用于通过基于所述非压缩启发计算所述压缩潜力来确定是否压缩所述数据序列。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/738,300 | 2013-01-10 | ||
US13/738,300 US9564918B2 (en) | 2013-01-10 | 2013-01-10 | Real-time reduction of CPU overhead for data compression |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103929185A CN103929185A (zh) | 2014-07-16 |
CN103929185B true CN103929185B (zh) | 2017-05-24 |
Family
ID=51061790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410012485.6A Expired - Fee Related CN103929185B (zh) | 2013-01-10 | 2014-01-10 | 实时减少数据压缩的中央处理单元开销的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9564918B2 (zh) |
CN (1) | CN103929185B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792350B2 (en) | 2013-01-10 | 2017-10-17 | International Business Machines Corporation | Real-time classification of data into data compression domains |
US9053121B2 (en) | 2013-01-10 | 2015-06-09 | International Business Machines Corporation | Real-time identification of data candidates for classification based compression |
US20140215170A1 (en) * | 2013-01-31 | 2014-07-31 | Futurewei Technologies, Inc. | Block Compression in a Key/Value Store |
US20140244604A1 (en) * | 2013-02-28 | 2014-08-28 | Microsoft Corporation | Predicting data compressibility using data entropy estimation |
US20140258247A1 (en) * | 2013-03-05 | 2014-09-11 | Htc Corporation | Electronic apparatus for data access and data access method therefor |
US9147374B2 (en) * | 2013-05-21 | 2015-09-29 | International Business Machines Corporation | Controlling real-time compression detection |
KR101468336B1 (ko) * | 2013-11-25 | 2014-12-04 | 성균관대학교산학협력단 | 데이터 압축률 예측 기법에 기반한 데이터 분산 저장 방법, 이를 이용한 저장 장치 및 시스템 |
CN106170760B (zh) * | 2014-07-11 | 2019-11-05 | 华为技术有限公司 | 一种计算数据的预期压缩率的方法及装置 |
US9836473B2 (en) * | 2014-10-03 | 2017-12-05 | International Business Machines Corporation | Hardware acceleration for a compressed computation database |
US9710166B2 (en) | 2015-04-16 | 2017-07-18 | Western Digital Technologies, Inc. | Systems and methods for predicting compressibility of data |
US10313256B2 (en) * | 2015-05-21 | 2019-06-04 | Intel Corporation | Apparatus and methods for adaptive data compression |
US10496280B2 (en) * | 2015-09-25 | 2019-12-03 | Seagate Technology Llc | Compression sampling in tiered storage |
US10341467B2 (en) | 2016-01-13 | 2019-07-02 | International Business Machines Corporation | Network utilization improvement by data reduction based migration prioritization |
US9521218B1 (en) * | 2016-01-21 | 2016-12-13 | International Business Machines Corporation | Adaptive compression and transmission for big data migration |
US10299163B2 (en) * | 2016-07-05 | 2019-05-21 | Mediatek Inc. | Enhancement on header compression |
CN107665093A (zh) * | 2016-07-29 | 2018-02-06 | 深圳市深信服电子科技有限公司 | 数据存储方法及装置 |
US10592170B2 (en) | 2017-01-25 | 2020-03-17 | International Business Machines Corporation | Optimizing dual-layered compression in storage systems |
US10694002B1 (en) * | 2017-04-27 | 2020-06-23 | EMC IP Holding Company LLC | Data compression optimization based on client clusters |
CN107179884A (zh) * | 2017-07-30 | 2017-09-19 | 长沙曙通信息科技有限公司 | 一种服务器存储新型数据压缩实现方法 |
CN108322220A (zh) * | 2018-02-08 | 2018-07-24 | 华为技术有限公司 | 编解码方法、装置及编解码设备 |
CN110875743B (zh) * | 2018-08-30 | 2023-04-28 | 上海川源信息科技有限公司 | 基于抽样猜测的数据压缩方法 |
TWI673958B (zh) * | 2018-08-30 | 2019-10-01 | 英屬開曼群島商捷鼎創新股份有限公司 | 基於抽樣猜測之資料壓縮方法 |
CN110928935B (zh) * | 2018-09-19 | 2023-11-14 | 阿里巴巴集团控股有限公司 | 数据的访问命令处理方法、装置和系统 |
US11232075B2 (en) * | 2018-10-25 | 2022-01-25 | EMC IP Holding Company LLC | Selection of hash key sizes for data deduplication |
CN111104053B (zh) * | 2018-10-26 | 2023-08-29 | 伊姆西Ip控股有限责任公司 | 存储数据的方法、装置和计算机程序产品 |
US11221991B2 (en) * | 2018-10-30 | 2022-01-11 | EMC IP Holding Company LLC | Techniques for selectively activating and deactivating entropy computation |
CN109558088B (zh) * | 2018-12-03 | 2021-12-17 | 郑州云海信息技术有限公司 | 一种压缩方法、系统、设备及计算机可读存储介质 |
US11442627B2 (en) | 2019-06-13 | 2022-09-13 | International Business Machines Corporation | Data compression utilizing low-ratio compression and delayed high-ratio compression |
CN112181919A (zh) * | 2019-07-05 | 2021-01-05 | 深信服科技股份有限公司 | 一种压缩方法、系统及电子设备和存储介质 |
US11520509B2 (en) * | 2019-07-31 | 2022-12-06 | EMC IP Holding Company, LLC | System and method for improving space efficiency by compressing multi-block aggregates |
CN111783126B (zh) * | 2020-07-21 | 2022-04-29 | 支付宝(杭州)信息技术有限公司 | 一种隐私数据识别方法、装置、设备和可读介质 |
US11755244B2 (en) * | 2021-04-22 | 2023-09-12 | EMC IP Holding Company, LLC | System and method for smart NVMeOF disk array enclosure deep background data reduction offload |
US11934678B2 (en) * | 2022-07-22 | 2024-03-19 | Hewlett Packard Enterprise Development Lp | Data reduction for storage volumes |
US11962333B2 (en) | 2022-08-19 | 2024-04-16 | Hong Kong Applied Science and Technology Research Institute Company Limited | Predicting compression ratio of data with compressible decision |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1777038A (zh) * | 2005-12-01 | 2006-05-24 | 武汉大学 | 一种二维矢量数据的压缩方法 |
CN1949670A (zh) * | 2005-10-10 | 2007-04-18 | 中兴通讯股份有限公司 | 一种数据压缩及解压缩方法 |
CN101068358A (zh) * | 2007-05-24 | 2007-11-07 | 北京航空航天大学 | 一种面向图像压缩的小波基分类构造方法 |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5532692A (en) * | 1992-09-07 | 1996-07-02 | Nippondenso Co., Ltd. | Communication system |
GB2270811B (en) * | 1992-09-17 | 1996-02-07 | Sony Broadcast & Communication | Video data compression |
CA2108833A1 (en) * | 1992-10-22 | 1994-04-23 | Masanori Ishii | File compression processor |
US5546477A (en) * | 1993-03-30 | 1996-08-13 | Klics, Inc. | Data compression and decompression |
US5486826A (en) * | 1994-05-19 | 1996-01-23 | Ps Venture 1 Llc | Method and apparatus for iterative compression of digital data |
US5701463A (en) | 1994-09-09 | 1997-12-23 | Cheyenne Advanced Technology Limited | Method of replacing the identity of a file with another as part of a file open request in a computer system |
US5768445A (en) | 1996-09-13 | 1998-06-16 | Silicon Graphics, Inc. | Compression and decompression scheme performed on shared workstation memory by media coprocessor |
DE69832593T2 (de) | 1997-03-07 | 2006-08-17 | Intelligent Compression Technologies, Falmouth | Netzwerk zur datencodierung |
US6339616B1 (en) * | 1997-05-30 | 2002-01-15 | Alaris, Inc. | Method and apparatus for compression and decompression of still and motion video data based on adaptive pixel-by-pixel processing and adaptive variable length coding |
US6049797A (en) | 1998-04-07 | 2000-04-11 | Lucent Technologies, Inc. | Method, apparatus and programmed medium for clustering databases with categorical attributes |
US6624761B2 (en) * | 1998-12-11 | 2003-09-23 | Realtime Data, Llc | Content independent data compression method and system |
US6195024B1 (en) * | 1998-12-11 | 2001-02-27 | Realtime Data, Llc | Content independent data compression method and system |
US20010054131A1 (en) | 1999-01-29 | 2001-12-20 | Alvarez Manuel J. | System and method for perfoming scalable embedded parallel data compression |
US6751354B2 (en) | 1999-03-11 | 2004-06-15 | Fuji Xerox Co., Ltd | Methods and apparatuses for video segmentation, classification, and retrieval using image class statistical models |
US7069264B2 (en) | 1999-12-08 | 2006-06-27 | Ncr Corp. | Stratified sampling of data in a database system |
WO2001050325A2 (en) * | 2000-01-03 | 2001-07-12 | Efeckta Technologies Corporation | Lossless data compression |
US6731814B2 (en) | 2000-05-01 | 2004-05-04 | Xerox Corporation | Method for compressing digital documents with control of image quality and compression rate |
US6947483B2 (en) * | 2000-08-18 | 2005-09-20 | Nortel Networks Limited | Method, apparatus, and system for managing data compression in a wireless network |
US20030030575A1 (en) | 2001-05-07 | 2003-02-13 | Harmonic Data Systems Ltd. | Lossless data compression |
US7461392B2 (en) | 2002-07-01 | 2008-12-02 | Microsoft Corporation | System and method for identifying and segmenting repeating media objects embedded in a stream |
US7551787B2 (en) * | 2003-01-28 | 2009-06-23 | International Business Machines Corporation | Adaptive compression quality |
US7197189B2 (en) * | 2003-05-15 | 2007-03-27 | Hewlett-Packard Development Company, L.P. | System and method having removable storage medium with data compression |
US7565024B2 (en) * | 2003-12-19 | 2009-07-21 | Intel Corporation | Run length coding and decoding |
US7281004B2 (en) * | 2004-02-27 | 2007-10-09 | International Business Machines Corporation | Method, system and program for optimizing compression of a workload processed by a database management system |
US7774456B1 (en) | 2004-02-27 | 2010-08-10 | Packeteer, Inc. | Methods, apparatuses and systems facilitating classification of web services network traffic |
US7574451B2 (en) | 2004-11-02 | 2009-08-11 | Microsoft Corporation | System and method for speeding up database lookups for multiple synchronized data streams |
US7653643B2 (en) * | 2005-03-24 | 2010-01-26 | Microsoft Corporation | Method and apparatus for compressing a data set |
US7382376B2 (en) | 2005-04-01 | 2008-06-03 | Seiko Epson Corporation | System and method for effectively utilizing a memory device in a compressed domain |
US7773731B2 (en) * | 2005-12-14 | 2010-08-10 | At&T Intellectual Property I, L. P. | Methods, systems, and products for dynamically-changing IVR architectures |
US8295615B2 (en) * | 2007-05-10 | 2012-10-23 | International Business Machines Corporation | Selective compression of synchronized content based on a calculated compression ratio |
US8238669B2 (en) | 2007-08-22 | 2012-08-07 | Google Inc. | Detection and classification of matches between time-based media |
KR101503829B1 (ko) | 2007-09-07 | 2015-03-18 | 삼성전자주식회사 | 데이터 압축 장치 및 방법 |
US7719443B1 (en) * | 2008-06-27 | 2010-05-18 | Emc Corporation | Compressing data in a continuous data protection environment |
US8108442B2 (en) * | 2008-07-22 | 2012-01-31 | Computer Associates Think, Inc. | System for compression and storage of data |
US7860328B2 (en) * | 2008-07-31 | 2010-12-28 | Hiroshima University | Compression processing apparatus and compression processing method |
US8135762B2 (en) | 2008-09-15 | 2012-03-13 | Bruce R. Backa | System and method for determining true computer file type identity |
US10430415B2 (en) | 2008-12-23 | 2019-10-01 | International Business Machines Corporation | Performing predicate-based data compression |
US7930436B1 (en) * | 2009-03-09 | 2011-04-19 | Znosko Dmitry Y | System and method for dynamically adjusting data compression parameters |
IL197882A (en) | 2009-03-24 | 2015-03-31 | Oleg Litvak | A method and device for compression of communication signals |
US8676725B1 (en) | 2009-06-05 | 2014-03-18 | Google Inc. | Method and system for entropy-based semantic hashing |
US8706727B2 (en) | 2009-06-19 | 2014-04-22 | Sybase, Inc. | Data compression for reducing storage requirements in a database system |
WO2011047542A1 (zh) | 2009-10-22 | 2011-04-28 | 浙江大学 | 基于空域预测的视频和图像编解码系统 |
KR101643273B1 (ko) * | 2010-04-09 | 2016-08-01 | 삼성전자주식회사 | 저장 매체에 데이터를 저장하는 방법, 그를 이용한 데이터 저장 장치, 및 그것을 포함한 시스템 |
US8396905B2 (en) | 2010-11-16 | 2013-03-12 | Actifio, Inc. | System and method for improved garbage collection operations in a deduplicated store by tracking temporal relationships among copies |
US8516580B2 (en) | 2011-04-27 | 2013-08-20 | Owl Computing Technologies, Inc. | Method and system for processing a file to identify unexpected file types |
KR101862341B1 (ko) * | 2012-01-09 | 2018-05-30 | 삼성전자주식회사 | 데이터 압축 기능을 갖는 데이터 저장 장치 |
US9246511B2 (en) * | 2012-03-20 | 2016-01-26 | Sandisk Technologies Inc. | Method and apparatus to process data based upon estimated compressibility of the data |
US9048862B2 (en) * | 2012-04-11 | 2015-06-02 | Netapp, Inc. | Systems and methods for selecting data compression for storage data in a storage system |
US8712978B1 (en) * | 2012-06-13 | 2014-04-29 | Emc Corporation | Preferential selection of candidates for delta compression |
US9792350B2 (en) | 2013-01-10 | 2017-10-17 | International Business Machines Corporation | Real-time classification of data into data compression domains |
US9053121B2 (en) | 2013-01-10 | 2015-06-09 | International Business Machines Corporation | Real-time identification of data candidates for classification based compression |
-
2013
- 2013-01-10 US US13/738,300 patent/US9564918B2/en not_active Expired - Fee Related
-
2014
- 2014-01-10 CN CN201410012485.6A patent/CN103929185B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949670A (zh) * | 2005-10-10 | 2007-04-18 | 中兴通讯股份有限公司 | 一种数据压缩及解压缩方法 |
CN1777038A (zh) * | 2005-12-01 | 2006-05-24 | 武汉大学 | 一种二维矢量数据的压缩方法 |
CN101068358A (zh) * | 2007-05-24 | 2007-11-07 | 北京航空航天大学 | 一种面向图像压缩的小波基分类构造方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103929185A (zh) | 2014-07-16 |
US20140195498A1 (en) | 2014-07-10 |
US9564918B2 (en) | 2017-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103929185B (zh) | 实时减少数据压缩的中央处理单元开销的方法和系统 | |
CN104919430B (zh) | 将数据实时分类到数据压缩域 | |
CN104272275B (zh) | 增强数据缓存性能 | |
CN104050233B (zh) | 有效计算相似搜索值和摘要块边界的方法和系统 | |
CN104050234B (zh) | 在重复数据删除系统中减少摘要存储消耗的方法和系统 | |
CN103530310B (zh) | 为基于散列的消重进行子块分割的方法和系统 | |
CN104199815B (zh) | 在重复数据删除系统中减少摘要存储消耗的方法和系统 | |
US10621083B2 (en) | Storage system and storage control method | |
CN103197924B (zh) | 用于实时选择压缩操作的方法和系统 | |
JP5603997B2 (ja) | ストレージ装置及びデータ制御方法 | |
CN104813310A (zh) | 多级别内联数据去重 | |
US9053122B2 (en) | Real-time identification of data candidates for classification based compression | |
US20200272337A1 (en) | Storage system | |
CN107832406A (zh) | 海量日志数据的去重入库方法、装置、设备及存储介质 | |
US20180039423A1 (en) | Storage system and storage control method | |
CN103473250A (zh) | 用于保存文件系统节点的过去状态的方法与系统 | |
CN104205065B (zh) | 用于列表数据压缩的多重分类 | |
US8850148B2 (en) | Data copy management for faster reads | |
CN107092701A (zh) | 一种多维数据模型的数据处理方法及装置 | |
US20140114936A1 (en) | Method for generating data in storage system having compression function | |
CN103645995B (zh) | 写数据的方法及装置 | |
CN108549716A (zh) | 一种基于布隆算法实现海量黑名单处理的方法 | |
CN110389714A (zh) | 用于数据输入输出的方法、装置和计算机存储介质 | |
CN104025088B (zh) | 将数据块分离成多个流以用于压缩的方法和系统 | |
CN104298614B (zh) | 数据块在存储设备中存储方法和存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170524 |