glusterfs 源码框架学习归纳总结

2024-05-06 17:38

本文主要是介绍glusterfs 源码框架学习归纳总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        网上有关glusterfs的源码分析文章还是挺多,这里总结我看过的理解,及其相关资源。
        当然,由于挺久没看代码了,现在主要凭印象,再加上自己收集的网页和笔记,感觉深刻的写出来,重点是讲的是思想而非技术细节。
        另外,本人能力有限,再加上主要利用业余时间看,不是工作性质,看的也就没那么深那么细节,更多是框架相关,比较适合入门看感觉。
        有错误,望指正! 有好资源望共享,有不同想法观点望交流!共勉交流万岁!


1.服务端(glusterfsd),客户端(glusterfs),管理程序(glusterd)同一main入口 

        首先,glusterfs这个框架类似于网络协议栈框架,xlator结构体就是代表一个功能层(相当于一个网络协议层),  这个glusterfsd.c:main 主要就是搭建起xlator这棵树和必要的资源,具体功能在的相应的xlator中,可以看出该架构垂直扩展,添加功能很容易  。即这个main就是通用的初始化流程, 该程序是服务端还是客户端等等,就看这颗树是咋堆xlator的。
        相关源码分析资料参考(大体流程没啥出入):

          glusterFS源码结构分析.pdf - 下载频道 - CSDN.NET 

         GlusterFS 主函数工作流程_百度文库 


2. xlator 架构

     glusterfs架构最核心的结构体, xlator就相当于用c语言实现的对象(OO), 参考 GlusterFS:xlator基础源码研究 这篇写的就很好了。 此外,个人觉得,看源码时候,适时用面向对象思想看,不要只跟数据流走,走通不意味着理解深刻,比较好。

这篇关于glusterfs 源码框架学习归纳总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/964937

相关文章

Linux命令学习之二

每日一结 ​               命令置换:是将一个命令的输出作为另一个命令的参数,命令格式如下: commond1 `command2` 其中,命令command2的输出将作为命令command1的参数,需要注意的是, 命令置换的单引号为ESC键下方的 ` 其意思就是说,先运行单引号内的命令,再将其命令作为

Linux命令学习之一

每日一结                                                                                        注:当用户不确定一个软件包的类型时, 可使用file命令查看文件类型

关于HTML的框架标签及内嵌框架

框架标签的代码示例如下: <!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="Generator" content="EditPlus?"><meta name="Author" content=""><meta name="Keywords" content=""><meta name="Desc

Android_03_数据库的使用总结

前言: 1>区分SQL和SQLite SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。 SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。 不幸地是,存在着很多不同版本的 SQL 语言,但是为了与 ANSI 标准相

Android_03_单元测试框架

测试类(用于单元测试之用) package com.itheima.junit.test;import com.itheima.junit.utils.Utils;import android.test.AndroidTestCase;public class TestCase extends AndroidTestCase {public void test(){int result =

Android图片轮播的实现总结

前言: 在很多app中,我们都可以看到几张图片每隔一段时间就切换一下,这就是我们所称的图片轮播的功能,其主要实现就是用到了ViewPager, 下面我们来着重讲解一下其具体实现 效果图: 步骤一:在XML中添加ViewPager控件 比如: <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:a

自定义ViewGroup的总结(侧滑特效)

前言: 和自定义View控件一样,我们有时也需要自定义我们想要的ViewGroup,那么此时,我们就需要让其继承ViewGroup,然后重写 里边的onMeasure()和onLayout()方法,下面以侧滑特效为例,来讲解一下自定义ViewGroup所需的流程,关于侧滑特效, 其整体效果图如下: 对于自定义ViewGroup,主要有以下几步: 步骤一:编写ViewGroup

自定义View的总结(自定义滑动开关)

前言: 由于有些控件,在android中样式比较挫,并不能满足我们的需求,此时,我们可以将其进行一个自定义,下面一以一个自定义编写的ToggleButton为例, 来简要说明下,自定义所涉及到的一些步骤;以下是自定义控件ToggleButton的效果图: 其是由两张图片组成的: <1>   <2>  下面我们通过这个示例,来说明下,如何编写一个自定义view控件!!

关于隐藏Android标题栏总结

1>区分状态栏/标题栏/导航栏 状态栏(Status Bar) 标题栏(Title Bar) 导航栏(Navigation Bar) 2>区分Title Bar/Action Bar/Tool Bar Title Bar就是我们所俗称的标题栏,在Android 3.0 (API level 11)的时候,引入的Action Bar,其就是用来取代Title Bar的,

Android的Paint和Canvas的使用总结

前言: 在自定义控件时,我们有时可能会用到Paint和Canvas这两个类, Paint相当于我们在画画时的画笔,Canvs相当于我们在画画时的画布, 下面来简单讲一下这两个类常见的一些用法 Paint的使用总结: setAlpha(int a): 设置画笔的透明度,这样画笔所画的位置就会呈一定的透明度 setAntiAlias(boolean aa): 设置 tr