2013年9月10日

SSD去重:建模和量化分析

摘要: 原文:J. Kim. Deduplication in SSDs: Model and Quantitative Analysis.数据去重技术可以有效减少写负载,节约存储空间,进而减少垃圾回收的次数,增加垃圾回收和损耗均衡算法的效率,对SSD的寿命有很好的改进。这篇来自MSST’2012的文章站在了CAFTL和CA-SSD的肩膀上,进一步探讨了数据去重对SSD性能的影响,也就是探讨数据去重是否可以改进SSD的写延迟。数据去重为SSD带来了很多的好处,但是存在两大挑战:1.数据去重的开销问题,通常SSD的资源有限,只有ARM7或ARM9等低端CPU和少量内存,这和备份归档环境有很大不同;2.S 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(1490) 评论(0) 推荐(0)

CAFTL和CA-SSD的比较

摘要: FAST'11同时收录了这两篇几乎相同主题的文章,分别用CAFTL(Feng Chen等)和CA-SSD(A. Gupta等)表示,下表比较了它们的主要特点。CAFTLCA-SSD工作位置FTLFTL去重单元pagepage映射表二级映射表,元数据区反向映射映射表LPT和逆向映射表iLPT指纹索引基于热度的LRULRU哈希计算取样法、预哈希专用硬件逻辑垃圾回收二级映射表记录引用次数iLPT记录逻辑地址集合它们都是在FTL集成数据去重,不需要修改上层应用;因为缺少上层文件系统语义信息,并且SSD的读写单元是page,所以很自然使用page作为去重单元;指纹的计算是性能瓶颈,因此二者都提倡 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(2819) 评论(0) 推荐(0)

利用value locality优化SSD

摘要: 原文:A. Gupta et al. Leveraging Value Locality in Optimizing NAND-Flash based SSDs.这篇文章和DFTL是同一作者。时间局部性。当前访问了某个数据(某个逻辑地址),那么不久的将来很可能还会访问这个数据;空间局部性。当前访问了某个数据(某个逻辑地址),那么不久的将来与其逻辑地址相邻的数据很可能会被访问。利用时间局部性和空间局部性可以减少SSD的负载,但是仍有另一种局部性可以挖掘,即value locality。value locality的意思就是某个数据(数据的内容,不仅仅是逻辑地址)被访问地更频繁。value loc 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(1130) 评论(0) 推荐(0)

内容感知FTL

摘要: 原文:Feng Chen et al. CAFTL: A Content-Aware Flash Translation Layer Enhancing the Lifespan of Flash Memory based Solid State DrivesSSD的寿命与三个参数有关:1.写负载;2.过量供应的容量;3.垃圾回收和损毁均衡的效率。写负载通常被认为是不可控的,而过量供应不可能无限制,所以大部分研究集中在垃圾回收和损毁均衡。CAFTL关注的是第一点。图1和图2验证了重复数据的存在。图1中,15块磁盘的重复度为7.9~85.9%,其中第7块磁盘(NTFS)大部分重复数据是零块,如果 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(893) 评论(0) 推荐(0)

模块设计

摘要: 在写重删原型系统的存储模块时,收获很大。就说一句:函数功能简单、互不重叠很重要;接口定义不好,花费的是大量debug时间。有时间得多学习学习成熟的源码。 阅读全文

posted @ 2013-09-10 16:21 OpenNaive 阅读(156) 评论(0) 推荐(0)

用VIM打造属于自己的IDE

摘要: Vim是一个强大的文本编辑器,我参考网上教程定制了一个简单的IDE,具有文件视图、自动补全、批量注释等常用功能。先上图:要完成整个配置,需要安装ctags、cscope软件,以及taglist.vim、winmanage、omnicppcomplete.vim、NERDcommenter.vim、a.vim、DoxygenToolKit插件。ctags软件可以帮助我们跳转到函数或者变量的定义位置;cscope软件比ctags更强大,可以找到哪些位置调用了某个函数;taglist.vim和winmanage插件用于显示源代码的结构,比如函数列表;omnicppcomplete.vim插件可以实现 阅读全文

posted @ 2013-09-10 16:21 OpenNaive 阅读(598) 评论(0) 推荐(0)

重复数据删除技术简介

摘要: 题记:今天翻了翻硕一写的作业,摘抄一段放到博客上,重复数据删除技术简介。0.绪论 一般情况下,数据中心每周需要将主存储设备的所有数据备份到辅存储设备上,并保存数月时间,我们称之为全备份。另外,数据中心可能每天还需做一次增量备份,只备份当天改变的数据。辅存储设备的容量达到主存储设备的10到20倍是很正常的。如果需要做容灾备份的话,容量还需翻一倍,假如容灾备份需要在广域网上进行,那么带宽消耗也是很可怕的。1. 重复数据删除的分类 从重复数据删除发生的时间进行分类,可以分为在线和离线。在线是指数据到达存储设备之前进行重复数据删除;离线是指先暂时将所有数据存在缓冲区,等到服务器空闲再进行重复数据删.. 阅读全文

posted @ 2013-09-10 16:21 OpenNaive 阅读(1121) 评论(0) 推荐(0)

Linux C操作超过2GB大小的文件

摘要: 使用普通的open、lseek操作文件,当文件达到2GB的时候写数据就会失败。这也是显然的,lseek的原型是long lseek(int handle, long offset, int fromwhere);long在32位操作系统上只有4个字节,只能寻址正负2GB的数据。lseek64是用于读写大文件的API,原型是off64_t lseek64(int fd, off64_t offset, int whence);通过这个函数就可以寻址超过2GB的大文件了。最后不要忘了为open加上O_LARGEFILE标记,或者直接使用open64函数打开文件,这二者是等价的。参考资料[1] ls 阅读全文

posted @ 2013-09-10 16:21 OpenNaive 阅读(907) 评论(0) 推荐(0)

p2p网络备份系统:Pastiche

摘要: 这篇文章有几个特点:第一是难懂,所谓Pastiche就是东拼西凑,涉及到很多别的技术,作者又没有一一详细解释,因此理解这篇文章俺是费了不少劲的;第二是“新颖”,其实这是篇古董文章,02年发表在OSDI,作者既没有完整实现一个系统,也没有很系统的实验,却能发表在A类会议上,我只能说作者的观察很独特。Pastiche描绘的是一个廉价的、p2p网络备份系统,它利用用户的剩余磁盘空间互相提供数据保护。遗憾的是,直到10年后的今天我也没有看到一个成熟的实现(也许是我孤陋寡闻)。但是因为很喜欢这个idea,还是决定发一篇博文。关于整个系统如何运转涉及太多细节,不一一描述,只在此记录下几个关键点。1. 观察 阅读全文

posted @ 2013-09-10 16:21 OpenNaive 阅读(563) 评论(0) 推荐(0)

斯坦福的MapReduce

摘要: MapReduce是由google首先提出来的编程模型(介绍点击这里),专为数据密集型任务而设计。不论是google还是hadoop,都是将MapReduce应用在大规模集群下的。那么它是否适共享内存环境呢?斯坦福的Phoenix项目做出了回答。相关的论文发表在HPCA’07(最佳论文)和MapReduce’11上。Phoenix适合于共享内存的多处理器计算机(SMP和ccNUMA),以及多核计算机。07年释出第一个版本Phoenix;后经过了大量修改,Phoenix 2在可扩展性和移植性方面得到加强,支持Linux;Phoenix++是Phoenix的C++实现。目前Phoenix只支持x8 阅读全文

posted @ 2013-09-10 16:21 OpenNaive 阅读(551) 评论(0) 推荐(0)

导航