重复数据删除

重复数据删除（）是一种节约数据存储空间的技术。在计算机中存储了很多重复数据，这些数据占用了大量硬盘空间，利用重复数据删除技术，可以只存储一份数据。另外一项节约存储空间的技术是数据压缩，数据压缩技术在比较小的范围内以比较小的粒度查找重复数据，粒度一般为几个比特到几个字节。而重复数据删除是在比较大的范围内查找大块的重复数据，一般重复数据块尺寸在1KB以上。重复数据删除技术被广泛应用于网络硬盘、电子邮件、磁盘备份介质设备等。

功能原理 
例如，典型的电子邮件系统可能包含100个1 MB(兆字节)的相同文件附件实例。邮件平台每次进行备份时，将保存所有附件实例，所需100mb的存储空间。使用重复数据删除技术后，实际上只存储一个附件实例，后续所有实例被引用回保存的副本，重复数据删除比大约为100:1。通常情况下，重复数据删除与数据压缩能一起使用以节省额外存储空间——首先运用重复数据删除技术消除重复数据的大块，然后使用压缩对每个存储部分进行高效编码。

在计算机代码中，重复数据删除通过将信息存储在变量中，每次更改只需更改一个中心引用位置，不需要单独写入。相关例子包括CSS类和MediaWiki中的命名引用。

优点
 节约硬盘空间：由于不必存储重复数据，因此大大节约的磁盘空间。
 提升写入性能：数据写入存储设备的主要性能瓶颈在于硬盘，由于硬盘是机械设备，一般单块硬盘只能提供100MB/s左右的连续写性能。在线重复数据删除在数据存入硬盘之前就把重复的数据删除掉了，因此存入硬盘的数据量变小了，数据的写入性能也就提高了。例如：DataDomain重删备份介质设备就采用在线重删技术，因此数据写入性能较好。
 节约网络带宽：对于使用了源端重删技术的应用来说，数据上传到存储设备之前，已经去掉了重复的数据块，因此重复的数据块不需要经过网络传输到存储介质，从而节约了网络带宽。例如：Dropbox就采用了源端重删技术，因此占用网络带宽很小，还有开源的数据同步工具rsync也采用了源端重删技术节约网络带宽。

分类
按数据处理时间重复数据删除可以被分为：

在线重删 
在线重删（Inline Deduplication）指的是在数据存储到存储设备上的同时进行重复数据删除流程，在数据存储到硬盘之前，重复数据已经被去除掉了。

后重删 
后重删（Post Deduplication）指的是在写到存储设备的同时不进行重删处理，先把原始数据写到硬盘上，随后启动后台进程对这些原始数据进行重删处理。与在线重删相比较，后重删需要更高的硬盘性能，需要更多的硬盘数量。

按照数据处理粒度可以被分为：
 文件级重删
 块级别重删

按照数据块分块方法，可以分为：
 变长分块重删
 定长分块重删

按照数据处理位置，可以分为：
 源端重删
 目的端重删

参考文献

外部链接
 Biggar, Heidi（2007.12.11）. WebCast: The Data Deduplication Effect
 Fellows, Russ（Evaluator Group, Inc.）Data Deduplication, why when where and how? 
 Using Latent Semantic Indexing for Data Deduplication.
 A Better Way to Store Data.
 What Is the Difference Between Data Deduplication, File Deduplication, and Data Compression? - Database from eWeek
 SNIA DDSR SIG  * * Understanding Data Deduplication Ratios
 Data Footprint Reduction Technology Whitepaper
 Doing More with Less by Jatinder Singh

计算机技术
数据压缩