读Avoiding the Disk Bottleneck in the Data Domain Deduplication File System
最近在思考和实践怎样应用重复数据删除技术到云存储服务中。找了些论文来读,其中《Avoiding the Disk Bottleneck in the Data Domain Deduplication File System》是鼎鼎大名的李凯教授出品,读来收益匪浅。
论文主要内容
Data Domain的去重存储系统是商业上大获成功的产品,从产品的角度来讲非常完善,其架构图如下:
去重存储系统在数据存储和重建的过程中,都需要频繁地访问数据块的索引,即图中的Segment Index。为了降低成本,一般系统都无法接受将index数据全部存储到内存中,而是基于硬盘来实现这个index的存储。这样一来,磁盘相对较低的性能就成了整个系统的性能瓶颈。本文介绍了Data Domain的去重存储系统中,针对这个问题所采用的三种优化技术。
- 总结向量。总结向量可以认为是Segment index在内存中的总结,本文使用Bloom filter来实现。当需要查询一个index值是否存在的时候,总结向量可以提供如下功能,如果总结向量指出该index不存在,那么该index就不存在,无需进一步查找;如果总结向量指出该index存在,那么该index有很大可能存在,但并不保证一定存在,需要进一步查找确认。总结向量要比原始的segment index小,从而放入内存,提升效率。当系统正常关闭时,将总结向量写入磁盘,并在启动时从磁盘读入内存。为了应对断电等非正常关闭,系统阶段性的创建checkpoint,将总结向量写入磁盘。在需要恢复的时候,只需读取最近的checkpoint,然后将checkpoint之后产生的新数据添加到总结向量中即可。
- 流感知的块排列技术。流感知的块排列技术 (stream-informed segment layout ,SISL)是基于这样一种假设,当一个文件的部分数据块存入系统后,再次使用时,这些数据块有很大的可能还会以想同的顺序出现。比如需要恢复这个文件时候,比如下次备份这个文件的新版本的时候。这种排列方式带来许多好处:a.当数据重建时,可以大幅减少磁盘IO;b.当备份相似数据流(数据新版本时),segment index的cache的局部性更高,更有效。c.在同一个container中,元数据段和数据段分开存储,使得可以快速读取一个container中涉及到的所有segment的index构建cache和Bloom filter。
- 局部性保持缓存。使用局部性保持缓存技术来加速重复segment的确认过程。由于segment使用内容的sha1来唯一标识,因此很难基于正在使用的segment来预测将要使用的segment是哪一个,从而预加载,提高缓存命中率。幸而应用了流感知的块排列技术(SISL),这使得实现局部性保持缓存有了可能性。
我的思考和疑问
- 要实现Bloom Filter的check point,需要container是全局有序的,给定某一个container的id,可以从这个container开始一直遍历到最近产生的数据;
- 流感知的块排列技术中,如果一个流的数据很少是怎么处理的?还有,当有多个流在备份数据的时候,如果两个流要写入同一个系统中不存在的segment时,怎么办,是不是就重复写入了。
- 传统的数据去重存储系统是面向备份应用的,关注的是吞吐量而不是响应时间。如果要用来做online的实时系统,会有新的问题要解决。
读Avoiding the Disk Bottleneck in the Data Domain Deduplication File System的更多相关文章
- 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]
1.磁盘基础知识 1.1 物理结构 硬盘的物理结构一般由磁头与碟片.电动机.主控芯片与排线等部件组成:当主电动机带动碟片旋转时,副电动机带动一组(磁头)到相对应的碟片上并确定读取正面还是反面的碟面,磁 ...
- 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 [ ...
- Unix:关于一个file在file system和disk中占用空间
參考文献: Harley Hahns:Guide to Unix and Linux. Chap 24 -->首先要有的关键概念:the amount of "disk space&q ...
- 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 ...
- 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 ...
- EMC DATA DOMAIN 2200 filesys destroy(數據清空及重建)
EMC 數據清空 1.數據清空 這裡會清空file system的所有東西包括tapes
- Invalid file system control data detected
今天在做mkdir操作时报错:Invalid file system control data detected.检查用户和权限没问题,再检查磁盘空间也没问题.最后在网上找到如下信息: [proble ...
- 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 ( ...
- 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 ...
随机推荐
- c#之第二课
输出语句: /////////////////////////////// public class Hello1 { public static void Main() { System.Conso ...
- NR_OPEN 与 NR_FILE 的区别
NR_OPEN 与 NR_FILE 的区别 阅读0.11版的内核源码时,在linux-0.11/fs/pipe.c中,函数sys_pipe()里面出现了2个宏定义,NR_OPEN 与 NR_FILE. ...
- asp.net中调用命令行
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...
- [MS bug]安装SQL Server 2008 错误:is not a valid login or you do not have permission
环境: Windows 7 sp1 x64. 问题描述: 安装到几乎要完成的时候爆出:is not a valid login or you do not have permission.安装失败. ...
- 查看Oracle数据库的用户名和密码
运行 cmd 按如下输入命令 sqlplus / as sysdba ---------以sys登陆 超级用户(sysdba) alter user 用户名 account unlo ...
- 机器学习基石--学习笔记02--Hard Dual SVM
背景 上一篇文章总结了linear hard SVM,解法很直观,直接从SVM的定义出发,经过等价变换,转成QP问题求解.这一讲,从另一个角度描述hard SVM的解法,不那么直观,但是可以避免fea ...
- jquery.jqzoom.js图片放大镜
jqzoom插件实现图片放大镜效果 1. jquery.jqzoom.js //************************************************************ ...
- Eclipse远程调试HDP源代码
使用的是自己编译的HDP2.3.0的源代码编译的集群,此文介绍如何使用Eclipse远程调试Hadoop内核源代码,以调试namenode为例进行介绍. 在/usr/hdp/2.3.0.0-2557/ ...
- Asp.net Core WebApi 使用Swagger做帮助文档,并且自定义Swagger的UI
WebApi写好之后,在线帮助文档以及能够在线调试的工具是专业化的表现,而Swagger毫无疑问是做Docs的最佳工具,自动生成每个Controller的接口说明,自动将参数解析成json,并且能够在 ...
- ORACLE 10g下载地址
ORACLE 10g下载地址 oracle 下载还需要用户名我自己注册了个方便大家使用下载 密码是这个 一般不会动了 大家也不用帮我找回密码了 每次都改 也很麻烦的如果有需要可以帮我浏览下 右侧的需要 ...