上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 26 下一页
摘要: 分布式存储系统中,元数据服务器通常是一个集中管理者,通常由它选择(根据一些负载均衡算法)合适的存储节点来存储文件数据,这就形成了文件元数据中的映射元数据部分,映射元数据记录文件数据分布信息。 常用的实现方法为存储节点周期性的向元数据服务器报告状态信息,元数据服务器根据这些节点的信息选择负载最小的存储节点作为本次请求的数据服务者,这就要求元数据服务器为每个文件维护一个数据分布链,当文件很大,而数据... 阅读全文
posted @ 2013-04-19 14:08 ydzhang 阅读(641) 评论(0) 推荐(0)
摘要: #include <iostream>#include <cstdlib>using namespace std;/* 重载new应返回void*类型,如果内存分配请求成功,就返回指向内存的指针;* 如果失败,则遵循规定抛出一个std::bad_alloc类型的异常* 重载operator new需要注意的一些问题,参见:* http://blog.csdn.net/xushiweizh... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(246) 评论(0) 推荐(0)
摘要: C++的虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。 在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了 这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地图一样,指明了实... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(147) 评论(0) 推荐(0)
摘要: C++的设计者Bjarne Stroustrup下了很大的功夫想使用户自定义类型尽可能地和固定类型的工作方式相似,这就是为什么你可以重载运算符,写类型转换函数,控制赋值和拷贝构造函数。 对于类类型,当重载赋值运算符时,需注意以下几个原则: 1. operator=尽量返回*this的引用; 2. 在operator=中对所有的数据成员赋值; 3. 在operator=中检查给自己赋值的... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(223) 评论(0) 推荐(0)
摘要: 循环展开就是通过在每次迭代中执行更多的数据操作来减小循环开销的影响。其基本思想是设法把操作对象线性化,并且在一次迭代中访问线性数据中的一小组而非单独的某个。这种思想主要适用于计算循环索引和测试循环条件的开销部分所占比重过大(相对于循环体内执行的指令而言),连续执行一组相同的指令,能提高指令的cache命中率,如下例所示,对LoopTest的一片存储空间进行初始化,分别测试普通循环,和8个一组的展开... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(1950) 评论(0) 推荐(0)
摘要: 2010级新生存储知识培训PPT 祝各位师弟师妹学有所成! 管理员在2009年8月13日编辑了该文章文章。 --> --> 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(123) 评论(0) 推荐(0)
摘要: Linux系统下一切都是文件,可以像使用普通文件一样使用设备,可直接操作设备扇区内容,这种方式不经过文件系统。 #include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <libgen.h>#include <unistd.h>st... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(583) 评论(0) 推荐(0)
摘要: 常量指针与指针常量直接从语义上理解,看const限定那个范围。const int *p 其中的const在*p之前,也就是说*p是常量,不能改变。同样int *const p 其中的const在p之前,所以p是常量,不能改变。位段的符号structtest{inta:2;/*表示范围-2~1 */unsignedintb:2;/*表示范围0-3 */};intmain(){structtestt;... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(133) 评论(0) 推荐(0)
摘要: 上个月给文件系统添加额外的属性设置接口,但却是完全脱离文件系统实现的,直接使用rpc连接元数据服务器来设置/获取属性,而没有通过文件系统的客户端。当时想着还有一种方法就是在fuse-2.8中支持了ioctl接口,可通过为分布式文件系统实现ioctl接口实现扩展属性的获取与设置。 使用ioctl首先要理解ioctl命令的封装格式,ioctl的命令对应一个32bits的整数,其格式如下: ... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(1365) 评论(0) 推荐(0)
摘要: 零长度是指定义数组时,指定其长度为0(如int arr[0];),这样的数组不占用实际的空间,但能通过数组名访问到其指向的地址。如下例所示: #include <stdlib.h>#include <stdio.h>struct device{int num;int count; int reserve[0]; /* * reserve是一个数组名;该数组没有元素;该数组的其实地址紧随结... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(225) 评论(0) 推荐(0)
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 26 下一页