文档章节

Ceph源码之 common/config.*

ali安东尼
 ali安东尼
发布于 2017/07/13 14:57
字数 274
阅读 3
收藏 0
点赞 0
评论 0

今天在研究ceph时,看到一个初始化成员变量的技巧。 如果一个class中有成百上千个成员变量,有没有觉得当写类头文件都写到手痛,还要在构造函数里初始化它们,简直不敢再想下去了。 像下图这样,这只是头文件: 输入图片说明

输入图片说明

输入图片说明

初始化全局数组config_optionsp时,每个config_option元素记录着md_config_t里的一个成员变量的名字,类型和偏移,如上图中的编号4小图。主要用的是stddef.h里的offsetof计算成员变量在class里的偏移值。 当调用get时进入到上图中小图1的函数,先找根据成员变量的名字找出config_option对象,再如小图2调用config_option的conf_ptr(小图3),其中md_conf_off是该成员变量在md_config_t类中的偏移量。这样就能直接存取成员变量,而且运行效率更高,同时又降低了开发的工作量,代码也更美观!

由睿江云提供,想了解更多,请登陆www.eflycloud.com

© 著作权归作者所有

共有 人打赏支持
ali安东尼
粉丝 3
博文 192
码字总数 173101
作品 0
广州
ceph(jewel版)编译

一、在github下载ceph源码: git clone --recursive https://github.com/ceph/ceph.git 下载ceph的其他子模块,否则在编译过程中会出现缺少库 git submodule update --force --init --recurs...

zrz11 ⋅ 2016/11/02 ⋅ 0

Ceph 9.0.0 发布,分布式文件系统

Ceph 9.0.0 发布,这是 Infernalis 周期的第一个开发版本,而且也是 Ceph 版本发布采用另一个版本号模式的第一个版本。“9” 代表这是第 9 个 cycle-I(Infernalis),I 是第九个字母。第一个...

oschina ⋅ 2015/05/06 ⋅ 25

Deploy Ceph and start using it: Troubleshooting

(Part 1/3 – Installation - Part 3/3 – librados client) It is quite common that after the initial installation, the Ceph cluster reports health warnings. Before using the clus......

壬癸甲乙 ⋅ 2014/07/31 ⋅ 0

Ceph v0.94.4 发布,分布式文件系统

Ceph v0.94.4 发布,此版本修复了一些重要的 bug,建议所有 v0.94.x Hammer 用户尽快升级到最新版本。 Ceph 在 GitHub 已经放出 Ceph v0.94.5 版本的下载:src="https://github.com/ceph/ce...

oschina ⋅ 2015/10/27 ⋅ 7

分布式存储Ceph的几种安装方法,源码,apt-get,deploy工具,Ubuntu CentOS

最近搞了下分布式PB级别的存储CEPH 尝试了几种不同的安装,使用 期间遇到很多问题,和大家一起分享。 一、源码安装 说明:源码安装可以了解到系统各个组件, 但是安装过程也是很费劲的,主要...

Yason_Luo ⋅ 2014/04/04 ⋅ 1

openstack M版本部署

系统解决方案 一、环境需求 1、网卡 2、消息队列 使用mirror-queue mode,详细部署方式,参见禅道上的rabbtmq集群部署文档。 3、数据库 使用mariaDB+innodb+gelera,版本10.0.18以上, 详细部...

facinglife ⋅ 2017/05/11 ⋅ 0

calamari项目结构解析

calamari-common 结构图 config.py 此文件定义了CalamariConfig类,用于读取calamari的配置文件,默认是"/etc/calamari/calamari.conf" salt_wrapper.py 定义了SaltEventSource类,此类用于处...

JennerLuo ⋅ 2016/07/14 ⋅ 0

Ceph 源代码目录结构详解

转载自:6沙鱼的博客 从GitHub上Clone的Ceph项目,其目录下主要文件夹和文件的内容为: 1 根目录 [src]:各功能某块的源代码 [qa]:各个模块的功能测试(测试脚本和测试代码) [wireshark]:...

鉴客 ⋅ 2015/07/06 ⋅ 0

Ceph 0.84 开发版发布,分布式文件系统

Ceph 0.84 开发版发布了,下载地址: ceph-0.84.tar.bz2 ceph-0.84.tar.gz 该版本包含:365 commits,值得关注的改进有: ceph-conf: flush log on exit (Sage Weil) ceph-dencoder: refact......

oschina ⋅ 2014/08/20 ⋅ 2

Ceph v0.94.6 Hammer 发布,建议升级

Ceph v0.94.6 Hammer 发布,这是适合生产环境的最新版本,建议所有 0.94 的用户升级。 该版本值得关注的改进包括; build/ops: Ceph daemon failed to start, because the service name was...

oschina ⋅ 2016/02/24 ⋅ 5

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 这样的女人私生活太混乱了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 胖达panda :你经历过体验到人生的大起大落吗?我一朋友在10秒内体验了,哈哈。@小小编辑 请点一首《almost lover》送给他。 《almost love...

小小编辑 ⋅ 44分钟前 ⋅ 7

自己动手写一个单链表

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对...

公众号_好好学java ⋅ 49分钟前 ⋅ 0

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 2

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部