自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 【Ceph】ceph luminous版本新增组件:ceph-mgr

ceph luminous版本中新增加了一个组件: Ceph Manager Daemon,简称ceph-mgr。 该组件的主要作用是分担和扩展monitor的部分功能,减轻monitor的负担,让更好地管理ceph存储系统。 mgr的实现与用途 ceph-mgr是由C/C++、python以及Cpython等共同编写完成的,mgr的实现使用了大量的...

2020-12-31 15:11:00 225

原创 【Ceph 】Async Messenger代码跟踪--OSD

目录 一、前置知识 1、ceph Async 模型 2、Async Messenger机制图 二、代码跟踪 1、Server 1)Initialization 2)Bind and Listen 3)Deal with Event 4)Add Listen Fd 5)Accept Connection 6)Add Accept F...

2020-12-30 16:54:00 209

原创 【Ceph 】Async 网络通信源代码分析--研读

目录 前言 基本类介绍 连接相关的流程介绍 Server端监听和接受连接的过程 Client端主动连接的过程 消息的接收和发送 消息的接收 消息的发送 Ceph Async 模型 IO 多路复用多线程模型 Half-sync/Half-async模型 Leader/Follower ceph Async 模型 前言 cep...

2020-12-30 12:03:00 153

原创 【Ceph】Async RDMA网络通信性能优化

目录 Infiniband RoCE iWARP 附录(Ⅰ):连接过程状态迁移图 参阅资料 RDMA 数据传输 3. RDMA Send/Receive 3.1 第一步 3.2 第二步 3.3 第三步 3.4 第四步 4. 总结 现有代码分析 网络通信模块的实现在源代码src/msg的目录下,该目录主要包括Messenger...

2020-12-29 21:21:00 809 1

原创 【设计模式】设计模式 网站推荐

《学不会设计模式,是因为你还没用过这个神奇的网站!》:https://zhuanlan.zhihu.com/p/262255400 《DESIGNPATTERNS》https://refactoring.guru 《The Catalog of Design Patterns》https://refactoring.guru/design-patte...

2020-12-29 17:48:00 84

原创 【Ceph】AsyncMessenger 简析 II/III

目录 AsyncMessenger 简析 II EventCenter file events external events AsyncMessenger 简析 III RDMAStack IO路径 Send IO Receive IO AsyncMessenger 简析 II 在IO栈的优化中,同步改异步是很常用的一种方法,往往...

2020-12-29 14:27:00 148

原创 【ceph】AsyncMessenger模块源码分析|简析 I

osd 代码流分析:https://blog.51cto.com/wendashuai/2497104 作为分布式存储系统,Msg(src/msg)模块可谓是Ceph的基石之一。Ceph发展到Luminous ,已经支持的3大通信机制:simple,async和xio,其中simple历史最为悠久,是Ceph最早的通信模块,原理简单但性能较差(多线程模...

2020-12-28 21:10:00 238

原创 【ceph】simpleManssager通信代码分析

ceph 版本:ceph-12.0.0 原理和源码分析:https://ivanzz1001.github.io/records/post/ceph/2019/01/05/ceph-src-code-part3_1 2.1 server端代码 实例代码:ceph-12.0.0\src\test\messenger\simple_server.cc ...

2020-12-28 15:55:00 76

原创 【Ceph】Ceph源码解析:网络模块-simple

由于Ceph的历史很久,最初的网络---simple模式---没有采用现在常用的事件驱动(epoll)的模型,而是采用了与MySQL类似的多线程模型,每个连接(socket)有一个读线程,不断从socket读取,一个写线程,负责将数据写到socket。多线程实现简单,但并发性能就不敢恭维了。 Messenger是网络模块的核心数据结构,负责接收/发送消...

2020-12-28 15:08:00 112

原创 【看板】看板软件/项目管理软件记录

看板软件选择: TFS Leangoohttps://www.leangoo.com/price.html Teambition,敏捷团队https://www.teambition.com/pricing https://max.book118.com/html/2019/0310/7126101034002013.shtm 项目管理原件选...

2020-12-27 00:40:00 161

原创 【ceph 】ceph Dispatcher模块分析

Dispatcher dispatcher 是消息分发中心,所有收到的消息都经由该模块,并由该模块转发给相应的处理模块(moncliet、mdsclient、osd等)。 其实现方式比较简单,就是把所有的模块及其处理消息的方法 handle 注册到分发中心,具体函数为 add_dispatcher_head/tail(),这样就向 dispatche...

2020-12-25 18:54:00 292

原创 【ceph】Ceph 网络模块(4)——SimpleMessenger数据结构及代码流程分析--研读

收发代码流分析:https://blog.51cto.com/wendashuai/2497104 原文:https://blog.csdn.net/zhq5515/article/details/49814941 UML 架构上采用 Publish/subscribe(发布/订阅) 的设计模式. 模块说明: Messenger 该类作...

2020-12-25 14:24:00 125

原创 【socket】 unix域套接字(socketpair )通信|socketpair和pipe的区别

socketpair机制 描述 先看下传统的CS模型,如下: 总是一方发起请求,等待另一方回应。当一次传输完成之后,client端发起新的请求之后,server端才作出回应。 那如何才能做到双向通信? 一种解决办法就是client端即使client,又是server,server端即使client也是server,如下: 但是上述方...

2020-12-25 10:14:00 299

原创 【C++11】多线程类Thread和用法示例

目录 1、普通函数多线程调用 (1)无参数函数 (2)有参数函数 2、在类内部创建线程 (1)类内部函数为静态函数 (2)在Singleton模式内部创建线程: 3 、用类内部函数在类外部创建线程: 4、 join()和detach()的区别: (1)join() (2)detach() 5、 数据同步(线程同时操作一...

2020-12-24 14:37:00 197

原创 【算法】有限状态机FSM

目录 一、快速理解 1、有限状态机(FSM) 2、有限状态机的设计 二、详细说明 1、有限状态机FSM 1)FSM概念 2)FSM的3特点 3)FSM的4要素 4)FSM状态转换图 2、FSM的设计和实现 1)设计思路 2)两种实现方式 3、通用FSM的设计 一、快速理解 有限状态机(FSM)的设计与实现(一) 1、有限...

2020-12-24 14:08:00 1529

原创 【Ceph】Ceph通信模块messager使用实例(monitor模块)--01

目录 基础知识 1.src/msg 1.1 相关的类 1.1 .1 message 1.1.2 connection 1.1.3 messenger 1.1.4 dispatcher 1.1.5 Accepter 1.1.6 Pipe 1.1.7 DispatchQueue 1.2 详细过程 实例 monitor 例子 《...

2020-12-24 11:00:00 402

原创 【ceph】理解Ceph的三种存储接口:块设备、文件系统、对象存储

原文:https://www.jianshu.com/p/7656fe528488 前言 “Ceph是一个开源的、统一的、分布式的存储系统”,这是我们宣传Ceph时常说的一句话,其中“统一”是说Ceph可以一套存储系统同时提供块设备存储、文件系统存储和对象存储三种存储功能。一听这句话,具有一定存储基础的用户应该已经大致了解了Ceph的存储接口,而没有...

2020-12-23 20:00:00 422

原创 【Ceph】Ceph学习

目录 理解Ceph的三种存储接口:块设备、文件系统、对象存储 干货|非常详细的 Ceph 介绍、原理、架构 1. Ceph架构简介及使用场景介绍 1.1 Ceph简介 1.2 Ceph特点 1.3 Ceph架构 1.4 Ceph核心组件及概念介绍 1.5 三种存储类型-块存储 1.6 三种存储类型-文件存储 1.7 三种存储类型-对象...

2020-12-23 16:26:00 499

原创 【C++】友元|friend class

Friend Classes(友元类) 友元作用: 在一个类中指明其他的类(或者)函数能够直接访问该类中的private和protected成员。 在类的成员函数外部直接访问对象的私有成员。 你可以这样来指明: friend class aClass; 注意:friend在类中的声明可以再public、protected和private的如何...

2020-12-23 15:49:00 156

原创 ceph-msg-messager|ceph网络通信架构--02

目录 ceph的网络通信 ceph网络通信模式分类 simple框架 message数据格式 Ceph通信模块代码分析 ceph网络通信模块类说明 1. Async通信模块角色 2. Async通信模式 Ceph日志和调试 ceph的网络通信 原文:https://www.dazhuanlan.com/2019/08/21/5d5...

2020-12-23 10:32:00 339

原创 linux管道pipe详解

原文:https://blog.csdn.net/qq_42914528/article/details/82023408 管道 管道的概念: 管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质: 1. 其本质是一个伪文件(实为内核缓冲区) 2. 由两个文件描述符引用,一个表...

2020-12-22 15:36:00 133

原创 RDMA技术详解(一):RDMA概述

目录 1. DMA和RDMA概念 1.1 传统内存访问和DMA 1.2 RDMA 2. RDMA的优势 3. RDMA 三种不同的硬件实现 4. RDMA基本术语 4.1 Fabric 4.2 CA(Channel Adapter) 4.3 Verbs 5. 核心概念 5.1 Memory Registration(MR) | 内存...

2020-12-22 11:36:00 1128

原创 ceph分布式存储-MDS

https://blog.csdn.net/weixin_44389885/article/details/103035372 1. mds存储 元数据的内存缓存,为了加快元数据的访问。保存了文件系统的元数据(对象里保存了子目录和子文件的名称和inode编号)还保存cephfs日志journal,日志是用来恢复mds里的元数据缓存重启mds的时候会通...

2020-12-22 00:24:00 151

原创 CRUSH算法的原理与实现

理解Ceph CRUSH数据定位算法 Ceph是当下最优秀的分布式存储系统之一。其中Ceph EBS块设备结合虚拟机的使用场景十分流行。 Ceph的核心之一是其数据定位算法,称之为CRUSH算法,这是一种用户可控的伪随机算法。理解此算法对掌握Ceph助益很大。 下面通过示例来分析CRUSH算法。我们部署一个Ceph集群,用一个节点做monitor,用两...

2020-12-21 14:48:00 998

原创 什么是POSIX

简单总结: 完成同一功能,不同内核提供的系统调用(也就是一个函数)是不同的,例如创建进程,linux下是fork函数,windows下是creatprocess函数。好,我现在在linux下写一个程序,用到fork函数,...

2020-12-21 10:30:00 104

原创 GDB高级技巧:边Debug边修复BUG,无需修改代码,无需重新编译

【GDB高级技巧:边Debug边修复BUG,无需修改代码,无需重新编译 - 今日头条】https://m.toutiao.com/is/JqxBHJw/ ...

2020-12-18 13:00:00 73

原创 【内存池】讨论为什么 要自己实现内存池

lzh: 花了一周时间写内存池,结果和stl差不多快,各位有什么优化策略吗?主要是优化速度 愿你此生不锁眉: 大概的实现逻辑是怎样的 愿你此生不锁眉: 现在好多自带的内存池足够用了 lzh:现在采用的算法是和memcached类似的slabs算法 愿你此生不锁眉: 直接用他的不好么 lzh:memcached申请了不释放的 lzh:50万次...

2020-12-11 21:55:00 54

原创 【linux】随机读写之DirectIO|MMAP和DIRECT IO区别

目录 随机读写之DirectIO MMAP和DIRECT IO区别 随机读写之DirectIO 原文:https://blog.csdn.net/alex_xfboy/article/details/91865675 在上一节中讲过MappedByteBuffer VS FileChannel它们称得上零拷贝技术,但留下了顺序读比随机读快,顺...

2020-12-08 04:37:00 417

原创 【微服务】微服务架构实践

微服务架构实践 本文转载于本人的微信公众号中的文章,最新文章请关注公众号。 目录 业务背景 微服务概念 微服务技术选型 微服务架构设计 微服务架构设计落地 微服务架构设计过程中积累的心得 总结 一、业务背景 1.1 产品现状 1、各产品系统独立开发,代码复用率低,系统之间互相调用,耦合严重,系统解耦独立部署困难。 2、传统的单体架构,规模越来...

2020-12-06 04:25:00 166

原创 【C++】spdlog--log4cxx有点笨重,试一试spdlog

spdlog是什么 Fast C++ logging library 按照官方介绍,是一个高性能的C++日志组件,支持跨平台,兼容 C++11。原来项目中使用的是log4cxx,我感觉稍微有点笨重,并且很久没有更新了。 在新项目中,我只需要一款轻量级的日志组件,能: 存文件按照天数切分快速的浏览了spdlog,满足我的需求,于是开...

2020-12-06 02:48:00 317

原创 【K8s】什么是Docker和K8S

原文: Docker和容器技术为什么会这么火爆?说白了,就是因为它“轻”。 在容器技术之前,业界的网红是虚拟机。虚拟机技术的代表,是VMWare和OpenStack。 相信很多人都用过虚拟机。虚拟机,就是在你的操作系统里面,装一个软件,然后通过这个软件,再模拟一台甚至多台“子电脑”出来。 虚拟机,类似于“子电脑” 在“子电脑”里,你可以...

2020-12-03 22:39:00 287

原创 【log4】c++日志工具之——log4cpp

1、log4cpp概述 Log4cpp是一个开源的C++类库,它提供了C++程序中使用日志和跟踪调试的功能,它的优点如下: 提供应用程序运行上下文,方便跟踪调试;可扩展的、多种方式记录日志,包括命令行、文件、回卷文件、内存、syslog服务器、Win事件日志等;可以动态控制日志记录级别,在效率和功能中进行调整;所有配置可以通过配置...

2020-12-03 05:32:00 652 1

原创 【连接】TCP长连接和短连接-HTTP(史上最通俗!2.0)

1.以前的误解 很久之前就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接。 一直认为,HTTP连接分为长连接和短连接,而我们现在常用的都是HTTP1.1,因此我们用的都是长连接。 这句话其实只对了一半,我们现如今的HTTP协议,大部分都是1.1的,因此我们平时用的基本上都是长连接。但是前...

2020-12-02 01:01:00 107

原创 【连接】TCP长连接和短连接-HTTP|优缺点

目录 1. HTTP协议与TCP/IP协议的关系 2. 如何理解HTTP协议是无状态的 3. 什么是长连接、短连接? 3.1 TCP连接 3.2 TCP短连接 3.3 TCP长连接 3.4长连接短连接操作过程 4. 长连接和短连接的优点和缺点 5. 什么时候用长连接,短连接? 6、容易混淆的概念(TCP的keep alive和HT...

2020-12-01 17:25:00 315

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除