2013年9月10日

重复数据删除技术简介

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

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

模块设计

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

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

2012年5月8日

Linux下几个比较好用的软件

摘要: 在这里记录下几个比较好用的linux软件,不间断更新。1. Mendeley一句话广告:It’s time to change the way we do research.Mendeley是一个免费的引用管理和学术社交网络。而Mendeley Desktop是一个管理文献的客户端,我们可以用它管理文献、阅读文献、分享文献、同步文献等。客户端支持windows、Linux等多种操作系统。它有个叫file organizer的东西,可以将文件同步到本地,并且按照自定义的规则组织目录结构(按作者分类,按年份分类等等)、重命名文件(比如定义文件名的格式为year-journal-title等)。客户 阅读全文

posted @ 2012-05-08 20:20 OpenNaive 阅读(549) 评论(0) 推荐(0) 编辑

2012年5月4日

谷歌技术"三宝"之BigTable

摘要: 2006年的OSDI有两篇google的论文,分别是BigTable和Chubby。Chubby是一个分布式锁服务,基于Paxos算法;BigTable是一个用于管理结构化数据的分布式存储系统,构建在GFS、Chubby、SSTable等google技术之上。相当多的google应用使用了BigTable,比如Google Earth和Google Analytics,因此它和GFS、MapReduce并称为谷歌技术"三宝"。与GFS和MapReduce的论文相比,我觉得BigTable的论文难懂一些。一方面是因为自己对数据库不太了解,另一方面又是因为对数据库的理解局限于关 阅读全文

posted @ 2012-05-04 22:09 OpenNaive 阅读(181) 评论(0) 推荐(0) 编辑

2012年4月26日

谷歌技术"三宝"之MapReduce

摘要: 江湖传说永流传:谷歌技术有"三宝",GFS、MapReduce和大表(BigTable)!谷歌在03到06年间连续发表了三篇很有影响力的文章,分别是03年SOSP的GFS,04年OSDI的MapReduce,和06年OSDI的BigTable。SOSP和OSDI都是操作系统领域的顶级会议,在计算机学会推荐会议里属于A类。SOSP在单数年举办,而OSDI在双数年举办。那么这篇博客就来介绍一下MapReduce。1. MapReduce是干啥的因为没找到谷歌的示意图,所以我想借用一张Hadoop项目的结构图来说明下MapReduce所处的位置,如下图。Hadoop实际上就是谷歌 阅读全文

posted @ 2012-04-26 22:01 OpenNaive 阅读(227) 评论(0) 推荐(0) 编辑

2012年4月21日

谷歌技术"三宝"之谷歌文件系统

摘要: 题记:初学分布式文件系统,写篇博客加深点印象。GFS的特点是使用一堆廉价的商用计算机支撑大规模数据处理。虽然"The Google File System "是03年发表的老文章了,但现在仍被广泛讨论,其对后来的分布式文件系统设计具有指导意义。然而,作者在设计GFS时,是基于过去很多实验观察的,并提出了很多假设作为前提,这等于给出了一个GFS的应用场景。所以我们自己在设计分布式系统时,一定要注意自己的应用场景是否和GFS相似,不能盲从GFS。GFS的主要假设如下:GFS的服务器都是普通的商用计算机,并不那么可靠,集群出现结点故障是常态。因此必须时刻监控系统的结点状态,当结点 阅读全文

posted @ 2012-04-21 17:28 OpenNaive 阅读(226) 评论(0) 推荐(0) 编辑

2012年4月9日

使用math库遇到的错误

摘要: 程序里需要使用pow函数,虽然我已经#include ,但是make的时候仍然出现错误:undefined reference to 'pow'。在网上查找了一些解决方案,明白了math库是需要手动加上-lm链接的,但是仍有些问题不明白。Q1:pow的参数如果是两个常数,则不加-lm也是正确的,why?Q2:-lm的位置似乎有讲究,gcc $(OBJS) -o exbin -lm可以链接成功,但是gcc -lm $(OBJS) -o exbin却不成功,why?Q3:Q2的第二种写法,链接我的测试小程序却是正确的,why?Q4:如果使用g++来编译链接程序,则不加-lm也是正确 阅读全文

posted @ 2012-04-09 22:03 OpenNaive 阅读(477) 评论(0) 推荐(0) 编辑

三种二叉树遍历的非递归实现

摘要: 今天偶然翻出了很久以前写的一篇博客,是关于三种二叉树遍历的非递归实现的,转到这儿来吧。程序都是伪代码,因为是考研复习期间写的,数据结构参考了严蔚敏的《数据结构》。先看递归实现:void Traverse(BiTree T){ if(T){ //visit,先序遍历 Traverse(T->lchild); //visit,中序遍历 Traverse(T->rchild); //visit,后序遍历 } }可以看到三种遍历方法的递归实现形式完全一样,只需改变visit的位置,就得到不同遍历序列。因此从情感上觉得非递归实现应该形式也完全一样,... 阅读全文

posted @ 2012-04-09 20:43 OpenNaive 阅读(282) 评论(0) 推荐(0) 编辑

2012年3月19日

主文件系统 vs 二级文件系统 (EMC篇)

摘要: 文主要基于FAST11和FAST12的两篇论文:A study of practical deduplication和Characteristics of backup workloads in production systems。前者来自微软,主要分析的是用于主存储系统的文件系统;后者来自EMC,分析的是用于二级存储系统(如备份、归档)的文件系统。两篇论文共同的特点是实验的数据集都非常庞大,因此分析的结果对于系统设计具有参考价值。而且从数据中我们也可以发现主存储系统和二级存储系统在使用方式等方面有很多区别。再来看看EMC的实验。1. 实验方法作者的实验分为两部分,第一部分分析超过10000 阅读全文

posted @ 2012-03-19 21:32 OpenNaive 阅读(487) 评论(0) 推荐(0) 编辑

导航