CN103020317A - 基于重复数据删除的数据压缩方法和装置 - Google Patents
基于重复数据删除的数据压缩方法和装置 Download PDFInfo
- Publication number
- CN103020317A CN103020317A CN2013100093425A CN201310009342A CN103020317A CN 103020317 A CN103020317 A CN 103020317A CN 2013100093425 A CN2013100093425 A CN 2013100093425A CN 201310009342 A CN201310009342 A CN 201310009342A CN 103020317 A CN103020317 A CN 103020317A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- data block
- meta
- meta file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于重复数据删除的数据压缩方法,包括以下步骤:将原文件分割成多个数据块;使用MD5算法计算多个数据块的哈希指纹;在哈希表中查询哈希指纹;当哈希表中不存在哈希指纹时,使用lz77算法将多个数据块压缩后保存在.data文件中,并将至少包括指纹和数据块偏移量的信息保存在哈希表中;将数据块偏移量、数据块长度保存在.meta文件中;当所有的数据块均处理完成后,将至少包括文件名、数据块个数、.meta文件长度的信息作为元数据保存在.meta文件的尾部;将.meta文件追加到.data文件的尾部;以及重命名.data文件。
Description
技术领域
本发明总体上涉及计算机领域,更具体地,涉及基于重复数据删除的数据压缩方法和装置。
背景技术
随着信息化技术的发展和深入,企业对数据的依赖不断增强。与此同时,急速增长的数据量也给管理和使用都带来了全新的挑战。面对数据的爆炸性增长,仅仅提高系统运算能力和增加存储介质容量已经不能满足高速发展的各种数据应用,对高效数据缩减技术的需求已经逐步显现出来,并且越来越迫切。
目前能够实现数据缩减的技术主要有两种:数据压缩和重复数据删除。数据压缩技术通过对数据重新编码来降低其冗余度;而重复数据删除技术则着眼于删除重复出现的数据块。
数据压缩的基本原理如下:
首先,数据中间常存在一些多余成分,既冗余度。如在一份计算机文件中,某些符号会重复出现、某些符号比其他符号出现得更频繁、某些字符总是在各数据块中可预见的位置上出现等,这些冗余部分便可在数据编码中除去或减少。冗余度压缩是一个可逆过程,因此叫做无失真压缩,或称保持型编码。
其次,数据中间尤其是相邻的数据之间,常存在着相关性。如图片中常常有色彩均匀的背影,电视信号的相邻两帧之间可能只有少量的变化影物是不同的,声音信号有时具有一定的规律性和周期性等等。因此,有可能利用某些变换来尽可能地去掉这些相关性。但这种变换有时会带来不可恢复的损失和误差,因此叫做不可逆压缩,或称有失真编码、摘压缩等。
此外,人们在欣赏音像节目时,由于耳、目对信号的时间变化和幅度变化的感受能力都有一定的极限,如人眼对影视节目有视觉暂留效应,人眼或人耳对低于某一极限的幅度变化已无法感知等,故可将信号中这部分感觉不出的分量压缩掉或“掩蔽掉”。这种压缩方法同样是一种不可逆压缩。
一种数据缩减技术,通常用于基于磁盘的备份系统,旨在减少存储系统中使用的存储容量。它的工作方式是在某个时间周期内查找不同文件中不同位置的重复可变大小数据块。重复的数据块用指示符取代。高度冗余的数据集(例如备份数据)从数据重复删除技术的获益极大;用户可以实现10比1至50比1的缩减比。而且,重复数据删除技术可以允许用户的不同站点之间进行高效,经济的备份数据复制。
备份设备中总是充斥着大量的冗余数据。为了解决这个问题,节省更多空间,“重复删除”技术便顺理成章地成了人们关注的焦点。采用“重复删除”技术可以将存储的数据缩减为原来的1/20,从而让出更多的备份空间,不仅可以使磁盘上的备份数据保存更长的时间,而且还可以节约离线存储时所需的大量的带宽。
数据压缩技术可以降低数据块内部的冗余,重复数据删除技术可以降低数据块之间的冗余,然而,现有技术中并未披露过将两者有机结合的任何技术方案。
发明内容
为此,本发明提供了一种基于重复数据删除的数据压缩方法,包括以下步骤:将原文件分割成多个数据块;使用MD5算法计算多个数据块的哈希指纹;在哈希表中查询哈希指纹;当哈希表中不存在哈希指纹时,使用lz77算法将多个数据块压缩后保存在.data文件中,并将至少包括指纹和数据块偏移量的信息保存在哈希表中;将数据块偏移量、数据块长度保存在.meta文件中;当所有的数据块均处理完成后,将至少包括文件名、数据块个数、.meta文件长度的信息作为元数据保存在.meta文件的尾部;将.meta文件追加到.data文件的尾部;以及重命名.data文件。
其中,当哈希表中存在哈希指纹时,直接将数据块偏移量、数据块长度保存在.meta文件中。
其中,在将.meta文件追加到.data文件的尾部之后,删除.meta文件。
其中,在进行解压操作时,根据元数据逐步解压多个数据块,将原文件还原。
此外,还提供了一种基于重复数据删除的数据压缩装置,包括:分割模块,用于将原文件分割成多个数据块;计算模块,用于使用MD5算法计算多个数据块的哈希指纹;查询模块,用于在哈希表中查询哈希指纹;第一保存模块,用于在哈希表中不存在哈希指纹时,使用lz77算法将多个数据块压缩后保存在.data文件中,并将至少包括指纹和数据块偏移量的信息保存在哈希表中;第二保存模块,用于将数据块偏移量、数据块长度保存在.meta文件中;第三保存模块,用于当所有的数据块均处理完成后,将至少包括文件名、数据块个数、.meta文件长度的信息作为元数据保存在.meta文件的尾部;追加模块,用于将.meta文件追加到.data文件的尾部;以及重命名模块,用于重命名.data文件。
其中,当哈希表中存在哈希指纹时,直接通过第二保存模块将数据块偏移量、数据块长度保存在.meta文件中。
其中,在将.meta文件追加到.data文件的尾部之后,删除.meta文件。
其中,在进行解压操作时,根据元数据逐步解压多个数据块,将原文件还原。
附图说明
当结合附图进行阅读时,根据下面详细的描述可以更好地理解本发明。应该强调的是,根据工业中的标准实践,各种部件没有被按比例绘制。实际上,为了清楚的讨论,各种部件的尺寸可以被任意增加或减少
图1是示出了根据本发明的示例性实施例的基于重复数据删除的数据压缩方法的流程图;以及
图2是示出了根据本发明的示例性实施例的基于重复数据删除的数据压缩装置的框图。
具体实施方式
为了实施本发明的不同部件,以下描述提供了许多不同的实施例或示例。以下描述元件和布置的特定示例以简化本发明。当然这些仅仅是示例并不打算限定。再者,以下描述中第一部件形成在第二部件上可包括其中第一和第二部件以直接接触形成的实施例,并且也可包括其中额外的部件形成插入到第一和第二部件中的实施例,使得第一和第二部件不直接接触。为了简明和清楚,可以任意地以不同的尺寸绘制各种部件。
在本实施例中,如图1所示,提供了一种基于重复数据删除的数据压缩方法,包括以下步骤:将原文件分割成多个数据块;使用MD5算法计算这些数据块的哈希指纹,即计算数据块的md5值;在哈希表hashtable中查询哈希指纹;当哈希表中不存在哈希指纹时,使用lz77算法将多个数据块压缩后保存在.data文件中,并将至少包括指纹和数据块偏移量的信息保存在哈希表中;将数据块偏移量、数据块长度保存在.meta文件中;当所有的数据块均处理完成后,将至少包括文件名、数据块个数、.meta文件长度的信息作为元数据保存在.meta文件的尾部;将.meta文件追加到.data文件的尾部;以及重命名.data文件。
MD5算法即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。
lz77算法是一种基于字典的无损数据压缩算法。
.meta文件是存放元数据信息的文件。
.data文件是存放数据块的文件。
优选地,当哈希表中存在哈希指纹时,直接将数据块偏移量、数据块长度保存在.meta文件中。
优选地,在将.meta文件追加到.data文件的尾部之后,删除.meta文件。
优选地,在进行解压操作时,根据元数据逐步解压多个数据块,将原文件还原。
此外,如图2所示,还提供了一种基于重复数据删除的数据压缩装置,包括:分割模块201,用于将原文件分割成多个数据块;计算模块203,用于使用MD5算法计算多个数据块的哈希指纹;查询模块205,用于在哈希表中查询哈希指纹;第一保存模块207,用于在哈希表中不存在哈希指纹时,使用lz77算法将多个数据块压缩后保存在.data文件中,并将至少包括指纹和数据块偏移量的信息保存在哈希表中;第二保存模块209,用于将数据块偏移量、数据块长度保存在.meta文件中;第三保存模块211,用于当所有的数据块均处理完成后,将至少包括文件名、数据块个数、.meta文件长度的信息作为元数据保存在.meta文件的尾部;追加模块213,用于将.meta文件追加到.data文件的尾部;以及重命名模块215,用于重命名.data文件。
优选地,当哈希表中存在哈希指纹时,直接通过第二保存模块将数据块偏移量、数据块长度保存在.meta文件中。
本发明将数据压缩技术和重复数据删除技术进行了有机结合,产生了一种新的数据压缩方法,提高了数据压缩率。
上面论述了若干实施例的部件,使得本领域普通技术人员可以更好地理解本发明的各个方面。本领域普通技术人员应该理解,可以很容易地使用本发明作为基础来设计或更改其他用于达到与这里所介绍实施例相同的目的和/或实现相同优点的处理和结构。本领域普通技术人员也应该意识到,这种等效构造并不背离本发明的精神和范围,并且在不背离本发明的精神和范围的情况下,可以进行多种变化、替换以及改变。
Claims (8)
1.一种基于重复数据删除的数据压缩方法,其特征在于,包括以下步骤:
将原文件分割成多个数据块;
使用MD5算法计算所述多个数据块的哈希指纹;
在哈希表中查询所述哈希指纹;
当所述哈希表中不存在所述哈希指纹时,使用lz77算法将所述多个数据块压缩后保存在.data文件中,并将至少包括指纹和数据块偏移量的信息保存在所述哈希表中;
将数据块偏移量、数据块长度保存在.meta文件中;
当所有的数据块均处理完成后,将至少包括文件名、数据块个数、.meta文件长度的信息作为元数据保存在.meta文件的尾部;
将.meta文件追加到.data文件的尾部;以及
重命名.data文件。
2.根据权利要求1所述的方法,其特征在于,当所述哈希表中存在所述哈希指纹时,直接将数据块偏移量、数据块长度保存在.meta文件中。
3.根据权利要求1所述的方法,其特征在于,在将.meta文件追加到.data文件的尾部之后,删除.meta文件。
4.根据权利要求1所述的方法,其特征在于,在进行解压操作时,根据所述元数据逐步解压所述多个数据块,将所述原文件还原。
5.一种基于重复数据删除的数据压缩装置,其特征在于,包括:
分割模块,用于将原文件分割成多个数据块;
计算模块,用于使用MD5算法计算所述多个数据块的哈希指纹;
查询模块,用于在哈希表中查询所述哈希指纹;
第一保存模块,用于在所述哈希表中不存在所述哈希指纹时,使用lz77算法将所述多个数据块压缩后保存在.data文件中,并将至少包括指纹和数据块偏移量的信息保存在所述哈希表中;
第二保存模块,用于将数据块偏移量、数据块长度保存在.meta文件中;
第三保存模块,用于当所有的数据块均处理完成后,将至少包括文件名、数据块个数、.meta文件长度的信息作为元数据保存在.meta文件的尾部;
追加模块,用于将.meta文件追加到.data文件的尾部;以及
重命名模块,用于重命名.data文件。
6.根据权利要求5所述的方法,其特征在于,当所述哈希表中存在所述哈希指纹时,直接通过所述第二保存模块将数据块偏移量、数据块长度保存在.meta文件中。
7.根据权利要求5所述的方法,其特征在于,在将.meta文件追加到.data文件的尾部之后,删除.meta文件。
8.根据权利要求5所述的方法,其特征在于,在进行解压操作时,根据所述元数据逐步解压所述多个数据块,将所述原文件还原。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100093425A CN103020317A (zh) | 2013-01-10 | 2013-01-10 | 基于重复数据删除的数据压缩方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100093425A CN103020317A (zh) | 2013-01-10 | 2013-01-10 | 基于重复数据删除的数据压缩方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103020317A true CN103020317A (zh) | 2013-04-03 |
Family
ID=47968920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100093425A Pending CN103020317A (zh) | 2013-01-10 | 2013-01-10 | 基于重复数据删除的数据压缩方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103020317A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022593A (zh) * | 2015-08-18 | 2015-11-04 | 南京大学 | 一种基于数据压缩和数据去冗协同的存储优化方法 |
CN105389387A (zh) * | 2015-12-11 | 2016-03-09 | 上海爱数信息技术股份有限公司 | 一种基于压缩的重复数据删除性能及重删率提升的方法和系统 |
CN105912622A (zh) * | 2016-04-05 | 2016-08-31 | 重庆大学 | 一种针对无损压缩文件的数据去重方法 |
CN106708927A (zh) * | 2016-11-18 | 2017-05-24 | 北京二六三企业通信有限公司 | 文件的去重处理方法和装置 |
CN106982165A (zh) * | 2016-01-15 | 2017-07-25 | 厦门雅迅网络股份有限公司 | 数据压缩方法及其系统 |
CN107506153A (zh) * | 2017-09-26 | 2017-12-22 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN107612554A (zh) * | 2017-09-21 | 2018-01-19 | 国家电网公司 | 数据压缩处理方法 |
CN107682016A (zh) * | 2017-09-26 | 2018-02-09 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
WO2018058604A1 (zh) * | 2016-09-30 | 2018-04-05 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
WO2018165939A1 (en) * | 2017-03-16 | 2018-09-20 | Intel Corporation | Flash data compression decompression method and apparatus |
CN108650256A (zh) * | 2018-05-09 | 2018-10-12 | 南京思达捷信息科技有限公司 | 一种大数据的取得系统 |
CN109947776A (zh) * | 2019-03-15 | 2019-06-28 | 海南新软软件有限公司 | 一种数据压缩、解压方法及装置 |
CN111697973A (zh) * | 2019-05-16 | 2020-09-22 | 时擎智能科技(上海)有限公司 | 压缩方法及压缩系统 |
CN112380196A (zh) * | 2020-10-28 | 2021-02-19 | 安擎(天津)计算机有限公司 | 一种用于数据压缩传输的服务器 |
CN117667788A (zh) * | 2024-01-30 | 2024-03-08 | 苏州元脑智能科技有限公司 | 数据的交互方法、计算机系统、电子设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908077A (zh) * | 2010-08-27 | 2010-12-08 | 华中科技大学 | 一种适用于云备份的重复数据删除方法 |
-
2013
- 2013-01-10 CN CN2013100093425A patent/CN103020317A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908077A (zh) * | 2010-08-27 | 2010-12-08 | 华中科技大学 | 一种适用于云备份的重复数据删除方法 |
Non-Patent Citations (1)
Title |
---|
贾志凯: "《海量数据消冗系统的研究与实现》", 《万方硕士论文数据库》, 3 August 2011 (2011-08-03) * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022593A (zh) * | 2015-08-18 | 2015-11-04 | 南京大学 | 一种基于数据压缩和数据去冗协同的存储优化方法 |
CN105022593B (zh) * | 2015-08-18 | 2017-09-26 | 南京大学 | 一种基于数据压缩和数据去冗协同的存储优化方法 |
CN105389387A (zh) * | 2015-12-11 | 2016-03-09 | 上海爱数信息技术股份有限公司 | 一种基于压缩的重复数据删除性能及重删率提升的方法和系统 |
CN105389387B (zh) * | 2015-12-11 | 2018-12-14 | 上海爱数信息技术股份有限公司 | 一种基于压缩的重复数据删除性能及重删率提升的方法和系统 |
CN106982165A (zh) * | 2016-01-15 | 2017-07-25 | 厦门雅迅网络股份有限公司 | 数据压缩方法及其系统 |
CN105912622A (zh) * | 2016-04-05 | 2016-08-31 | 重庆大学 | 一种针对无损压缩文件的数据去重方法 |
WO2018058604A1 (zh) * | 2016-09-30 | 2018-04-05 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
CN110419036B (zh) * | 2016-09-30 | 2022-04-12 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
CN110419036A (zh) * | 2016-09-30 | 2019-11-05 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
CN106708927A (zh) * | 2016-11-18 | 2017-05-24 | 北京二六三企业通信有限公司 | 文件的去重处理方法和装置 |
CN106708927B (zh) * | 2016-11-18 | 2021-01-05 | 北京二六三企业通信有限公司 | 文件的去重处理方法和装置 |
WO2018165939A1 (en) * | 2017-03-16 | 2018-09-20 | Intel Corporation | Flash data compression decompression method and apparatus |
US10970206B2 (en) | 2017-03-16 | 2021-04-06 | Intel Corporation | Flash data compression decompression method and apparatus |
CN107612554A (zh) * | 2017-09-21 | 2018-01-19 | 国家电网公司 | 数据压缩处理方法 |
CN107612554B (zh) * | 2017-09-21 | 2020-08-11 | 国家电网公司 | 数据压缩处理方法 |
CN107506153A (zh) * | 2017-09-26 | 2017-12-22 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN107506153B (zh) * | 2017-09-26 | 2021-07-02 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN107682016B (zh) * | 2017-09-26 | 2021-09-17 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN107682016A (zh) * | 2017-09-26 | 2018-02-09 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN108650256A (zh) * | 2018-05-09 | 2018-10-12 | 南京思达捷信息科技有限公司 | 一种大数据的取得系统 |
CN109947776A (zh) * | 2019-03-15 | 2019-06-28 | 海南新软软件有限公司 | 一种数据压缩、解压方法及装置 |
CN111697973A (zh) * | 2019-05-16 | 2020-09-22 | 时擎智能科技(上海)有限公司 | 压缩方法及压缩系统 |
CN111697973B (zh) * | 2019-05-16 | 2021-02-02 | 时擎智能科技(上海)有限公司 | 压缩方法及压缩系统 |
CN112380196A (zh) * | 2020-10-28 | 2021-02-19 | 安擎(天津)计算机有限公司 | 一种用于数据压缩传输的服务器 |
CN112380196B (zh) * | 2020-10-28 | 2023-03-21 | 安擎(天津)计算机有限公司 | 一种用于数据压缩传输的服务器 |
CN117667788A (zh) * | 2024-01-30 | 2024-03-08 | 苏州元脑智能科技有限公司 | 数据的交互方法、计算机系统、电子设备和存储介质 |
CN117667788B (zh) * | 2024-01-30 | 2024-04-19 | 苏州元脑智能科技有限公司 | 数据的交互方法、计算机系统、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103020317A (zh) | 基于重复数据删除的数据压缩方法和装置 | |
US9367558B2 (en) | Methods and apparatus for efficient compression and deduplication | |
US8543555B2 (en) | Dictionary for data deduplication | |
KR101505263B1 (ko) | 데이터 중복 제거 방법 및 장치 | |
US9753937B2 (en) | File aware block level deduplication | |
CN107229420B (zh) | 数据存储方法、读取方法、删除方法和数据操作系统 | |
CN107506153B (zh) | 一种数据压缩方法、数据解压方法及相关系统 | |
US11221992B2 (en) | Storing data files in a file system | |
CN107682016B (zh) | 一种数据压缩方法、数据解压方法及相关系统 | |
CN103152430B (zh) | 一种缩减数据占用空间的云存储方法 | |
CN113296709B (zh) | 用于去重的方法和设备 | |
WO2019228098A1 (zh) | 一种数据压缩方法及装置 | |
CN102469142A (zh) | 重复数据删除程序的数据传输方法 | |
CN107423425B (zh) | 一种对k/v格式的数据快速存储和查询方法 | |
CN115168319A (zh) | 一种数据库系统、数据处理方法及电子设备 | |
KR20150035876A (ko) | 데이터 중복 제거 방법 및 장치 | |
CN103731154A (zh) | 一种基于语义分析的数据压缩算法 | |
Li et al. | A new compression method with fast searching on large databases | |
CN112380196A (zh) | 一种用于数据压缩传输的服务器 | |
CN104008153A (zh) | 一种面向大数据处理的数据处理方法和装置 | |
CN103699646A (zh) | 标记式二进制数据可逆性压缩法 | |
CN103049387B (zh) | 一种分页存储器件的压缩管理方法及装置 | |
CN105468733A (zh) | 一种基于源端数据重删的卷复制方法 | |
CN114791904A (zh) | 布隆过滤器的持久化压缩方法及装置 | |
US9876746B2 (en) | Messaging policy controlled email de-duplication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130403 |