04 2018 档案

摘要:1、iobuf用来收发数据时候使用的缓冲区,由iobuf_pool来管理使用。 在iobuf.h中定义了如下几个机构体: 在iobuf.c开头定义了一个数组,此数组作为全局变量,定义了有8种大小的iobuf。 每一个记录表示某类型iobuf的页面大小以及在anena中的数量, 也就是说某个类型iob 阅读全文
posted @ 2018-04-24 22:30 我想我是鸟 阅读(701) 评论(0) 推荐(0)
摘要:一般来说,我们写个客户端程序大概的样子是这样的: 我们这里按照程序执行的思路,一句一句的解读程序的执行过程。 1、 fs2 = glfs_new (argv[1]); 1.1 这句内部定义如下:在(glfs.c中)pub_glfs_new 到这里,基本内存资源都已经初始化完毕了,event_pool 阅读全文
posted @ 2018-04-23 22:58 我想我是鸟 阅读(1319) 评论(0) 推荐(0)
摘要:socket.c在4000行位置定义了一组结构函数,我们可以从这里开始找到入口,如果是客户端则需要调用connect, 如果是服务端则需要调用listen, 在connect函数的第3541行处,将socket加入到eventpool的监控范围, 阅读全文
posted @ 2018-04-23 22:48 我想我是鸟 阅读(242) 评论(0) 推荐(0)
摘要:1. 前言 在C语言i中,存储变量的结构体加上一组函数指针,大概就可以算是一个对象模型了;如果将一组函数指针捆绑为结构体, 后期根据配置或者环境需要绑定到不同实现模块中的一组函数,可以认为是C语言面对对象的设计实现了。 2. 概述 事件模型,定义在"libgusterfs/src/"下几个文件中: 阅读全文
posted @ 2018-04-17 21:14 我想我是鸟 阅读(573) 评论(0) 推荐(0)
摘要:Jimmy的文档:Glusterfs的rpc模块分析 第一节、rpc服务器端实现原理及代码分析 第二节、rpc客户端实现原理及代码分析 第三节、rpc通信过程分析 经过阅读源码对比之前提及的文档,我个人理解的rpc_client对象如下图, 阅读全文
posted @ 2018-04-17 20:30 我想我是鸟 阅读(230) 评论(0) 推荐(0)
摘要:关于3.2.5版本分析,详见《GlusterFS之内存池(mem-pool)实现原理及代码详解》 此4.0.1版本内存池与版本3中的描述变化有点大,总的原理还是类似LINUX中的SLAB算法,定义一系列大小类型的池子, 1. 一共定义了15个池,每个池子大小都是依次幂级数增长的 结构体 mem_po 阅读全文
posted @ 2018-04-15 19:10 我想我是鸟 阅读(481) 评论(0) 推荐(0)