二、联机重复数据删除技术的优缺点分析
采用联机重复删除技术的方式时,其主要的特点就是数据存储、重复数据删除进程有一个前后的过程,而不是并列。笔者也以数据库备份为例来说明这种方式的特点。当备份数据流到达存储设备时,数据并不会直接保存在硬盘中,而是先驻留在内存中。然后重复数据删除技术进程会对这个数据进行重复性的判断。如果与硬盘中已有的内容重复的,则不会将这个数据保存在硬盘中,而是利用指针来代替。相反,如果硬盘中没有已知的重复数据则将数据保存在硬盘中。其主要的过程就如下图所示。
使用联机重复数据删除技术主要的优势是可以降低硬盘的I/O开销。在后期处理重复数据删除技术这种方式中,需要先对所有备份数据进行写操作。然后重复数据删除进程需要将写入的数据再次读取出来,以判断是否有重复的子块。如果有重复子块的话,就需要进行删除的操作。光从这个数据流来看,就用了三次的I/O操作。这还不包括更新哈希表的I/O操作。所以采用后期处理重复数据的删除技术,其I/O的开销是非常庞大的。
而采用联机重复数据删除技术,就不存在这个问题。因为其数据一开始就是在内存中,不保存在硬盘上。只有确认存储设备中没有重复的子块时,才会将数据保存在硬盘上。为此其基本上只有一个I/O操作。也就是说,其大部分的工作都是在内存中完成的,就没有涉及到硬盘的I/O。
不过采用联机重复删除技术,其对于内存的要求会比较高,需要利用额外的内存在保存这些备份数据。另外,从存储的时间上来看,由于其采用的是一前一后的方式,为此从整体的存储时间来看(假设不考虑I/O冲突),要比后期重复数据处理要长。在实际工作中,如果存储设备的I/O不理想,后期处理方式则会造成I/O比较严重的冲突,此时后期处理方式的作业时间反而要比联机处理方式要长。