2013年9月10日

模拟iDedup算法

摘要: 在destor原型之上实现了类iDedup算法(介绍),其核心思想是只有当重复数据块在物理上连续才去重,可以通过一个threshold来设置序列的最小长度。因为底层存储并不是块设备,而是DDFS的container存储,不能判断数据块的DBN是否连续,所以我改为判断数据块所属container是否相邻。修改后的算法和iDedup算法的另一大区别是没有重复树,重复树用于记录存储系统中重复的数据块,在多个匹配中寻找最长的一个。考虑到备份系统的负载特点,我觉得这种需求是非常少见的,所以只查找最新备份的序列。修改后算法的流程图如下:算法的分支有些多,先画流程图再写代码可以少调很多bug。这幅图有一个小 阅读全文

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

伯克利的云计算报告(下)

摘要: 7.云计算的10大障碍云计算被公众接受有三大技术障碍;被接受后,云计算的增长又面临五大技术障碍;最后两个障碍是政策和商业障碍。云计算提供商在长期探索过程中会逐渐克服这些障碍。7.1服务的可用性用户最大的担心是云计算是否有足够的可用性,2008年Amazon EC2、GAE和Gmail都出现过服务中断的事故,持续数小时。只使用一家公司的云计算服务,会遇到单点故障的问题。即使这家公司非常大,有多个不同地理位置的数据中心,它们使用的仍然是同一套软件设施,甚至这家公司倒闭了怎么办。一些大企业会因为担忧这个问题而不愿意使用云计算。对于这个问题,唯一可行的解决办法是使用多家云计算提供商。另一个可用性问题是 阅读全文

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

伯克利的云计算报告(中)

摘要: 4.云计算的机遇建造和运维超大规模的商用数据中心是云计算最关键的助推器,同时新技术趋势和新商业模型也起到了很重要的作用。云计算一旦“起飞”,一些过去看来不现实的新应用和使用模型找到了出路。新技术和新的商业模式推动了云计算的发展。伴随Web2.0出现的,是从“high-touch, high-margin, high-commitment”的提供服务到“low-touch, low-margin, low-commitment”的自助服务的转变。比如,在Web1.0时代,接受陌生人的信用卡支付需要一份合约。这种合约适合大型商业关系,不适合个人用户和小型商业活动。PayPal出现后,任何个人接受信 阅读全文

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

伯克利的云计算报告(上)

摘要: 云计算并不是个新想法,但是谁也说不清楚什么是云计算。因此伯克利的一帮家伙花了6个月的时间,对云计算进行了思考,最终形成了"Above the Clouds: A Berkeley View of Cloud Computing"这篇文章。这篇文章的目的是明确云计算的术语,用简单的公式量化比较云计算和传统计算,指出云计算最突出的技术和非技术障碍,以及对应的机遇。归纳一下,文章分为下面八点:1.什么是云计算云计算应该既包括网络上的应用服务,也包括数据中心支撑应用服务的系统软件和硬件。应用服务很早就被称为SaaS,而我们现在所说的云指的是数据中心的系统软件和硬件。当云通过pay- 阅读全文

posted @ 2013-09-10 16:22 OpenNaive 阅读(532) 评论(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 阅读(905) 评论(0) 推荐(0)

p2p网络备份系统:Pastiche

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

posted @ 2013-09-10 16:21 OpenNaive 阅读(562) 评论(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 阅读(550) 评论(0) 推荐(0)

内存拷贝的陷阱

摘要: 内存拷贝经常需要使用memcpy和strcpy:/*both defined in string.h*/void * memcpy ( void * destination, const void * source, size_t num );char * strcpy ( char * destination, const char * source );;二者主要的区别是strcpy将内存看作字符串,遇到0('')就结束。二者在使用时都存在一个不易发觉的陷阱。看下面这两行代码:memcpy(buf+off, buf, len);memcpy(buf, buf+off, le 阅读全文

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

重复数据删除系统的碎片研究

摘要: 大部分重复数据删除研究集中在备份的指纹索引上,大家都认为这是最关键的问题。的确,不解决磁盘瓶颈问题,备份窗口过大将导致重删不实用。重删系统的恢复性能一直处于被忽略的状态,原因是相对备份,恢复是小概率时间,而且体系结构最重要的Amdahl定律讲的就是重视大概率事件。但是我们也要明白一点,备份就是为了恢复的,如果备份的工作做得很充足,到了关键时刻不能快速恢复,一切都是白费力气了。或者说,备份就是一个不断投入的过程,而一次恢复就是赎回成本的过程,我们总是在研究如何减少备份的投入,而忽视了如何赎回更多的成本:恢复的越快,赎回的成本就越高!备份最关键的部分是指纹索引,恢复最关键的部分是数据块存储。重删的 阅读全文

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

iDedup,一个主存储系统的在线重删技术

摘要: FAST’12, iDedup: Latency-aware, inline data deduplication for primary storage.二级存储是重删技术的主要应用场景,少量主存储使用了离线重删技术。二级存储要求高吞吐率,主存储要求低延迟。下图是重删技术的分类,和iDedup所处的位置。0.介绍主存储环境下,在线重删最大的挑战是不能增加前台操作的延迟。但是,重删元数据的管理和访问会增加写延迟;碎片导致逻辑连续读被拆分为随机IO增加读延迟;管理数据块的引用次数增加删除延迟。iDedup尝试解决这些问题,仅仅增加了5%的CPU开销和2-4%的操作延迟,重删率达到理想情况的60- 阅读全文

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

导航