这是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. splay树入门(带3个例题)

    splay树入门(带3个例题) 首先声明,本教程的对象是完全没有接触过splay的OIer,大牛请右上角.. PS:若代码有误,请尽快与本人联系,我会尽快改正 首先引入一下splay的概念,他的中文名 ...

  2. 简述RTMPDump与编译移植

    RTMPDump主页 ,RTMPDump库主要包含三部分: 1.一个基本的客户端程序 2.两个服务器程序(rtmpsrv.rtmpsuck) 3.一个支持rtmp协议的库—librtmp 下载RTMP ...

  3. node.js怎么配置访问本地的html文件?

    node.js怎么配置访问本地的html文件? https://segmentfault.com/q/1010000000251204

  4. oj测试点相关 (整理摘编)

    Accepted                          通过!(AC) Wrong Answer                  答案错.(WA) Runtime Error      ...

  5. TPshop规格组合错误

    TPshop规格组合错误 修改: admin/logic/goodslogic.class.php 中 方法:getSpecInput() 中 asort($spec_arr_sort) 去掉

  6. 每日算法——新型在线LCA

    在线LCA一般大家都会用倍增吧,时间复杂度O(nlogn),空间复杂度O(nlogn),都是非常严格的复杂度限制,并且各种边界处理比较麻烦,有没有更快更好的办法呢? 我们发现,在树链剖分时,我们不经意 ...

  7. .net中的WebForm引人MVC的控制器

    当下.net中比较火的模式MVC模式,说实话对于菜鸟的我还没有遇到一个比较健全的MVC模式的项目也是比较遗憾.偶然间在网上看到WebForm实现MVC中的模式(主要是控制器...)就学习了一波,下面是 ...

  8. 努比亚 Z17(Nubia NX563J) 解锁BootLoader 并刷入recovery

    工具下载链接:https://pan.baidu.com/s/1mjEzcyG 备用下载链接:https://pan.baidu.com/s/1eTdx6Zg 密码:1d3r 本篇教程教你如何傻瓜式解 ...

  9. WinXP SSH连接不上虚拟机的解决方法

    问题现象描述: 在VMWare中安装好linux系统后,选择桥接,从宿主机Windows上使用Putty, SSH Secure Shell等客户端工具连接linux上的ssh服务,客户端一直没有反应 ...

  10. DNN结构演进History—CNN-GoogLeNet :Going Deeper with Convolutions

    抄袭了一片文章,进行少量修改:http://www.gageet.com/2014/09203.php       作者:Christian Szegedy( google )  刘伟(北卡罗来纳  ...