最近在思考和实践怎样应用重复数据删除技术到云存储服务中。找了些论文来读,其中《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的实时系统,会有新的问题要解决。

读Avoiding the Disk Bottleneck in the Data Domain Deduplication File System的更多相关文章

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

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

  2. HDFS relaxes a few POSIX requirements to enable streaming access to file system data

    https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html Introduction [ ...

  3. Unix:关于一个file在file system和disk中占用空间

    參考文献: Harley Hahns:Guide to Unix and Linux. Chap 24 -->首先要有的关键概念:the amount of "disk space&q ...

  4. Yandex Big Data Essentials Week1 Unix Command Line Interface File System exploration

    File System Function In computing, a file system or filesystem is used to control how data is stored ...

  5. NetSuite SuiteScript 2.0 export data to Excel file(xls)

    In NetSuite SuiteScript, We usually do/implement export data to CSV, that's straight forward: Collec ...

  6. EMC DATA DOMAIN 2200 filesys destroy(數據清空及重建)

    EMC 數據清空 1.數據清空 這裡會清空file system的所有東西包括tapes

  7. Invalid file system control data detected

    今天在做mkdir操作时报错:Invalid file system control data detected.检查用户和权限没问题,再检查磁盘空间也没问题.最后在网上找到如下信息: [proble ...

  8. ORA-01578 ORACLE data block corrupted (file # 29, block # 2889087)

    BW数据库后台报错如下:F:\oracle\SBP\saptrace\diag\rdbms\sbp\sbp\trace ORA-01578: ORACLE data block corrupted ( ...

  9. Import Data from *.xlsx file to DB Table through OAF page(转)

    Use  Poi.jar Import Data from *.xlsx file to DB Table through OAF page Use Jxl.jar Import Data from ...

随机推荐

  1. (转)投影矩阵的推导(Deriving Projection Matrices)

    转自:http://blog.csdn.net/gggg_ggg/article/details/45969499 本文乃<投影矩阵的推导>译文,原文地址为: http://www.cod ...

  2. android自适应屏幕方向和大小

    一:不同的layout Android手机 屏幕 大小不一,有480x320, 640x360, 800x480.怎样才能让App自动 适应不同的屏幕 呢?      其实很简单,只需要在res目录下 ...

  3. .NET错误The 'targetFramework' attribute in the <compilation> element of the Web.config file is used only to target version 4.0 and later of the .NET Framework

    错误描述: The 'targetFramework' attribute in the <compilation> element of the Web.config file is u ...

  4. 第一章:Symfony2和HTTP基本原理

    恭喜你!通过学习Symfony2,你将用你自己的方式开发出更加高效.全面和流行的Web应用(当然,要受到用人单位或同行的欢迎,还是得靠你自己).Symfony2的存在是为了要解决最根本的问题:即提供一 ...

  5. VS替换空行

    visual studio2012 改变了正则表达式的写法 因此原来的不管用了 Old: ^:b*$\n New: ^(?([^\r\n])\s)*\r?$\r?\n Click Ctrl-H (qu ...

  6. 修改windows系統下xampp中apache端口被其他程式占用的問題

    windows 7安裝後啟動xampp, 提示port 443 被其他程式占用. 網上查找解決方案: http://stackoverflow.com/questions/21182512/how-t ...

  7. 理解netty对protocol buffers的编码解码

    一,netty+protocol buffers简要说明 Netty是业界最流行的NIO框架之一优点:1)API使用简单,开发门槛低:2)功能强大,预置了多种编解码功能,支持多种主流协议:3)定制能力 ...

  8. winform C#获得Mac地址,IP地址,子网掩码,默认网关

    1.添加程序集 2.引入命名空间 using System.Management; 3.方法 ManagementClass mc = new ManagementClass("Win32_ ...

  9. 尝试在tensorflow上运行facenet

    上一篇装好了tensorflow的运行环境,开始尝试运行一些实例代码,在github上找到了一个tensorflow实现的facenet的代码,还是遇到了很多坑! 坚持看完,有重要总结! 代码:htt ...

  10. ROS vpn (pptp) 配置及端口绑定配置

    网络搜集 一. 按VPN的协议分类 VPN的隧道协议主要有三种,PPTP,L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议:IPSec是第三层隧道协议,是最 ...