最近在思考和实践怎样应用重复数据删除技术到云存储服务中。找了些论文来读,其中《Avoiding the Disk Bottleneck in the Data Domain Deduplication File System》是鼎鼎大名的李凯教授出品,读来收益匪浅。

论文主要内容

Data Domain的去重存储系统是商业上大获成功的产品,从产品的角度来讲非常完善,其架构图如下:

去重存储系统在数据存储和重建的过程中,都需要频繁地访问数据块的索引,即图中的Segment Index。为了降低成本,一般系统都无法接受将index数据全部存储到内存中,而是基于硬盘来实现这个index的存储。这样一来,磁盘相对较低的性能就成了整个系统的性能瓶颈。本文介绍了Data Domain的去重存储系统中,针对这个问题所采用的三种优化技术。

  1. 总结向量。总结向量可以认为是Segment index在内存中的总结,本文使用Bloom filter来实现。当需要查询一个index值是否存在的时候,总结向量可以提供如下功能,如果总结向量指出该index不存在,那么该index就不存在,无需进一步查找;如果总结向量指出该index存在,那么该index有很大可能存在,但并不保证一定存在,需要进一步查找确认。总结向量要比原始的segment index小,从而放入内存,提升效率。当系统正常关闭时,将总结向量写入磁盘,并在启动时从磁盘读入内存。为了应对断电等非正常关闭,系统阶段性的创建checkpoint,将总结向量写入磁盘。在需要恢复的时候,只需读取最近的checkpoint,然后将checkpoint之后产生的新数据添加到总结向量中即可。
  2. 流感知的块排列技术。流感知的块排列技术 (stream-informed segment layout ,SISL)是基于这样一种假设,当一个文件的部分数据块存入系统后,再次使用时,这些数据块有很大的可能还会以想同的顺序出现。比如需要恢复这个文件时候,比如下次备份这个文件的新版本的时候。这种排列方式带来许多好处:a.当数据重建时,可以大幅减少磁盘IO;b.当备份相似数据流(数据新版本时),segment index的cache的局部性更高,更有效。c.在同一个container中,元数据段和数据段分开存储,使得可以快速读取一个container中涉及到的所有segment的index构建cache和Bloom filter。
  3. 局部性保持缓存。使用局部性保持缓存技术来加速重复segment的确认过程。由于segment使用内容的sha1来唯一标识,因此很难基于正在使用的segment来预测将要使用的segment是哪一个,从而预加载,提高缓存命中率。幸而应用了流感知的块排列技术(SISL),这使得实现局部性保持缓存有了可能性。

我的思考和疑问

  1. 要实现Bloom Filter的check point,需要container是全局有序的,给定某一个container的id,可以从这个container开始一直遍历到最近产生的数据;
  2. 流感知的块排列技术中,如果一个流的数据很少是怎么处理的?还有,当有多个流在备份数据的时候,如果两个流要写入同一个系统中不存在的segment时,怎么办,是不是就重复写入了。
  3. 传统的数据去重存储系统是面向备份应用的,关注的是吞吐量而不是响应时间。如果要用来做online的实时系统,会有新的问题要解决。

转载于:https://www.cnblogs.com/xinzhao/p/4736592.html

读Avoiding the Disk Bottleneck in the Data Domain Deduplication File System相关推荐

  1. 一文读懂“数据分发服务DDS”(Data Distribution Service,RTPS,OMG)

    一文读懂"数据分发服务DDS"(Data Distribution Service,RTPS,OMG) https://blog.csdn.net/DDS_CSIT/article ...

  2. 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]

    1.磁盘基础知识 1.1 物理结构 硬盘的物理结构一般由磁头与碟片.电动机.主控芯片与排线等部件组成:当主电动机带动碟片旋转时,副电动机带动一组(磁头)到相对应的碟片上并确定读取正面还是反面的碟面,磁 ...

  3. EMC Data Domain 存储系统的日常健康检查

    本文介绍EMC DataDoamin 存储系统,民间很多人把这个系统叫做VTL虚拟带库,其实VTL仅仅是DD的一个featrue,还有很多非常重要的功能,但总结一句话,DD的最大优势是做备份.有些人把 ...

  4. 天天向上 专访Data Domain创始人李凯

    今天的重复数据删除技术在EMC以总价21亿美元收购Data Domain之后,骤然达到了最顶点.这也符合业界对以DeDUPlication发家的Data Domain公司股票代码的定义:DDUP--& ...

  5. Android File System安卓文件系统(安卓存储分区,/data /storage /sdcard)

    Android File System 安卓手机,平板电脑(android tablet)以及其他设备大多有 6 种分区 partitions:/boot,/system,/recovery,/dat ...

  6. Conmi的正确答案——keil的“Cannot read RTE data from project file: RTE is not enabled”问题

    keil版本:5.3.0 "Cannot read RTE data from project file: RTE is not enabled" 原因: 1.因为安装的时候不想把 ...

  7. oracle block corrupted,ORA-01578: ORACLE data block corrupted (file # 9, block # 45729)

    今天在实验的机子的oracle上的一张表中批量插入5000000条记录,在插入过程中途发生了表空间不够的情况,导致插入终止,在表空间上添加一个数据文件,对表中的数据进行查询,发生如下的错误: SQL& ...

  8. Python报错:_tkinter.TclError: couldn‘t recognize data in image file...

    在Python中使用tkinter导入图片时出现报错:_tkinter.TclError: couldn't recognize data in image file... global photo ...

  9. mac Apple M1 在根目录无法创建文件和文件夹 mkdir: /data : Read-only file system

    mac 根目录下无法创建文件夹 问题: mkdir: /data : Read-only file system 问题: mount_apfs: volume could not be mounted ...

最新文章

  1. Ajax缓存解决办法
  2. python 随机取列表值 重复_python怎么随机取列表的值
  3. 各种软件的含义和特点
  4. 【软件开发底层知识修炼】七 Binutils辅助工具之- ar工具与nm工具
  5. 【笔记目录1】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总
  6. 目标检测发展路程(一)——Two stage
  7. unity技能框架_如何使用指导框架学习新技能
  8. 用c++库函数实现WCHAR写入文件
  9. 写作之法 —— 如何切题与点题
  10. JAVA集合三:几种Set框架
  11. mysql写缓冲_MySQL 数据库的提速器-写缓存(Change Buffer)
  12. 在设计数据库时,使用代码,对数据项调整形成数字字典(小代码)
  13. Linux系统(X64)7 安装Oracle11g完整安装图文教程另附基本操作
  14. The xor-longest Path poj3764
  15. 使用Mono.Cecil改变访问级别
  16. P7369 [COCI2018-2019#4] Elder 题解
  17. Win10 下Go语言和Goland的下载和环境配置
  18. 江波龙入选国家级专精特新“小巨人”企业
  19. 异常:“ERROR: Permission to XXX.git denied to user”终极解决方案
  20. SAP那些事-理论篇-14-SAP中的财务管理理念

热门文章

  1. 人工智能 | ShowMeAI资讯日报 #2022.06.29
  2. ubuntu22.10使用显卡驱动nvidia-driver-525-testd报错
  3. Android(一)win10配置java环境、安装Android studio
  4. current_date
  5. 详解自动微分(Automatic Differentiation)
  6. 计算机考试模拟系统准考证号
  7. python 用基姆拉尔森计算公式求出某一天是星期几
  8. 35岁的人还可以学习编程,从事程序员这个行业吗?前景怎样?
  9. Nervos ——为了更好的世界
  10. CF4D D. Mysterious Present