CN104919430A - 将数据实时分类到数据压缩域 - Google Patents
将数据实时分类到数据压缩域 Download PDFInfo
- Publication number
- CN104919430A CN104919430A CN201480004452.5A CN201480004452A CN104919430A CN 104919430 A CN104919430 A CN 104919430A CN 201480004452 A CN201480004452 A CN 201480004452A CN 104919430 A CN104919430 A CN 104919430A
- Authority
- CN
- China
- Prior art keywords
- data
- write operation
- fingerprint
- data compression
- stochastic choice
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Collating Specific Patterns (AREA)
Abstract
为了将数据实时分类到数据压缩域,通过读取随机选择的计算一组分类启发的写操作的数据来决定应该将写操作转发至哪个数据压缩域,从而为每个写操作产生指纹。将具有相似指纹的写操作在相似的压缩流中压缩在一起。
Description
技术领域
本发明一般涉及计算机,更具体地涉及在计算环境中将数据实时分类到数据压缩域。
背景技术
当今社会中,计算机系统是普遍的。可在工作场所、在家里、或在学校发现计算机系统。计算机系统可以包括数据存储系统或盘存储系统以处理和存储数据。数据存储系统或盘存储系统被用来处理和存储数据。存储系统可包括一个或多个盘驱动器。这些数据处理系统通常需要大量的数据存储。客户数据或者数据处理系统内的用户所产生的数据占据该数据存储的很大的部分。这些计算机系统中的许多系统包括虚拟存储组件。
数据压缩被广泛用于减少处理、传输或存储给定量的信息所需要的数据量。数据压缩是为了最小化数据的表示而对数据进行的编码。例如,压缩可被用于减少文件的存储需求、提高信道上的通信速率、或者在加密之前减少冗余以提高安全性。
发明内容
在一个实施例中,提供一种利用处理器装置将数据实时分类到数据压缩域的方法。为了将数据实时分类到数据压缩域,通过读取随机选择的计算一组分类启发(classifying heuristics)的写操作的数据来决定应该将写操作转发至哪个数据压缩域,从而为每个写操作产生指纹。将具有相似指纹(fingerprint)的写操作在相似的压缩流中压缩在一起。
在另一实施例中,提供一种用于将数据实时分类到数据压缩域的计算机系统,该计算机系统包括计算机可读介质和与所述计算机可读介质通信的处理器。为了将数据实时分类到数据压缩域,处理器通过读取随机选择的计算一组分类启发的写操作的数据来决定应该将写操作转发至哪个数据压缩域,从而为每个写操作产生指纹。将具有相似指纹的写操作在相似的压缩流中压缩在一起。
在又一实施例中,提供一种用于将数据实时分类到数据压缩域的计算机程序产品。该计算机可读存储介质具有存储在其上的计算机可读程序代码部分。计算机可读程序代码部分包括第一可执行部分,其通过读取随机选择的计算一组分类启发的写操作的数据来决定应该将写操作转发至哪个数据压缩域,从而为每个写操作产生指纹。将具有相似指纹的写操作在相似的压缩流中压缩在一起。
除了上述示例性方法实施例之外,还提供了其它的示例性系统和计算机产品的实施例并提供相关的优点。已经提供了上述概要以便以简化的形式介绍将在下面的详细描述中进一步描述的构思的精选。本概要并不旨在识别要求保护的主题的关键特征或必要特征,也不是旨在用于帮助确定要求保护的主题的范围。要求保护的主题并不限于解决背景技术中提到的任何或所有缺点的实施方式。
附图说明
现在将要参考附图,仅通过举例的方式描述本发明的多个实施例,其中:
图1示出可在其中实现本发明的各方面的具有示例性存储设备的计算机存储环境的框图;
图2示出可在其中实现本发明的各方面的计算机系统中的示例性数据存储系统的硬件结构的框图;
图3示出可以实现本发明的各方面的将数据实时分类至数据压缩域的示意性方法的流程图;以及
图4示出可以实现本发明的各方面的将数据实时分类至数据压缩域的附加示意性方法的流程图。
具体实施方式
如之前提及的,计算系统被用于存储和管理各种类型的数据。利用相同的压缩流压缩相似的数据提高压缩率和减少所需的存储器。然而,当写数据时,即使一个文件中的连续块,内容也不总是相似。例如,考虑具有图像和文字的文件。如果为具有图像和文字的文件创建两个分开的压缩流,那么将每种类型的数据发送至分开的压缩流,极大地提高数据压缩的效率并且提升全部数据的压缩率。
在块存储系统中,将数据块写入到存储器中而不指示写入什么类型的数据,并且没有给出写之间的关系指示(例如相同文件的写和相同数据类型的写)。因此,当压缩数据的写操作时,能够把数据压缩在一起,这些数据没有公共属性(并且没有重复),这将导致压缩率降级。块存储系统没有写入数据的类型(或类)信息并且无法利用这一点。解决这个挑战的尝试包括利用逻辑块地址(LBA)空间的空间局部性(spatial locality)的块系统的解决方案。将到给定LBA范围的任何写压缩到一起,并且这有点如同文件系统/数据库分配策略——以连续的方式分配文件或相关的文件。这种解决方案遵循流行的启发法——在单个文件中的数据是相似的并且应该在单个压缩流中被压缩。启发法被发现不总是正确的,因此数据压缩效率降低。因此,有必要实时做出使用哪个压缩流的决定,否则使用分开的压缩流是不实际的。因此,选择使用哪个压缩流的决策逻辑应该快速(快速是相对而言并且应该是使用当前现有技术可用硬件压缩数据所需时间的一部分)。
这样,在一个实施例中,本发明提供一种解决方案,利用处理器装置将数据实时分类到数据压缩域。为了将数据实时分类到数据压缩域,通过读取随机选择的计算一组分类启发的写操作的数据来决定将写操作应该转发至哪个数据压缩域,从而为每个写操作产生指纹。将具有相似指纹的写操作在相似的压缩流中压缩在一起。
如下所述,在一个实施例中,本发明“检测”到没有先前信息的数据的“类”(或特性)(例如,压缩域或压缩流被分类)。本发明允许基于数据域写入多个压缩流。本发明识别并决定应该将写操作应该转发至哪个压缩域并决定使用哪个压缩流。压缩域可以具有一个或多个有效(active)的压缩流。检测方法读取随机选取的输入数据的小片段,并且计算一组分类启发以产生数据的指纹。将在单个压缩流中具有相似指纹的数据压缩在一起,而将包含具有不同指纹和特性的数据(例如图像与文本)的写操作划分到不同的压缩流中。这种数据分类和划分利用多个机器增加了效率并通过在单个流中保持相似的数据允许更多的节点帮助压缩数据来更好地使用分布式系统(即多个压缩节点)。为了决定使用哪个压缩域和流,识别和检测算法非常快并且不需要压缩数据。
现在转到图1,描绘了计算环境中的数据存储系统的示例性架构10。计算机系统10包括连接到(多个)大容量存储(storage)设备14和存储器(memory)设备16的中央处理单元(CPU)12。大容量存储设备可以包括硬盘驱动器(HDD)设备、固态器件(SSD)等,它们可以配置在独立盘冗余阵列(RAID)中。进一步描述的备份操作可以在位于系统10中或其他地方的(多个)设备14上执行。存储器设备16可以包括诸如电可擦除可编程只读存储器(EEPROM)的存储器或相关设备的主机。存储器设备16和大容量存储设备14经由信号承载介质连接到CPU 12。此外,CPU 12通过通信端口18连接到具有附接的多个附加计算机系统22和24的通信网络20。
图2是示出根据本发明的计算机系统中的数据存储系统的硬件结构的示例性框图200。参照图2,示出了主机计算机210、220、225,各自作为中央处理单元,用于执行数据存储系统200的一部分的数据处理。主机(物理或虚拟设备)210、220和225可以是数据存储系统200中实现本发明的目的的一个或多个新的物理设备或逻辑设备。在一个实施例中,仅仅通过示例的方式,数据存储系统200可以被实现为系统存储TM DS8000TM。网络连接260可以是光纤信道织网(fabric)、光纤信道点对点链路、以太网织网或点对点链路上的光纤信道、FICON或ESCON I/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的性能。包括在数据存储控制器中的NVS 216可由微处理器242访问,并且用于对在其它附图中描述的本发明的操作和执行提供附加支持。该NVS 216,也可以被称为“永久(persistent)”高速缓存或“高速缓冲存储器”,并由可能或可能不使用外部电源来保留其中存储的数据的非易失性存储器来实现。为了任何适合于实现本发明的目标的目的,可以将NVS存储在高速缓存245中并与该高速缓存245一起存储。在一些实施例中,诸如电池的备用电源(图2中未示出)为NVS 216供给足够的功率,以在数据存储系统200有电力丢失的情况下保留存储在NVS 216中的数据。在某些实施例中,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和数据分类模块259。压缩流模块255、数据压缩域模块257和数据分类模块259可以与存储控制器240、主机210、220、225和存储设备230的每个组件协同工作。压缩流模块255、数据压缩域模块257和数据分类模块259可以被结构化为在共同工作的一个完整模块并且彼此协同工作来执行下面描述的这种功能,或者可以是单个模块。压缩流模块255、数据压缩域模块257和数据分类模块259也可以位于存储控制器240的高速缓存245或其它组件中来实现本发明的目的。
存储控制器240可以被构造为具有用于控制光纤通道协议到主计算机210、220和225的控制开关241、用于控制所有的存储控制器240的微处理器242、用于存储微程序(操作软件)250以控制存储控制器240的操作的非易失性控制存储器243、用于控制的数据和后面描述的每个表、用于临时存储(缓冲)数据的高速缓存245、用于帮助高速缓存245读写数据的缓冲器244、用于控制协议来控制数据传输至/来自设备230的控制开关241、压缩流模块255、数据压缩域模块257以及其上可以设置信息的数据分类模块259。本发明可以在计算环境中实现多个缓冲器244,或者根据描述实施例的机制来执行其它功能。
在一个实施例中,仅仅通过示例的方式,主计算机或一个或多个物理或虚拟设备210、220、225和存储控制器240通过网络适配器260(这可以是光纤通道)作为接口(即,经由有时被称为“织网(fabric)”的交换机)连接在一起。在一个实施例中,仅仅通过示例的方式,描述图2示出的系统操作。微处理器242可以控制存储器(memory)243存储来自于主机设备210(物理的或虚拟的)的指令信息和用于识别主机设备(物理的或虚拟的)210的信息。控制开关(switch)241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS216、压缩流模块255、数据压缩域模块257以及数据分类模块259彼此通信并且可以是分开的或者一个单独的组件。此外,一些组件(如果不是所有)(诸如操作软件245)可以与存储器243一起被包含在计算机存储环境中。存储设备内的每个组件可链接在一起,并可以为了与本发明相适应的目的互相通信。
现在参照图3,示出将数据实时分类到数据压缩域的示意性方法300。方法300开始(步骤302)通过读取随机选择的计算一组分类启发的写操作的数据来决定应该将写操作转发至哪个数据压缩域,从而为每个写操作产生指纹(步骤304)。方法300将具有相似指纹的写操作在压缩流中压缩在一起(步骤306)。方法300结束(步骤308)。
基于前述描述,现在参照图4,其描述了将数据实时分类到数据压缩域的附加示意性方法400。如图3所述,为了识别和决定应该将写操作转发至哪个压缩域以及为了决定使用哪个压缩流,方法400开始(步骤402),选择输入数据缓的数据采样(例如可以是由用户定义的预定大小的较小数据采样)(步骤404)。在一个实施例,输入数据缓存可以是应用文件或数据块。而且,所选择的数据采样可以是全部输入缓存、从预定义的缓存随机选择的(或预定义的)字节序列或者可以是自适应的大小(例如自适应到目前为止采样的数据)。
方法400使用对数据采样的一组启发计算数据的指纹(步骤406)。启发可以快速计算(快速是相对于压缩所需要的时间而言的)并且启发能够表明应该将什么数据压缩在一起以及不应该将什么数据压缩在一起。计算的指纹与已发送至每个有效/开放的压缩流的之前数据的指纹进行比较(步骤408)。基于比较,将数据发送至压缩相似数据的最适合的压缩域/流(根据到数据指纹的距离)(步骤410)。术语距离是指指纹之间的相似度。例如,计算当前指纹与每个压缩域/流压缩的数据的指纹之间的汉明距,并且选择具有最小距离的流。可以将指纹之间的距离计算为距离矢量,或者任何其它数学矢量距离函数。可选地,如果没有最适合的压缩域是有效/开放的(例如创建新的压缩流),那么方法400可以将数据发送到新的压缩域(步骤412)。方法400结束(步骤414)。
在一个实施例中,指纹启发法可以是以下例子中的任何一个或者组合:(1)采样数据的熵;(2)核心字符集(核心集)——构成采样中的字节的大多数(其被确定为预定的百分比)的字符的集合(和大小)。例如,构成采样的90%的字符集合;(3)采样日期或核心集的全部或部分直方图,包括直方图计数的压缩格式(少于计数的位);(4)来自采样的主要字符(dominantcharacters)或非主要字符(non-dominant characters)的组;(5)直方图或核心集的平均值、方差和/或不同契机(different moment);以及(6)在数据中发现的数据结构的指示。例如,头的存在(联合图像专家小组(JPEG)/图像交换格式"(GIF)头),数据的结构或定界符的存在。
在一个实施例中,指纹启发(fingerprinting heuristic)的另外选择是使用一些保相似哈希SPH(Similarity Preserving Hash)方法。SPH是跨数据集或部分数据集的函数,其中具有公共字符串的数据集也具有相同的值。以计算核心集(core-set)为例,本发明可以将核心集视为256长度的位矢量(假设核心集是字符)并且在核心集上应用一些纠错码(ECC)。因此,例如,如果在一个文件中核心集是A-Z并且在另一个文件中核心集是A-Z但没有J,那么这个ECC会发现它们相似。还应该指出压缩域可以在单个机器上或者在多个机器上一起工作来压缩数据。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。该计算机程序指令也可以被加载到计算机、其它可编程数据处理装置或其它设备上,以引起在计算机、其它可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令能够提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
虽然已经详细地说明了本发明的一个或多个实施例,本领域技术人员应理解,在不脱离如权利要求中所阐述的本发明的范围的情况下,可以对这些实施例作出修改和改变。
Claims (20)
1.一种方法,用于在计算环境中由处理器设备将数据实时分类到数据压缩
域,该方法包括:
通过读取随机选择的计算一组分类启发的写操作的数据来决定应该将写操作转发至哪个数据压缩域,从而为每个写操作产生指纹;以及
将具有相似指纹的写操作在压缩流中压缩在一起。
2.根据权利要求1所述的方法,进一步包括:将具有不同指纹的所述写操作分
开到不同的压缩流。
3.根据权利要求2所述的方法,还包括对每个所述写操作的每个指纹和之前转发至每个所述数据压缩域的写操作的指纹进行比较。
4.根据权利要求3所述的方法,进一步包括将具有所述相似指纹的所述写操作发送至压缩所述写操作的相似数据的所述数据压缩域。
5.根据权利要求4所述的方法,进步一步包括将所述写操作发送至新数据压缩域,其中新压缩流被创建。
6.根据权利要求1所述的方法,进一步包括使用启发法的以下组合或至少之一计算所述分类启发的组:随机选择的数据的熵,构成所述随机选择的数据的大多数字节的核心字符集和字符的大小,所述随机选择的数据或所述核心字符集的全部或部分直方图,所述随机选择的数据的主要字符的组或非主要字符的组,所述全部或部分直方图或所述核心字符集的平均值、方差和可选契机之一,以及所述数据的数据结构的指示。
7.根据权利要求1所述的方法,进一步包括使用保相似哈希SPH计算所述分类启发的组。
8.一种系统,用于在计算环境中由处理器设备将数据实时分类到数据压缩
域,该系统包括:
工作在计算存储环境中的处理器设备,其中所述处理器设备:
通过读取随机选择的计算一组分类启发的写操作的数据来决定应该将写操作转发至哪个数据压缩域,从而为每个所述写操作产生指纹;以及
将具有相似指纹的写操作在压缩流中压缩在一起。
9.根据权利要求8所述的系统,其中所述处理器设备将具有不同指纹的所述写
操作分开到不同的压缩流。
10.根据权利要求9所述的系统,其中所述处理器设备对每个所述写操作的每个指纹和之前转发至每个所述数据压缩域的写操作的指纹进行比较。
11.根据权利要求10所述的系统,其中所述处理器装置将具有所述相似指纹的所述写操作发送至压缩所述写操作的相似数据的所述数据压缩域。
12.根据权利要求11所述的系统,其中所述处理器装置将所述写操作发送至新数据压缩域,其中所述新压缩流被创建。
13.根据权利要求8所述的系统,其中所述处理器装置使用所述启发法的以下组合或至少之一计算所述分类启发的组:
随机选择的数据的熵,构成所述随机选择的数据的大多数字节的核心字符集和字符的大小,所述随机选择的数据或所述核心字符集的全部或部分直方图,
所述随机选择的数据的主要字符的组或非主要字符的组,所述全部或部分直方图或所述核心字符集的平均值、方差和可选契机之一,以及所述数据的数据结构的指示。
14.根据权利要求8所述的系统,其中所述处理器装置使用保相似哈希SPH计算所述分类启发的组。
15.一种计算机程序产品,由处理器将数据实时分类到数据压缩域,所述计算机程序产品包括其上存储有计算机可读程序代码部分的计算机可读存储介质,所述计算机可读程序代码部分包括:
第一可执行部分,其通过读取随机选择的计算一组分类启发的写操作的数据来决定应该将写操作转发至哪个数据压缩域,从而为每个写操作产生指纹;以及
第二可执行部分,其将具有相似指纹的写操作在压缩流中压缩在一起。
16.根据权利要求15所述的计算机程序产品,进一步包括第三可执行部分,其将具有不同指纹的所述写操作分开到不同的压缩流。
17.根据权利要求16所述的计算机程序产品,进一步包括第四可执行部分,其对每个所述写操作的每个指纹和之前转发至每个所述数据压缩域的写操作的指纹进行比较。
18.根据权利要求17所述的计算机程序产品,进一步包括第五可执行部分,将具有所述相似指纹的所述写操作发送至压缩所述写操作的相似数据的所述数据压缩域。
19.根据权利要求18所述的计算机程序产品,进一步包括第六可执行部分,其
将所述写操作发送至新数据压缩域,其中所述新压缩流被创建。
20.根据权利要求15所述的计算机程序产品,进一步包括的第三可执行部分,其使用所述启发法的组合或至少之一计算所述分类启发的组:
随机选择的数据的熵,构成所述随机选择的数据的大多数字节的核心字符集和字符的大小,所述随机选择的数据或所述核心字符集的全部或部分直方图,所述随机选择的数据的主要字符的组或非主要字符的组,所述全部或部分直方图或所述核心字符集的平均值、方差和可选契机之一,以及所述数据的数据结构的指示,以及
使用保相似哈希SPH计算所述分类启发的组。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/738,333 | 2013-01-10 | ||
US13/738,333 US9792350B2 (en) | 2013-01-10 | 2013-01-10 | Real-time classification of data into data compression domains |
PCT/IB2014/058037 WO2014108818A1 (en) | 2013-01-10 | 2014-01-03 | Real-time classification of data into data compression domains |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104919430A true CN104919430A (zh) | 2015-09-16 |
CN104919430B CN104919430B (zh) | 2018-10-12 |
Family
ID=51061791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480004452.5A Active CN104919430B (zh) | 2013-01-10 | 2014-01-03 | 将数据实时分类到数据压缩域 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9792350B2 (zh) |
JP (1) | JP6227007B2 (zh) |
CN (1) | CN104919430B (zh) |
DE (1) | DE112014000251T5 (zh) |
GB (1) | GB2523943B (zh) |
WO (1) | WO2014108818A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597572A (zh) * | 2018-11-22 | 2019-04-09 | 上海新储集成电路有限公司 | 一种存储管理方法 |
CN109716660A (zh) * | 2017-01-24 | 2019-05-03 | 华为技术有限公司 | 数据压缩装置和方法 |
CN111580746A (zh) * | 2019-02-18 | 2020-08-25 | 慧荣科技股份有限公司 | 在存储服务器中进行数据压缩管理的方法及设备 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495390B2 (en) * | 2012-08-21 | 2016-11-15 | Emc Corporation | Format identification for fragmented image data |
US9564918B2 (en) | 2013-01-10 | 2017-02-07 | International Business Machines Corporation | Real-time reduction of CPU overhead for data 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 |
US9798731B2 (en) * | 2013-03-06 | 2017-10-24 | Dell Products, Lp | Delta compression of probabilistically clustered chunks of data |
US9213715B2 (en) * | 2013-06-03 | 2015-12-15 | International Business Machines Corporation | De-duplication with partitioning advice and automation |
US9600420B2 (en) | 2014-10-29 | 2017-03-21 | Qualcomm Incorporated | Reducing decompression time without impacting compression ratio |
US9652152B2 (en) | 2014-10-29 | 2017-05-16 | Qualcomm Incorporated | Efficient decompression locality system for demand paging |
US10628058B1 (en) | 2017-02-15 | 2020-04-21 | Bank Of America Corporation | System for electronic data verification, storage, and transfer |
WO2019056358A1 (en) * | 2017-09-25 | 2019-03-28 | Intel Corporation | EFFICIENT MEMORIZATION OF COMPUTER PROCESSOR DATA STRUCTURES IN COMPUTER MACHINE |
WO2019157657A1 (zh) * | 2018-02-13 | 2019-08-22 | 北京小米移动软件有限公司 | 信息配置方法及装置、基站和用户设备 |
US10965786B2 (en) | 2018-10-31 | 2021-03-30 | At&T Intellectual Property I, L.P. | Adaptive fixed point mapping for uplink and downlink fronthaul |
CN109886862B (zh) * | 2019-01-25 | 2023-01-17 | 上海赜睿信息科技有限公司 | 一种数据处理的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6253264B1 (en) * | 1997-03-07 | 2001-06-26 | Intelligent Compression Technologies | Coding network grouping data of same data type into blocks using file data structure and selecting compression for individual block base on block data type |
US20020198863A1 (en) * | 1999-12-08 | 2002-12-26 | Vijayakumar Anjur | Stratified sampling of data in a database system |
US7774456B1 (en) * | 2004-02-27 | 2010-08-10 | Packeteer, Inc. | Methods, apparatuses and systems facilitating classification of web services network traffic |
US20120278884A1 (en) * | 2011-04-27 | 2012-11-01 | Owl Computing Technologies, Inc. | Method and system for processing a file to identify unexpected file types |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0587115B1 (en) | 1992-09-07 | 1999-02-10 | Denso Corporation | 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 |
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 |
AU2610701A (en) | 2000-01-03 | 2001-07-16 | Efeckta Technologies Corporation | Efficient and lossless conversion for transmission or storage of data |
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 |
AU2003280513A1 (en) * | 2002-07-01 | 2004-01-19 | Microsoft Corporation | A system and method for providing user control over repeating 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 |
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 |
CN100517979C (zh) | 2005-10-10 | 2009-07-22 | 中兴通讯股份有限公司 | 一种数据压缩及解压缩方法 |
CN100546196C (zh) | 2005-12-01 | 2009-09-30 | 武汉大学 | 一种二维矢量数据的压缩方法 |
US7773731B2 (en) | 2005-12-14 | 2010-08-10 | At&T Intellectual Property I, L. P. | Methods, systems, and products for dynamically-changing IVR architectures |
WO2008105406A1 (ja) | 2007-02-27 | 2008-09-04 | Nec Corporation | データ収集システム、データ収集方法、およびデータ収集プログラム |
US8295615B2 (en) | 2007-05-10 | 2012-10-23 | International Business Machines Corporation | Selective compression of synchronized content based on a calculated compression ratio |
CN100493197C (zh) | 2007-05-24 | 2009-05-27 | 北京航空航天大学 | 一种面向图像压缩的小波基分类构造方法 |
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 |
US20120207216A1 (en) | 2009-10-22 | 2012-08-16 | Zhejiang Uiniversity | Video and image encoding/decoding system based on spatial domain prediction |
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 |
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 |
US9564918B2 (en) | 2013-01-10 | 2017-02-07 | International Business Machines Corporation | Real-time reduction of CPU overhead for data compression |
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,333 patent/US9792350B2/en active Active
-
2014
- 2014-01-03 DE DE112014000251.8T patent/DE112014000251T5/de not_active Ceased
- 2014-01-03 CN CN201480004452.5A patent/CN104919430B/zh active Active
- 2014-01-03 GB GB1511837.5A patent/GB2523943B/en active Active
- 2014-01-03 JP JP2015552168A patent/JP6227007B2/ja not_active Expired - Fee Related
- 2014-01-03 WO PCT/IB2014/058037 patent/WO2014108818A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6253264B1 (en) * | 1997-03-07 | 2001-06-26 | Intelligent Compression Technologies | Coding network grouping data of same data type into blocks using file data structure and selecting compression for individual block base on block data type |
US20020198863A1 (en) * | 1999-12-08 | 2002-12-26 | Vijayakumar Anjur | Stratified sampling of data in a database system |
US7774456B1 (en) * | 2004-02-27 | 2010-08-10 | Packeteer, Inc. | Methods, apparatuses and systems facilitating classification of web services network traffic |
US20120278884A1 (en) * | 2011-04-27 | 2012-11-01 | Owl Computing Technologies, Inc. | Method and system for processing a file to identify unexpected file types |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109716660A (zh) * | 2017-01-24 | 2019-05-03 | 华为技术有限公司 | 数据压缩装置和方法 |
CN109716660B (zh) * | 2017-01-24 | 2021-08-13 | 华为技术有限公司 | 数据压缩装置和方法 |
CN109597572A (zh) * | 2018-11-22 | 2019-04-09 | 上海新储集成电路有限公司 | 一种存储管理方法 |
CN109597572B (zh) * | 2018-11-22 | 2022-05-03 | 上海新储集成电路有限公司 | 一种存储管理方法 |
CN111580746A (zh) * | 2019-02-18 | 2020-08-25 | 慧荣科技股份有限公司 | 在存储服务器中进行数据压缩管理的方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
US20140195499A1 (en) | 2014-07-10 |
GB201511837D0 (en) | 2015-08-19 |
GB2523943A (en) | 2015-09-09 |
JP6227007B2 (ja) | 2017-11-08 |
CN104919430B (zh) | 2018-10-12 |
WO2014108818A1 (en) | 2014-07-17 |
GB2523943B (en) | 2015-12-23 |
JP2016512625A (ja) | 2016-04-28 |
DE112014000251T5 (de) | 2015-10-01 |
US9792350B2 (en) | 2017-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104919430A (zh) | 将数据实时分类到数据压缩域 | |
US9665427B2 (en) | Hierarchical data storage architecture | |
US9817715B2 (en) | Resiliency fragment tiering | |
CN103929185B (zh) | 实时减少数据压缩的中央处理单元开销的方法和系统 | |
CN103530310B (zh) | 为基于散列的消重进行子块分割的方法和系统 | |
US9389975B2 (en) | Method and apparatus to utilize large capacity disk drives | |
US9053122B2 (en) | Real-time identification of data candidates for classification based compression | |
US20160217040A1 (en) | Raid parity stripe reconstruction | |
TW201729068A (zh) | 分佈式儲存系統、分佈式儲存方法及分佈式設施 | |
CN103514247A (zh) | 将去除了重复的数据打包到有限大小容器中的方法和系统 | |
WO2017173623A1 (zh) | 用于处理存储设备中分条的方法和存储设备 | |
CN104050233A (zh) | 有效计算相似搜索值和摘要块边界的方法和系统 | |
US8639673B2 (en) | Multiplex classification for tabular data compression | |
CN104246774A (zh) | 通过指示符在数据重复消除系统中保留冗余 | |
CN103197924A (zh) | 用于实时选择压缩操作的方法和系统 | |
JP6269530B2 (ja) | 記憶システム、記憶方法、及び、プログラム | |
CN103645995B (zh) | 写数据的方法及装置 | |
US11537330B2 (en) | Selectively improving raid operations latency | |
US20170097887A1 (en) | Storage Controller Cache Having Reserved Parity Area | |
WO2015085802A1 (zh) | 数据存储方法及存储装置 | |
JP7405608B2 (ja) | ストレージシステム | |
KR102032878B1 (ko) | 플래시 메모리 컨트롤러의 에러 정정 방법 | |
US12056366B2 (en) | Storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |