这是EMC的备份小组发表在FAST12上的论文,主要是结合重删和差量数据压缩的方法,达到更高的数据压缩率。并且作者使用了一种基于数据流的差量数据压缩,消除了对索引的需求。通过测试达到的压缩效果是重删和本地压缩结合效果的两倍。

     数据流的压缩过程在备份服务器和远端资料库之间交互进行,有重删——差量压缩——本地压缩三个过程。具体过程如下(文中Figure 3):
  • 备份服务器上,将即将备份的数据流分块后计算指纹,发送至远端资料库。
  • 远端资料库通过Bloom Filter对指纹索引进行查找,将命中的指纹所在容器载入缓存(容器中块的指纹和缩略图,块内容不载人缓存),并将命中指纹信息告知备份服务器。
  • 备份服务器对未命中数据块,计算缩略图,发送缩略图至远端资料库。
  • 远端资料库在cache中查找与发送至缩略图相似的缩略图,将其对应的指纹发送给备份服务器,称为基础指纹(base fingerprint)。
  • 备份服务器接收到基础指纹后,以基础指纹对应的数据块为基准,对相应数据块进行差量压缩;对于远端资料库中没有查找到基础指纹的数据块,不进行差量压缩(当然啦,没有找到足够相似性的基准块嘛!)。
  • 差量压缩完成后,对所有数据块进行本地压缩(文中使用的是GZ压缩算法)后上传至远端资料库。
  • 远端资料库对差量压缩过的数据块进行解码,最后将数据写入磁盘。
 
     上面左图为数据流压缩流程图,右图为备份资料库中数据结构图,包括数据块、指纹、缩略图、container和cache(备份资料库即为EMC Data Domain)。
     其中还有一些细节,比如根据缩略图进行相似性比较,我的理解是每个缩略图包含若干个super-feature(一般3个),每个super-feature中包含若干个feature,通过缩略图间super-features和features的比较判断两块的相似性;还有只使用单重或双重差量压缩,不使用多重差量压缩,因为多重差量压缩会带来对基准块的多次读,得不偿失;还有关于缩略图缓存,只需要一个较小的缓存就可以实现较完美的性能……类似的小细节分析还有很多,不再一一赘述。
     这样一个架构,结合重删和差量压缩,以很小的代价大大提升数据压缩率,大大减少通过广域网传输的数据量。文中最大的创新,就是根据备份数据流特性设计了缩略图缓存,将重删和差量压缩以很小的代价完美结合在一起。详细解释就是,直觉上用户和应用对文件的修改往往是很少部分的修改,这样文件分块后有些块和以前版本完全重复,有些不一样,重删时备份资料库通过指纹配对将相同数据块所在container整个移入缓存,而这个container往往存放的就是同一文件未修改之前版本,那么在未被重删的块和contianer之中的块之间进行差量压缩检测实际上就是在一个文件被修改前和修改后的两个版本间进行差量检测,当然可以检测出绝大部分的相似性。好处显而易见,虽然牺牲一部分相似性检测性能,但不需要额外添加缩略图索引,且带来的开销极小(12MB cache就可实现很好性能)。这样trade-off,极为划算。
     在related work中作者归纳了许多参考文献,通过重删、压缩和差量压缩来减少网络传输的例子很多,结合重删和压缩来做的也不少,但作者同时也提到了一篇利用数据流的局部性减少磁盘存取的论文,可见作者自己的思想和灵感也是在一大堆前人成果的基础上整合得来的。主要就是将数据流局部性和在重删系统中做差量压缩实现了完美结合。这提醒我,论文的积累量很不够啊,还是要多读paper!
     文中也有一些地方让我困惑:
  1. 在压缩流程中,返回基础指纹给备份服务器后,在进行差量压缩时,新旧数据块之间是要进行逐字节比较的,那么旧数据块应该是从远端资料库获取的,这必然会带来网络开销,为何文中没有说明?是不是作者有意回避?即使备份服务器中有数据块的缓存,命中率也难说,并且这样的缓存维护也会带来大量的网络开销。
  2. 文中反复出现seeding,我实在不懂重删过程中seeding到底是什么意思,有什么作用?这个明天还要查资料搞明白。
     

     seeding从字面意思上看是“播种”的意思,在备份系统中seeding实际上就是指将一部分备份数据不通过WAN传输的方式先运送至备份数据中心(比如先拷贝至USB磁盘再运送磁盘),这样备份资料库中有了一部分数据,通过重删等技术就可大大减少通过WAN传播的数据,这就是seeding的过程。seeding已广泛运用在备份系统中。

     备份资料库中虽使用重删,但两周的全备之间是真正意义上的全备,不是通过重删后存放差量。

论文WAN Optimized Replication of Backup Datasets Using Stream-Informed Delta Compression的更多相关文章

  1. MySQL主从复制(Replication for Backup)

    环境:MySQL5.7,VMware-Workstation-12-Pro,Windows-10,CentOS-7.5,Xshell5 1. 基本概念和操作思路 主从复制能做什么 数据库的主从复制,是 ...

  2. 文件类似的推理 -- 超级本征值(super feature)

         基于内容的变长分块(CDC)技术,能够用来对文件进行变长分块.而后用来进行反复性检測,广泛用于去重系统中.后来又出现了对相似数据块进行delta压缩,进一步节省存储开销. 所以就须要一种高效 ...

  3. Flink 从0到1学习—— 分享四本 Flink 国外的书和二十多篇 Paper 论文

    前言 之前也分享了不少自己的文章,但是对于 Flink 来说,还是有不少新入门的朋友,这里给大家分享点 Flink 相关的资料(国外数据 pdf 和流处理相关的 Paper),期望可以帮你更好的理解 ...

  4. ICCV 2019|70 篇论文抢先读,含目标检测/自动驾驶/GCN/等(提供PDF下载)

    虽然ICCV2019已经公布了接收ID名单,但是具体的论文都还没放出来,为了让大家更快得看论文,我们汇总了目前已经公布的大部分ICCV2019 论文,并组织了ICCV2019论文汇总开源项目(http ...

  5. LIST OF NOSQL DATABASES [currently 150]

    http://nosql-database.org Core NoSQL Systems: [Mostly originated out of a Web 2.0 need] Wide Column ...

  6. Unity 5 Game Optimization (Chris Dickinson 著)

    1. Detecting Performance Issues 2. Scripting Strategies 3. The Benefits of Batching 4. Kickstart You ...

  7. Exam E05-001 Information Storage and Management Version 3 Exam

    Emc 考试 e05-001信息存储和管理版本3考试 [总问题:171] 哪种 emc 产品提供软件定义的存储基础架构的自动监视和报告? A. viprSrmB. 斯纳普内C. 阿瓦马尔D. 快速副总 ...

  8. vyos User Guide

    vyos User Guide 来源 https://wiki.vyos.net/wiki/User_Guide The VyOS User Guide is focused on providing ...

  9. Percona XtraBackup User Manual 阅读笔记

    XtraBackup XtraBackup 2 安装XtraBackup 2.1 安装XtraBackup binary版本 2.1.1 yum的安装方法: 2.1.2 直接下载rpm包安装 3 Xt ...

随机推荐

  1. win7下code::blocks开发环境

    一.环境配置步骤: 下载安装code::blocks; 下载安装MinGW; 在complier settings中, Toolchain executables选择MinGW的安装路径. 完成安装. ...

  2. 如何使用git 生成patch 和打入patch 标签: gitpatch【转】

    本文转载自:http://blog.csdn.net/liuhaomatou/article/details/54410361 平时我们在使用git 管理项目的时候,会遇到这样一种情况,那就是客户使用 ...

  3. IJ:ALI OSS 配置

    ylbtech-IJ:ALI OSS 配置 1. src/resources/返回顶部 1.src/resources/ 1.1.aliyunoss.properties # oss\u7684\u5 ...

  4. Python 34(进程了解)

    一:僵尸进程与孤儿进程 测试程序: 基本概念: 一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中. ...

  5. go之结构体

    一.关于结构体 简述 1.go 语言的切片可以存储同一类型的数据,但是结构体可以为不同项定义不同的数据类型 2.结构体是有一系列具有相同类型或不同类型的数据构成的数据集合 3.因为go 没有类似于类的 ...

  6. ThinkPHP3.2.3扩展之自动分词获取关键字

    ThinkPHP自动获取关键词调用在线discuz词库 先按照下图路径放好插件 /** * 自动获取关键词(调用第三方插件) * @return [type] [description] * www. ...

  7. UIView动画基础

    1 Position 平移 [UIView animateWithDuration:1.0 animations:^{ _blueView.centerX = self.view.width -100 ...

  8. checked、disabled在原生、jquery、vue下不同写法

          以下是原生和jquery <!DOCTYPE html> <html> <head> <meta http-equiv="Content ...

  9. Md2All版本更新记录

    Md2All版本更新记录 版本号:V2.8.2更新日期:2018-06-281:结合云图床,解决了Latex公式复制到公众号时有可能报“图片粘贴失败的问题”;2:结合云图床,解决了Latex公式复制到 ...

  10. 关于VM虚拟机在使用网络时与锐捷网络冲突的解决问题

    在使用NAT网络模式的时候,锐捷会因为冲突强制关闭NAT服务,导致虚拟机无法上网,解决的办法是让NAT服务一直保持启动,写一个bat脚本来一直检测服务是否在运行,并且进行启动操作. 当不需要用虚拟机的 ...