CN109716658A - 一种基于相似性的重复数据删除方法和系统 - Google Patents
一种基于相似性的重复数据删除方法和系统 Download PDFInfo
- Publication number
- CN109716658A CN109716658A CN201680087037.XA CN201680087037A CN109716658A CN 109716658 A CN109716658 A CN 109716658A CN 201680087037 A CN201680087037 A CN 201680087037A CN 109716658 A CN109716658 A CN 109716658A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- input block
- dwt
- data block
- 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
-
- 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/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3091—Data deduplication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/148—Wavelet transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2134—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis
- G06F18/21347—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis using domain transformations
-
- 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
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- 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/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
Abstract
公开了一种基于相似性的重复数据删除方法,包括以下步骤:接收输入数据块;根据所述输入数据块计算离散小波变换(discrete wavelet transform,简称DWT)系数;从计算得到的DWT系数中提取特征相关的DWT数据;对所述提取的特征相关的DWT数据进行量化以获得密钥作为量化结果;根据所述密钥构建所述输入数据块的局部敏感指纹;计算所述输入数据块的所述局部敏感指纹和超速缓存内存中多个数据块中的每个数据块的局部敏感指纹之间的相似度;选择最优参考数据块,例如在所述超速缓存内存中的所有数据块中与所述输入数据块具有最大相似度的数据块;根据所述输入数据块与所述最优参考数据块之间的相似度确定是否需要差分压缩;如果需要差分压缩,则对所述输入数据块和所述最优参考数据块进行差分压缩。还提供一种基于相似性的重复数据删除系统。
Description
技术领域
本发明涉及一种基于相似性的重复数据删除方法和一种基于相似性的重复数据删除系统。本发明还涉及一种存储程序代码的计算机可读存储介质,所述程序代码包括用于执行该方法的指令。
背景技术
传统的基于身份的重复数据删除是一种用于删除重复数据的重复副本的技术,可以应用于存储系统以提高存储利用率,也可应用于网络数据传输以提高吞吐量。典型的重复数据删除过程需要搜索重复的数据块。就存储系统而言,传统的重复数据删除技术可以通过用系统中已存储数据的相同部分的硬链接替换数据的重复部分来节省空间。处理小块数据时,硬链接等技术可以提供良好的空间增益。
传统的基于身份的重复数据删除技术的缺点之一是只能搜索到精确匹配的数据块。对于备份应用程序,这意味着,如果数据块稍加修改,那么重复数据删除系统将无法找到该数据块的匹配数据。因此,对于某些数据来说,即使数据块之间存在许多相似性,基于身份的重复数据删除的优势也可能并不十分显著。
重复数据删除系统的另一个典型要求是动态的重复数据删除,即能够实时为给定的输入数据块找到相似的数据块。只有在确定输入数据块是否类似于之前备份的另一个数据块(通常保存在高速缓存中)后才能够足够迅速地实现实时的重复数据删除。为了实现实时的重复数据删除,传统的基于身份的重复数据删除方法通常需要大容量的内存缓存来提供良好的压缩率,因此并不适用于内存有限的情况。
发明内容
本发明的目的在于提供一种基于相似性的重复数据删除方法和一种基于相似性的重复数据删除系统,用于解决适用于基于相似性的重复数据删除的局部敏感哈希(locality-sensitive hashing,简称LSH)方法的选择问题。所述基于相似性的重复数据删除方法和所述基于相似性的重复数据删除系统克服了现有技术中的一个或多个上述提到的问题。局部敏感哈希方法具有高速计算和高相似性检测速率的优点,且需要少量内存用于高速缓存。
以上和其他目的通过独立权利要求的特征来实现。进一步的实现形式从独立权利要求、说明书和附图中显而易见。
本发明第一方面提供一种基于相似性的重复数据删除方法,其特征在于,包括以下步骤:接收输入数据块;根据所述输入数据块计算离散小波变换(discrete wavelettransform,简称DWT)系数;从计算得到的DWT系数中提取特征相关的DWT数据;对所述提取的特征相关的DWT数据进行量化以获得密钥作为量化结果;根据所述密钥构建所述输入数据块的局部敏感指纹;计算所述输入数据块的所述局部敏感指纹和超速缓存内存中多个数据块中的每个数据块的局部敏感指纹之间的相似度;选择最优参考数据块,例如在所述超速缓存内存中的所有数据块中与所述输入数据块具有最大相似度的数据块;根据所述输入数据块与所述最优参考数据块之间的相似度确定是否需要差分压缩;如果需要差分压缩,则对所述输入数据块和所述最优参考数据块进行差分压缩。差分压缩代表一种允许两个文件的内容仅通过传达其差异进行同步的算法。具体而言,差分压缩是计算两个二进制数据块之间的差值的无损压缩方法。与使用精确匹配搜索的传统的基于身份的重复数据删除相比,差分压缩的压缩率更高。
第一方面的基于相似性的重复数据删除方法允许在平衡时间复杂度和相似性检测质量的同时降低内存消耗。
本发明第一方面的方法可以由本发明第二方面的计算机可读存储介质执行。本发明第一方面的方法的其他特征或实现方式可以用于实现本发明第三方面及其不同实施方式的基于相似性的重复数据删除系统的功能。
根据第一方面的所述基于相似性的重复数据删除方法,在第一种实现方式中,所述方法还包括:如果不需要差分压缩,则根据所述输入数据块与所述最优参考数据块之间的相似度确定是否需要传统单块压缩;如果需要传统单块压缩,对所述输入数据块进行传统单块压缩。所述传统单块压缩表示使用本领域技术人员已知的任何传统压缩过程对单个输入数据块进行数据压缩。对不需要差分压缩的那些数据块进行单块压缩提高了总压缩比,减少了由重复数据删除系统产生的数据,进而减少了数据消耗。
根据第一方面或第一方面的第一种实现方式中的所述基于相似性的重复数据删除方法,在第二种实现方式中,计算局部敏感指纹之间的相似度,包括:从所述局部敏感指纹中重建DWT系数;计算一系列重建的DWT系数之间的距离,其中,所述重建的DWT系数的每个系列由向量表示;所述相似度与所述计算得到的距离相反。该实现方式计算局部敏感指纹之间的相似度,而非计算数据块本身之间的相似性。计算局部敏感指纹之间的相似度比估计大型数据块之间的相似性要容易计算得多。此外,基于局部敏感指纹的相似度已证明与通过数据块的直接比较(不首先进行指纹比较)计算得出的相似性度量具有稳定的相关性。这使得在许多场景中接近最佳压缩比成为可能。
根据第一方面的第二种实现方式中的所述基于相似性的重复数据删除方法,在第三种实现方式中,所述计算局部敏感指纹之间的相似度还包括对所述重建的DWT系数进行反向离散小波变换以重建数据,计算一系列重建数据之间的距离。该步骤不是必须的,可以省略。反向离散小波变换的应用增加了基于局部敏感指纹的相似度与通过数据块的直接比较计算得到的相似性度量之间的相关准确度。
根据第一方面或第一方面的上述实现方式中的任意一种的所述基于相似性的重复数据删除方法,在第四种实现方式中,预先计算所述超速缓存内存中的多个数据块的局部敏感指纹。将预先计算得到的局部敏感指纹存储在超速缓存内存,在基于相似性的重复数据删除时就不必再进行计算。因此处理速度提高,处理时间相应减少。
根据第一方面或第一方面的上述实现方式中的任意一种的所述基于相似性的重复数据删除方法的,在第五种实现方式中,确定是否需要差分压缩,包括:接收所述输入数据块与所述最优参考数据块之间的之前已计算的相似度;将所述相似度与阈值进行比较;如果所述相似度高于所述阈值,则确定需要差分压缩。将所述相似度与阈值相比较是确定可能用于差分压缩的两个数据块之间相似性的最有效方式。
根据第一方面的第五种实现方式中的所述基于相似性的重复数据删除方法的,在第六种实现方式中,所述阈值是预定义的或者是动态定义的,以调节要进行压缩的数据块的数量。通过阈值的动态调节,可以调节要进行压缩的数据块的数量,且可以获得期望的压缩比。
根据第一方面或第一方面的上述实现方式中的任意一种中的所述基于相似性的重复数据删除方法,在第七种实现方式中,所述方法还包括:在计算所述DWT系数之前对所述输入数据块进行预处理,并对所述预处理得到的输入数据块小波变换以计算所述DWT系数,其中,对所述输入数据块进行预处理包括以下任意一种:计算所述输入数据块的n-gram的直方图、计算所述输入数据块的n-gram的缩减直方图、计算所述输入数据块的n-gram散列的直方图,或者计算所述输入数据块的n-gram散列的缩减直方图,其中,n-gram表示所述输入数据块的长度为n的连续序列,n≥1。对数据块进行预处理,提高了局部敏感指纹的质量,并相应地提高了重复数据删除系统的整体质量。预处理的目的是通过提取一些可以提高相似性检测质量的重要特征来转换初始数据。
根据第一方面的第七种实现方式中的所述基于相似性的重复数据删除方法,在第八种实现方式中,将预处理的结果重新排序或分拣,并对重新排序或分拣后的预处理得到的输入数据块进行小波变换以计算所述DWT系数。对数据进行分拣可以提高小波变换的质量。
根据第一方面或第一方面的上述实现方式中的任意一种中的所述基于相似性的重复数据删除方法的,在第九种实现方式中,所述特征相关的DWT数据至少根据以下之一进行提取:前N个系数的值、N个最大系数的值、N个最大系数的位置、N个最大系数的值和位置。N是针对整个重复数据删除系统预先确定的。所有这些替代方法都提供了可在未来相似性分析中有效使用的提取信息,例如,对数据中最常见的子序列进行编码的信息。不同的产品可以选择不同的N值。可以在重复数据删除系统的开发或测试阶段选择N的值,并且在系统的生命周期内保持不变。N的值越大,相似性检测越好(即压缩率更好)。N的数量越少,运算速度越快。实验表明,在很多情况下,N=8可以在速度和压缩率之间取得良好的平衡。
根据第一方面或第一方面的上述实现方式中的任意一种中的所述基于相似性的重复数据删除方法,在第十种实现方式中,所述方法还包括:根据所述差分压缩中数据块的使用统计,确定所述输入数据块是否应该存储在所述超速缓存内存中和/或是否应该从所述超速缓存内存中移除任何数据块;将所述输入数据块添加到所述超速缓存内存中和/或从所述超速缓存内存中移除数据块。该实现可以避免在超速缓存内存中维持过多的数据块,且平衡了所需的高速缓存容量和以便在基于相似性的重复数据删除中进一步使用的数据块存储数量。
本发明第二方面涉及一种存储程序代码的计算机可读存储介质,其中,所述程序代码包括指令,以执行根据第一方面、或第一方面实现方式中的任意一种所述的方法。
本发明第三方面涉及一种基于相似性的重复数据删除系统,包括:输入模块,用于接收输入数据块;超速缓存内存,用于存储数据块;计算模块,用于根据所述输入数据块计算离散小波变换(discrete wavelet transform,简称DWT)系数;从计算得到的DWT系数中提取特征相关的DWT数据;对所述提取的特征相关的DWT数据进行量化以获得密钥作为量化结果;根据所述密钥构建所述输入数据块的局部敏感指纹;确定模块,用于计算所述输入数据块的所述局部敏感指纹和所述超速缓存内存中多个数据块中的每个数据块的局部敏感指纹之间的相似度;选择最优参考数据块,例如在所述超速缓存内存中的多个数据块中的所有块中具有最大相似度的数据块;根据所述输入数据块与所述最优参考数据块确定是否需要差分压缩;压缩模块,用于对所述输入数据块和所述最优参考数据块进行差分压缩。
根据第三方面的所述基于相似性的重复数据删除系统,在第一种实现方式中,所述确定模块还用于,如果不需要差分压缩,则:根据所述相似度确定是否需要传统单块压缩;所述压缩模块还用于:如果需要传统单块压缩,对所述输入数据块进行传统单块压缩。
根据第三方面或第三方面的第一种实现方式的所述基于相似性的重复数据删除系统,在第二种实现方式中,所述确定模块还用于根据所述差分压缩中数据块的使用统计,确定所述输入数据块是否应该存储在所述超速缓存内存中和/或是否应该从所述超速缓存内存中移除任何数据块。
第一方面的所有实现方式可以轻易地组合并与第三方面的所有实现方式一起使用。
根据下面描述的实施例,本发明的上述和其他方面将变得显而易见。
附图说明
为了更清楚地说明本发明实施例中的技术特征,下面将对实施例描述中所需要使用的附图作简单地介绍。下面描述中的附图仅仅是本发明的一些实施例,这些实施例在不违背本发明如权力要求书中所定义的保护范围的情况下,可以进行修改。
图1是根据本发明实施例的基于相似性的重复数据删除方法的流程图;
图2是根据本发明另一实施例的使用局部敏感指纹的重复数据删除过程的流程图;
图3是根据本发明另一实施例的决定进行何种压缩的方法的流程图;
图4是根据本发明另一实施例的如图2所示的数据块的局部敏感指纹的计算过程的流程图;
图5示出了根据本发明另一个实施例的用于预处理数据块并计算DWT系数的一些选项;
图6示出了作为图5预处理结果而接收的缩减直方图;
图7A–7D示出了根据本发明实施例的计算LSH指纹的方法;
图8是根据本发明实施例的计算两个指纹之间的相似性度量的过程的流程图;
图9A–9B示出了根据本发明另一实施例的相似性估计过程;
图10是根据本发明另一实施例的计算两个LSH指纹之间的相似性的方法的流程图;
图11示出了根据本发明的方法的测试结果;
图12是根据本发明实施例的基于相似性的重复数据删除系统的框图。
具体实施方式
上文描述仅仅为本发明的实施方式,本发明的范围并不仅限于此。本领域技术人员可以容易地做出任何变化或替换。因此,本发明的保护范围应以所附权利要求的保护范围为准。
图1示出了根据本发明第一方面的基于相似性的重复数据删除方法100。该方法开始于步骤101,接收输入数据块。在步骤102中,根据所述输入数据块计算离散小波变换(discrete wavelet transform,简称DWT)系数。在步骤103中,从所述计算得到的DWT系数中提取特征相关的DWT数据,并量化(步骤104)所述提取的特征相关的DWT数据以获得密钥作为量化结果。根据所述获取到的密钥在步骤105中构建所述输入数据块的局部敏感指纹,且在步骤106中,计算所述输入数据块的所述局部敏感指纹和超速缓存内存多个数据块中的每个数据块的局部敏感指纹之间的相似度。所述相似度可以在搜索阶段存储在临时存储器中,并且在搜索完成时从存储器中移除。在步骤107中,根据计算得到的相似度选择最优参考数据块。选择所述超速缓存内存中所有数据块中与所述输入数据块具有最大相似度的数据块作为最优参考数据块。根据输入数据块与最优参考数据块之间的相似度,在步骤108中进一步确定是否需要差分压缩。如果需要差分压缩,则对所述输入数据块和所述最优参考数据块进行差分压缩(步骤109)。
图2示出了本发明提出的使用局部敏感指纹进行的重复数据删除过程200。重复数据删除用于删除重复数据的重复副本。基于相似性的重复数据删除用于利用数据相似性进行压缩。在步骤201中读取输入数据块A。然后计算(步骤202)输入数据块A的局部敏感指纹LSH_A。在步骤203中检查高速缓存是否为空。如果高速缓存不为空,则从所述高速缓存中选择参考数据块B以便可能用于差分压缩。然后决定压缩类型:差分压缩、传统单块压缩或不压缩。如果需要,则进行差分压缩(步骤205)。差分压缩是计算两个二进制数据块之间差值的无损压缩方法。如果在步骤203中确定所述高速缓存为空,则对数据块A进行传统单块压缩或不进行压缩(步骤206)。在步骤207通过输出压缩结果结束该过程。
如图2中步骤204所示,选择参考数据块的一种方法是在高速缓存中搜索参考数据块B,使得LSH_A和LSH_B之间的相似度的相反值在高速缓存中的所有数据块B中是最小的。相似度或相似性度量是显示两个数据块相似程度的数值。相似性检测过程是检测两部分数据是否相似的一种过程。该搜索可以通过遍历高速缓存中的所有数据块B并计算LSH_A和LSH_B之间的相似度的相反值来实现。高速缓存中数据块的LSH指纹通常是预先计算的。或者,可以使用类似散列表的数据结构来加快搜索时间。具体的搜索方法与本发明无关。
整个说明书中,指纹是小的具有固定大小的数据。局部敏感哈希(locality-sensitive hashing,简称LSH)是保留数据局部性的散列方法,即,如果两个数据块A和B具有相似的LSH指纹,则A和B是相似的。在处理LSH散列时,必须定义两种相似性度量:一种用于数据块,另一种用于LSH指纹,尽管散列通常使用一种方法来根据任意长度的数据块计算固定大小的指纹。
图3示出了决定压缩类型的方法300。在步骤301中,计算输入数据块A的局部敏感指纹LSH_A与候选数据块B的局部敏感指纹LSH_B之间的相似度。在步骤302中,将输入数据块A与候选数据块B之间的相似度与某个阈值threshold进行比较。所述阈值可以预定义或动态定义,以调节要进行压缩的数据块的数量。如果相似度高于阈值,则对数据块A和数据块B进行差分压缩(步骤303)。如果相似度低于阈值,则对数据块A和数据块B中的一个或两个进行传统单块压缩或不进行压缩(步骤304)。该方法通过输出压缩结果在步骤305结束。
图4示出了图2步骤202中执行的数据块的局部敏感指纹的计算过程400。该过程始于在步骤402中计算DWT系数。DWT系数表示离散小波变换的结果(一系列实数)。离散小波变换(discrete wavelet transform,简称DWT)是小波变换的一种变体,可应用于离散时间序列,其中,所述小波变换是一种使用小波的数据序列变换,将初始数据块转换为一系列系数(实数)。可以在计算DWT系数之前对数据块进行预处理(步骤401),这一步骤是可选非必须的。在计算DWT系数之后,从计算得到的DWT系数中选择(提取)(步骤403)特征相关的项(数据、信息)。在步骤404中量化所选出的特征相关的项,并从量化值中构建(步骤405)数据块的局部敏感哈希(locality-sensitive hashing,简称LSH)指纹。
所提出的局部敏感指纹的想法是对数据块应用信号处理方法以提取与相似性分析相关的信息。局部敏感哈希基于离散小波变换。小波变换是一种线性数据序列变换,不仅在频域中定位特征,而且在时域中也定位特征。小波变换可以认为是最先进的特征提取技术之一。
离散小波变换(discrete wavelet transform,简称DWT)是普通小波变换的离散版本,可以应用于任意性质、任意长度的离散时间序列。对于给定的数据序列,DWT提供了一个分解系数向量。每个系数携带了有关特征强度的信息。其索引携带了原始数据向量中特征位置和比例的信息。这样,DWT系数就可以提供关于数据特征的信息。DWT的最佳选择之一是使用哈尔变换,其他选项包括使用多贝西变换、傅里叶变换或者其算法变体。
计算DWT系数最直接的方法如下所述:初始数据块可以视为一个由N个整数构成的序列(例如,每个字节可以视为从0到255的整数,或者将每对连续字节视为0到65535之间的整数)。然后将离散小波变换应用于该N个整数的序列。这种变换将产生一系列N个实数值(DWT系数)。这些系数稍后将用于从中构建LSH指纹。
预处理是一个可选步骤,可以提高重复数据删除系统的整体质量,在进行离散小波变换之前执行。预处理的目的是通过提取一些可以提高相似性检测质量的重要特征来转换初始数据。预处理的一个优选方法是计算初始数据块的n-gram的直方图或者n-gram散列的直方图。图5示出了预处理数据块和计算DWT系数的一些选项(包括上述已经讨论过的“无预处理”选项)。
用n-gram表示一些数据块B的长度为n的连续子序列,可以使用不同的n值:n=1、n=2、n=3、n=4、n=5都是很好的选择;n也可以取更大的值。如果n=1,那么1-gram称为unigram;如果n=2,那么2-gram称为bigram。如果一个数据块的长度为N个字节,则有(N–n+1)个长度为n的子序列,其中一些可能重合。所有可能的n字节序列的总数为256^n。如果对所有256^n个n字节序列都进行排序,则可以计算n-gram上的直方图。
n-gram的直方图为非负整数的向量a(1)、a(2)、……、a(256^n),称为频率,其中,a(k)是在初始数据块B中作为子序列的编号为k的n-gram的出现次数。如果初始数据块B的长度N足够大,则a(k)中的大部分将等于零。因此,所有256^n个频点号都不保存在存储器中。相反,作为初始N字节数据块(1≤S≤N–n+1)的子序列出现的n-gram的频率b(1)、b(2)、……、b(S)可以保存在内存中。序列b(1)、b(2)、……、b(s)称为缩减直方图。S=10的n-gram缩减直方图的示例显示在图6中。
缩减直方图b(1)、b(2)、……、b(S)可以作为预处理步骤的结果来对待。计算完成后,该过程进入下一步:将离散小波变换应用于序列b(1)、b(2)、……、b(S)。结果,获得了一系列S个实数值(DWT系数)。也可以将DWT应用于直方图a(1)、a(2)、……、a(256^n)本身。
预处理数据块的另一种方法是首先计算n-gram(对于某个n来说)的缩减直方图b(1)、b(2)、……、b(S),然后对预处理的直方图重新排序(例如按照升序排列),制作另一个直方图b'(1)、b'(2)、……、b'(S),其中,b'(1)≤b'(2)≤……≤b'(S)。然后对重新排序后的缩减直方图b'(1)、b'(2)、……、b'(S)进行离散小波变换。
预处理数据块的另一种方法是使用n-gram散列的直方图。n-gram散列的直方图为具有固定大小S的向量a(1)、a(2)、……、a(S),其中,S通常是2的幂,即,S=2^K(对于某个K来说)。不同于n-gram的普通直方图,散列的直方图首先计算n-gram的散列函数并计算给定散列值的出现次数。n-gram散列的直方图具有可变固定大小的优点,而缺点则是有可能发生散列碰撞,进而降低了相似性检测质量。计算n-gram散列的直方图时可以使用任何类型的散列函数。
另外,在预处理数据块之后,可以对预处理的结果进行重新排序(可以使用固定的重新排序或可以使用分拣)。有时,对数据进行分拣可以提高小波变换的质量。
图4步骤403中选择特征相关的信息的目的在于,从上述步骤计算得到的DWT系数中提取最有价值的信息。此时,最有价值的信息是指可以在将来的相似性分析中有效使用的信息,例如,对数据中最常见的子序列进行编码的信息。
如果在上述步骤中计算得到DWT系数的序列为c(1)、c(2)、……、c(S),可以使用以下方法提取特征相关的信息:
1、选择前M个系数的值,即,c(1)、c(2)、……、c(M),其中,M≤S。M=8可为很好的选择,M也可以取其他值;
2、选择具有最大绝对值的前M个系数的值,即,c(pos_1)、c(pos_2)、……、c(pos_M),其中,pos_1、pos_2、……、pos_M是具有最大绝对值的前M个系数的位置;
3、选择绝对值最大的M个系数的位置pos_1、pos_2、……、pos_M;
4、选择具有最大绝对值的M个系数的值和位置,即,pos_1、c(pos_1)、pos_2、c(pos_2)、……、pos_M、c(pos_M)。
在使用上述方法之一(或这些方法的组合)选择了一些特征相关的DWT系数c_1、c_2、……、c_M之后,如图4中步骤405所示,指纹可以从这些系数中建构出来。如何建构有多种选择。首先,c_1、c_2、……、c_M是实数,可选地,为了得到较短的指纹,可以使用量化技术减少存储在实数c_1、c_2、……、c_M中的信息,如图4中步骤404所示。
量化是一种以有限精度将实数映射为整数或实数的方法。量化的目的是将实数映射为固定精度的值。精度通常是预先确定的,可以定义为可用于映射整数或实数的比特数量。量化的例子是四舍五入和截断。
对DWT系数和位置进行量化,量化的结果称为密钥。量化的例子如下:
1、用一些因子对系数值进行量化:Coeff==>key=truncate(Coeff/Factor);
2、浮点尾数的截断:X*10^a==>key=(X/Factor)*10^a;
3、系数位置的量化:Pos==>key=round(Pos/Factor)。
每个密钥都与信息容量相关联,即,可用于存储在密钥中的比特的数量:
Key_1with capacity=Cap_1bits
Key_2with capacity=Cap_2bits
…
Key_M with capacity=Cap_M bits
在计算出所有密钥Key_1、Key_2、……、Key_M之后,可以从中构建指纹。指纹的大小等于所有密钥的容量之和,即Size_of_fingerprint=Cap_1+Cap_2+……+Cap_M。指纹是通过级联所有密钥到一个较大的比特阵列中获得的。
进一步描述LSH指纹的计算示例,作为以下步骤的结果:
1、如果数据块A为8KB的数据块A,则可以认为是8192个数字构成的序列X1、X2、……、X8192,其中,每个数字可以取0至255之间的值,如图7A中表格所示;
2、对图7A所示的数字序列进行离散小波变换。所述小波变换将产生8192个实数值系数,如图7B中表格所示;
3、使用上述方法,从DWT系数中选择特征相关的信息。在此例中,选择6个绝对值最大的系数及其位置,结果如图7C中表格所示;
4、此例旨在将每个系数拟合成8位有符号整数CoeffKey。因此,对系数进行量化,可以使用下面的公式作为例子:
CoeffKey=127若round(Coeff/16)>127;
CoeffKey=round(Coeff/16)若–128<=round(Coeff/16)<=127;
CoeffKey=–128若round(Coeff/16)<-128;
在此例中,对位置不进行量化,但是如果希望指纹变小,也可以量化位置。只要每个位置的值的取值范围都是从0到8191,就需要13位来存储位置编号:
PosKey=Key
最后,将所有6个8位密钥(有符号整数)和6个用于编码位置的13位无符号整数收集在一起,以创建一个126位指纹。密钥和位置的收集顺序不相关,但应预先定义并固定下来,以便进行反向转换。在此例中,密钥和位置是交织的,如图7D中表格所示。
可能需要测量两个数据块之间的相似性。给定两个数据块A和B,如图1中步骤106所示,计算A和B之间的相似性度量(或相似度)Similarity(A,B)。在计算了相似性度量后,重复数据删除系统可以决定对两个数据块进行压缩的类型:不压缩、差分压缩或传统压缩。如果两个数据块之间的相似性足够高(根据下面讨论的某个预定义标准),那么对两个数据块进行差分压缩是有益的。如果两个数据块之间的相似性较低,则进行差分压缩可能没有好处。此时,重复数据删除系统可以执行传统单块压缩算法,例如,DEFLATE、LZF、LZMA、bzip2等。
因为在实际应用中数据块可能较大,可以计算相应LSH指纹LSH_A和LSH_B之间的相似性Similarity(LSH_A,LSH_B),而不是计算A和B之间的相似性。用于计算LSH指纹之间的相似性的方法当然不同于用于计算数据块本身之间的相似性的方法。在计算出两个LSH指纹之间的相似性之后,可以根据LSH指纹之间的相似性来决定压缩类型。当且仅当在Similarity(A,B)和Similarity(LSH_A,LSH_B)之间存在良好的相关性时,才有积极的结果。本发明提议的特征之一是指纹之间的相似性确实是对数据块本身之间的相似性的良好估计,即,如果使用上述方法计算LSH指纹,则可以基于LSH指纹的相似性(远比估计大数据块之间的相似性更容易计算)做出判定。
图8示出了计算两个指纹之间的相似性度量的过程。该过程包括以下步骤:
1、从指纹LSH_A和LSH_B中重建(步骤801)DWT系数;
2、计算(步骤802)在上述步骤获得的重建DWT系数之间的距离;
3、基于DWT系数,决定压缩类型:不压缩、差分压缩或传统压缩。
应该注意到,LSH指纹的来源并不重要。一个或两个数据块可以来自输入流(立即计算LSH指纹),或者一个或两个LSH指纹可以预先计算并存储在RAM缓存、磁盘缓存或其他存储器中。相似性估计的过程从两个LSH指纹开始。
进一步描述这个过程的示例。给出了两个指纹LSH_A和LSH_B,每个指纹大小为126位。首先,需要将指纹截断成密钥(位置和/或系数)。重建过程可以认为是建立LSH指纹的逆向过程。因此,重建必须与指纹构建时使用的封装规则一致。在此例中,提取了用于编码系数的6个8位密钥(有符号整数)和用于编码位置的6个13位无符号整数,如图9A中表格所示。
下一步,解码提取的密钥的位置和系数。只要位置已封装而未截断,就不需要对编码位置的整数进行额外的操作:Pos=PosKey。然而,可能需要使用以下公式将密钥逆向转换为系数:Coeff=16*CoeffKey(密钥可以视为有符号整数。)
因此,原始8192DWT的6个位置和系数可以重建。只要没有关于其他DWT系数的信息存储在LSH指纹中,就可以假定所有其他DWT系数都等于零,如图9B中表格所示。
当接收到两个指纹的所有8192个DWT系数(该系数已经从指纹中重建或配置为零)时,可以计算一系列DWT系数之间的距离。为此,将8192个系数视为8192个实数的向量。计算两个实数向量之间的距离可以使用几个度量,例如,曼哈顿度量、欧几里得度量、p度量、最大度量或其他度量。如果LSH指纹存储了DWT系数的位置作为密钥,可选地,两个LSH指纹之间的相似性可以计算为两个指纹处存在的密钥的数量(并且指纹之间的距离可以定义为与相似性相反)。实验表明,大多数度量的重复数据删除效率类似。
计算两个LSH指纹之间的相似性的替代方法如图10所示。该方法另外对在步骤1001中重建的DWT系数(的位置和值)进行反向离散小波变换(步骤1002),以重建n-gram的直方图、n-gram散列的直方图或原始数据(取决于使用的预处理方法)。之后,计算(步骤1003)重建的直方图或原始数据之间的距离,而非重建的DWT系数之间的距离,结果在步骤1004中输出。
本发明的测试结果如图11所示。总压缩比显示了重复数据删除系统产生的数据缩减,定义为以下比例:
压缩率=(未压缩数据的大小)/(压缩数据的大小)。
只要典型的基于相似性的重复数据删除系统支持三种压缩(即差分压缩、单块压缩和不压缩),压缩数据的大小可以进一步分为:
压缩数据的大小=diff_compr_size+single_block_compr_size+no_compr_size;
其中,
-diff_compr_size为使用差分压缩进行压缩的压缩数据的总的大小;
-single_block_compr_size为使用单块压缩进行压缩的压缩数据的总的大小;
-no_compr_size为没有压缩的数据的总的大小。
计算本发明提出的LSH指纹的方法具有以下优点:
1、已经显示基于LSH指纹且用上述方法计算得到的相似性度量与通过数据块的直接比较(不首先进行指纹比较)而计算得到的相似性度量具有稳定的相关性。这使得在许多场景中接近最佳压缩比成为可能;
2、指纹大小可以定制。较大的指纹尺寸会提高压缩比,但会降低速度。实验表明,少量(≤32)的DWT系数足以实现良好压缩比。如果需要非常快的速度,那么可以使用指纹大小=8;
3、内存占用空间小。如果重复数据删除系统使用内置RAM,则其大小可以定制。实验表明,对于许多重复数据删除场景,如果使用本发明提出的方法,超速缓存大小=300时足以接近理论的最优压缩比。
图12示出了一种基于相似性的重复数据删除系统(1200),包括:输入模块1201、超速缓存内存1202、计算模块1203、确定模块1204、压缩模块1205。所述输入模块1201用于接收输入数据块。所述超速缓存内存1202用于存储数据块。所述计算模块1203用于:根据所述输入数据块计算DWT系数;从计算得到的DWT系数中提取特征相关的DWT数据;对所述提取的特征相关的DWT数据进行量化以获得密钥作为量化结果;根据所述密钥构建所述输入数据块的局部敏感指纹。所述确定模块1204用于计算所述输入数据块的所述局部敏感指纹和所述超速缓存内存中多个数据块中的每个数据块的局部敏感指纹之间的相似度;选择最优参考数据块,例如在所述超速缓存内存中的多个数据块中的所有块中具有最大相似度的数据块;根据所述输入数据块与所述最优参考数据块确定是否需要差分压缩。所述压缩模块1205用于对所述输入数据块和所述最优参考数据块进行差分压缩。
Claims (15)
1.一种基于相似性的重复数据删除方法(100),其特征在于,包括以下步骤:
接收(102)输入数据块;
根据所述输入数据块计算(103)离散小波变换(discrete wavelet transform,简称DWT)系数;
从计算得到的DWT系数中提取(104)特征相关的DWT数据;
对所述提取的特征相关的DWT数据进行量化(105)以获得密钥作为量化结果;
根据所述密钥构建(106)所述输入数据块的局部敏感指纹;
计算(107)所述输入数据块的所述局部敏感指纹和超速缓存内存中多个数据块中的每个数据块的局部敏感指纹之间的相似度;
选择(108)最优参考数据块,例如在所述超速缓存内存中的所有数据块中与所述输入数据块具有最大相似度的数据块;
根据所述输入数据块与所述最优参考数据块之间的相似度确定(109)是否需要差分压缩;
如果需要差分压缩,则对所述输入数据块和所述最优参考数据块进行差分压缩(110)。
2.根据权利要求1所述的方法,其特征在于,还包括,如果不需要差分压缩,则
根据所述输入数据块与所述最优参考数据块之间的相似度确定是否需要传统单块压缩;
如果需要传统单块压缩,对所述输入数据块进行传统单块压缩。
3.根据权利要求1至2任一项所述的方法,其特征在于,计算局部敏感指纹之间的相似度,包括:
从所述局部敏感指纹中重建DWT系数;
计算一系列重建的DWT系数之间的距离,其中,所述重建的DWT系数的每个系列由向量表示;
所述相似度与所述计算得到的距离相反。
4.根据权利要求3所述的方法,其特征在于,所述计算局部敏感指纹之间的相似度还包括对所述重建的DWT系数进行反向离散小波变换以重建数据,计算一系列重建数据之间的距离。
5.根据权利要求1至4任一项所述的方法,其特征在于,预先计算所述超速缓存内存中的多个数据块的局部敏感指纹。
6.根据权利要求1至5任一项所述的方法,其特征在于,确定是否需要差分压缩,包括:
接收所述输入数据块与所述最优参考数据块之间的之前已计算的相似度;
将所述相似度与阈值进行比较;
如果所述相似度高于所述阈值,则确定需要差分压缩。
7.根据权利要求6所述的方法,其特征在于,所述阈值是预定义的或者是动态定义的,以调节要进行压缩的数据块的数量。
8.根据权利要求1至7任一项所述的方法,还包括,在计算所述DWT系数之前对所述输入数据块进行预处理,并对所述预处理得到的输入数据块进行小波变换以计算所述DWT系数,其中,对所述输入数据块进行预处理包括以下任意一种:计算所述输入数据块的n-gram的直方图、计算所述输入数据块的n-gram的缩减直方图、计算所述输入数据块的n-gram散列的直方图,或者计算所述输入数据块的n-gram散列的缩减直方图,其中,n-gram表示所述输入数据块的长度为n的连续序列,n≥1。
9.根据权利要求8所述的方法,其特征在于,将预处理的结果重新排序或分拣,并对重新排序或分拣后的预处理得到的输入数据块进行小波变换以计算所述DWT系数。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述特征相关的DWT数据至少根据以下之一进行提取:前N个系数的值、N个最大系数的值、N个最大系数的位置、N个最大系数的值和位置。
11.根据权利要求1至10任一项所述的方法,还包括:
根据所述差分压缩中数据块的使用统计,确定所述输入数据块是否应该存储在所述超速缓存内存中和/或是否应该从所述超速缓存内存中移除任何数据块;
将所述输入数据块添加到所述超速缓存内存中和/或从所述超速缓存内存中移除数据块。
12.一种存储程序代码的计算机可读存储介质,其中,所述程序代码包括指令,所述指令在计算机上执行时使所述计算机执行根据权利要求1至11中任一项所述的方法。
13.一种基于相似性的重复数据删除系统(1200),其特征在于,包括:
输入模块(1201),用于接收输入数据块;
超速缓存内存(1202),用于存储数据块;
计算模块(1203),用于
根据所述输入数据块计算离散小波变换(discrete wavelet transform,简称DWT)系数;
从计算得到的DWT系数中提取特征相关的DWT数据;
对所述提取的特征相关的DWT数据进行量化以获得密钥作为量化结果;
根据所述密钥构建所述输入数据块的局部敏感指纹;
确定模块(1204),用于
计算所述输入数据块的所述局部敏感指纹和所述超速缓存内存中多个数据块中的每个数据块的局部敏感指纹之间的相似度;
选择最优参考数据块,例如在所述超速缓存内存中的多个数据块中的所有块中具有最大相似度的数据块;
根据所述输入数据块与所述最优参考数据块确定是否需要差分压缩;
压缩模块,用于对所述输入数据块和所述最优参考数据块进行差分压缩。
14.根据权利要求13所述的系统,其特征在于,
所述确定模块还用于,如果不需要差分压缩,则:
根据所述相似度确定是否需要传统单块压缩;
所述压缩模块还用于:如果需要传统单块压缩,对所述输入数据块进行传统单块压缩。
15.根据权利要求13至14任一项所述的系统,其特征在于,所述确定模块还用于根据所述差分压缩中数据块的使用统计,确定所述输入数据块是否应该存储在所述超速缓存内存中和/或是否应该从所述超速缓存内存中移除任何数据块。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2016/000888 WO2018111133A1 (en) | 2016-12-15 | 2016-12-15 | Method and system of similarity-based deduplication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109716658A true CN109716658A (zh) | 2019-05-03 |
CN109716658B CN109716658B (zh) | 2021-08-20 |
Family
ID=58108713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680087037.XA Active CN109716658B (zh) | 2016-12-15 | 2016-12-15 | 一种基于相似性的重复数据删除方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11514666B2 (zh) |
EP (1) | EP3539218B1 (zh) |
CN (1) | CN109716658B (zh) |
WO (1) | WO2018111133A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835361A (zh) * | 2020-07-17 | 2020-10-27 | 国网上海市电力公司 | 一种数据相似性检测方法、装置、电子设备和存储介质 |
CN112544038A (zh) * | 2019-07-22 | 2021-03-23 | 华为技术有限公司 | 存储系统数据压缩的方法、装置、设备及可读存储介质 |
EP3896564A4 (en) * | 2019-06-17 | 2022-04-13 | Huawei Technologies Co., Ltd. | DATA PROCESSING METHOD AND DEVICE AND COMPUTER READABLE STORAGE MEDIA |
CN114665884A (zh) * | 2022-03-29 | 2022-06-24 | 北京诺司时空科技有限公司 | 时序数据库自适应有损压缩方法、系统及介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667144A (zh) * | 2019-10-16 | 2021-04-16 | 北京白山耘科技有限公司 | 数据块构建及比较方法、装置、介质及设备 |
CN112783417A (zh) * | 2019-11-01 | 2021-05-11 | 华为技术有限公司 | 数据缩减的方法、装置、计算设备和存储介质 |
WO2021190739A1 (en) * | 2020-03-25 | 2021-09-30 | Huawei Technologies Co., Ltd. | Method and system of differential compression |
CN116391185A (zh) * | 2020-10-30 | 2023-07-04 | 华为技术有限公司 | 用于在不可信存储装置中进行差异去重的方法和系统 |
WO2022089758A1 (en) * | 2020-10-30 | 2022-05-05 | Huawei Technologies Co., Ltd. | Method and system for re-keying encrypted data blocks in untrusted storage |
CN114780501A (zh) * | 2021-01-22 | 2022-07-22 | 伊姆西Ip控股有限责任公司 | 数据处理方法、电子设备和计算机程序产品 |
US11748307B2 (en) | 2021-10-13 | 2023-09-05 | EMC IP Holding Company LLC | Selective data compression based on data similarity |
WO2024030040A1 (en) * | 2022-08-02 | 2024-02-08 | Huawei Technologies Co., Ltd | Method for date compression and related device |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1219079A (zh) * | 1997-09-29 | 1999-06-09 | 佳能株式会社 | 用于数字数据压缩的方法 |
US20090055422A1 (en) * | 2007-08-23 | 2009-02-26 | Ken Williams | System and Method For Data Compression Using Compression Hardware |
CN102222085A (zh) * | 2011-05-17 | 2011-10-19 | 华中科技大学 | 一种基于相似性与局部性结合的重复数据删除方法 |
CN102246137A (zh) * | 2008-11-14 | 2011-11-16 | Emc公司 | 身份副本删除之后的delta压缩 |
US20120016845A1 (en) * | 2010-07-16 | 2012-01-19 | Twinstrata, Inc | System and method for data deduplication for disk storage subsystems |
WO2012109145A2 (en) * | 2011-02-11 | 2012-08-16 | Velobit, Inc. | Pre-cache similarity-based delta compression for use in a data storage system |
CN103403710A (zh) * | 2011-02-10 | 2013-11-20 | 雅虎公司 | 对来自音频信号的特征指纹的提取和匹配 |
US8712978B1 (en) * | 2012-06-13 | 2014-04-29 | Emc Corporation | Preferential selection of candidates for delta compression |
CN104778689A (zh) * | 2015-03-30 | 2015-07-15 | 广西师范大学 | 一种基于均值二次图像和局部保持投影的图像摘要方法 |
CN104918046A (zh) * | 2014-03-13 | 2015-09-16 | 中兴通讯股份有限公司 | 一种局部描述子压缩方法和装置 |
CN106131575A (zh) * | 2016-07-01 | 2016-11-16 | 浙江工业大学 | 基于小波变换与孙子定理相结合的图像压缩方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5710835A (en) * | 1995-11-14 | 1998-01-20 | The Regents Of The University Of California, Office Of Technology Transfer | Storage and retrieval of large digital images |
JP3906630B2 (ja) * | 2000-08-08 | 2007-04-18 | ソニー株式会社 | 画像符号化装置及び方法並びに画像復号装置及び方法 |
US20060088219A1 (en) | 2004-10-26 | 2006-04-27 | Yan Zhang | Object classification method utilizing wavelet signatures of a monocular video image |
US7974478B2 (en) * | 2006-08-24 | 2011-07-05 | Dell Products L.P. | Methods and apparatus for reducing storage size |
US8411977B1 (en) | 2006-08-29 | 2013-04-02 | Google Inc. | Audio identification using wavelet-based signatures |
US9582222B2 (en) * | 2009-04-30 | 2017-02-28 | Western Digital Technologies, Inc. | Pre-cache similarity-based delta compression for use in a data storage system |
US9413527B2 (en) * | 2009-04-30 | 2016-08-09 | HGST Netherlands B.V. | Optimizing signature computation and sampling for fast adaptive similarity detection based on algorithm-specific performance |
US9176883B2 (en) | 2009-04-30 | 2015-11-03 | HGST Netherlands B.V. | Storage of data reference blocks and deltas in different storage devices |
US20150010143A1 (en) * | 2009-04-30 | 2015-01-08 | HGST Netherlands B.V. | Systems and methods for signature computation in a content locality based cache |
US8290918B1 (en) | 2009-09-29 | 2012-10-16 | Google Inc. | Robust hashing of digital media data |
US8935487B2 (en) | 2010-05-05 | 2015-01-13 | Microsoft Corporation | Fast and low-RAM-footprint indexing for data deduplication |
US8918390B1 (en) | 2012-06-13 | 2014-12-23 | Emc Corporation | Preferential selection of candidates for delta compression |
US10229132B2 (en) | 2013-07-15 | 2019-03-12 | International Business Machines Corporation | Optimizing digest based data matching in similarity based deduplication |
US9514146B1 (en) * | 2013-09-26 | 2016-12-06 | Emc Corporation | System and method for improving data compression of a storage system in an online manner |
US11507601B2 (en) * | 2016-08-18 | 2022-11-22 | International Business Machines Corporation | Matching a first collection of strings with a second collection of strings |
-
2016
- 2016-12-15 WO PCT/RU2016/000888 patent/WO2018111133A1/en unknown
- 2016-12-15 CN CN201680087037.XA patent/CN109716658B/zh active Active
- 2016-12-15 EP EP16838094.7A patent/EP3539218B1/en active Active
-
2019
- 2019-06-14 US US16/442,102 patent/US11514666B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1219079A (zh) * | 1997-09-29 | 1999-06-09 | 佳能株式会社 | 用于数字数据压缩的方法 |
US20090055422A1 (en) * | 2007-08-23 | 2009-02-26 | Ken Williams | System and Method For Data Compression Using Compression Hardware |
CN102246137A (zh) * | 2008-11-14 | 2011-11-16 | Emc公司 | 身份副本删除之后的delta压缩 |
US20120016845A1 (en) * | 2010-07-16 | 2012-01-19 | Twinstrata, Inc | System and method for data deduplication for disk storage subsystems |
CN103403710A (zh) * | 2011-02-10 | 2013-11-20 | 雅虎公司 | 对来自音频信号的特征指纹的提取和匹配 |
WO2012109145A2 (en) * | 2011-02-11 | 2012-08-16 | Velobit, Inc. | Pre-cache similarity-based delta compression for use in a data storage system |
CN102222085A (zh) * | 2011-05-17 | 2011-10-19 | 华中科技大学 | 一种基于相似性与局部性结合的重复数据删除方法 |
US8712978B1 (en) * | 2012-06-13 | 2014-04-29 | Emc Corporation | Preferential selection of candidates for delta compression |
CN104918046A (zh) * | 2014-03-13 | 2015-09-16 | 中兴通讯股份有限公司 | 一种局部描述子压缩方法和装置 |
CN104778689A (zh) * | 2015-03-30 | 2015-07-15 | 广西师范大学 | 一种基于均值二次图像和局部保持投影的图像摘要方法 |
CN106131575A (zh) * | 2016-07-01 | 2016-11-16 | 浙江工业大学 | 基于小波变换与孙子定理相结合的图像压缩方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3896564A4 (en) * | 2019-06-17 | 2022-04-13 | Huawei Technologies Co., Ltd. | DATA PROCESSING METHOD AND DEVICE AND COMPUTER READABLE STORAGE MEDIA |
US11797204B2 (en) | 2019-06-17 | 2023-10-24 | Huawei Technologies Co., Ltd. | Data compression processing method and apparatus, and computer-readable storage medium |
CN112544038A (zh) * | 2019-07-22 | 2021-03-23 | 华为技术有限公司 | 存储系统数据压缩的方法、装置、设备及可读存储介质 |
CN111835361A (zh) * | 2020-07-17 | 2020-10-27 | 国网上海市电力公司 | 一种数据相似性检测方法、装置、电子设备和存储介质 |
CN111835361B (zh) * | 2020-07-17 | 2024-04-30 | 国网上海市电力公司 | 一种数据相似性检测方法、装置、电子设备和存储介质 |
CN114665884A (zh) * | 2022-03-29 | 2022-06-24 | 北京诺司时空科技有限公司 | 时序数据库自适应有损压缩方法、系统及介质 |
CN114665884B (zh) * | 2022-03-29 | 2022-11-25 | 北京诺司时空科技有限公司 | 时序数据库自适应有损压缩方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3539218B1 (en) | 2021-04-07 |
US11514666B2 (en) | 2022-11-29 |
WO2018111133A1 (en) | 2018-06-21 |
CN109716658B (zh) | 2021-08-20 |
US20190294589A1 (en) | 2019-09-26 |
EP3539218A1 (en) | 2019-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109716658A (zh) | 一种基于相似性的重复数据删除方法和系统 | |
Blalock et al. | Sprintz: Time series compression for the internet of things | |
US8908978B2 (en) | Signature representation of data having high dimensionality | |
Chen et al. | Tree histogram coding for mobile image matching | |
Gueniche et al. | Compact prediction tree: A lossless model for accurate sequence prediction | |
KR101565265B1 (ko) | 피쳐 위치 정보의 코딩 | |
Guha et al. | Image similarity using sparse representation and compression distance | |
US8312026B2 (en) | Compressing massive relational data | |
Pao et al. | Malicious URL detection based on kolmogorov complexity estimation | |
Bhattacharjee et al. | Comparison study of lossless data compression algorithms for text data | |
Ilkhechi et al. | Deepsqueeze: Deep semantic compression for tabular data | |
CN110021369A (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
Rahman et al. | A novel lossless coding technique for image compression | |
Chen et al. | A novel preprocessing method for solving long sequence problem in android malware detection | |
US20170097981A1 (en) | Apparatus and method for data compression | |
Song et al. | Dictionary based compression type classification using a CNN architecture | |
Malach et al. | Hardware-based real-time deep neural network lossless weights compression | |
Shaila et al. | Block encoding of color histogram for content based image retrieval applications | |
Liu et al. | A high performance compression method for climate data | |
Matsui et al. | ARM 4-BIT PQ: SIMD-Based Acceleration for Approximate Nearest Neighbor Search on ARM | |
Ouali et al. | GPU implementation of an audio fingerprints similarity search algorithm | |
Makarichev et al. | Comparison of DAT with DCT in a Viewpoint of Current Image Processing and Analysis Trends | |
Chang et al. | Very efficient variable-length codes for the lossless compression of VQ indices | |
Zhu et al. | File Fragment Type Identification Based on CNN and LSTM | |
Reznik et al. | Fast quantization and matching of histogram-based image features |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |