没有合适的资源?快使用搜索试试~ 我知道了~
Ceph pg 状态机及状态变迁,主要包括 pg 状态机及通过 pg 创建流程来简述 pg 状态机的状态迁移。 pg 状态机能方便地处 理多个 pg 之间的状态转换,基于 boost 的状态机来实现。后半部分着重分析 pg 的创建和 peering 流 程。
资源推荐
资源详情
资源评论
CEPH PG 状态机及状态变迁
Ceph pg 状态机及状态变迁
本篇文章主要包括 pg 状态机及通过 pg 创建流程来简述 pg 状态机的状态迁移。pg 状态机能方便地处
理多个 pg 之间的状态转换,基于 boost 的状态机来实现。后半部分着重分析 pg 的创建和 peering 流
程。
首先,先简单介绍下 Boost 的状态机。状态机又称有限状态机或者有限状态自动机,是表示有限个状
态以及在状态之间的迁移。
一、Boost 状态机
状态
对象在其生命周期内,所处于的运动和发展阶段。
状态机
由许多相关状态构成的集合,把一个对象或者一个系统看做是一个状态机
struct M : state_machine<M, A> {}; // 定义了一个状态机 M。初始状态为 A
struct A : simple_state<A, M> {}; // 定义了一个状态 A。属于状态机 M
struct A : simple_state<A, M, A1> {}; // 定义了状态 A,属于状态机 M。A 状态有初始子状态 A1
事件
定义会引起状态机产生状态迁移的一些列事件
struct Evt : boost::statechart::event<Evt> {}; // 事件类
struct Evt : boost::statechart::event<Evt> { int raised; } // 可以加入一些成员变量
1
一、Boost 状态机 CEPH PG 状态机及状态变迁
状态变迁
当状态遇到一个事件发生时,可以对这个事件作出反应。状态变迁就是一条 ``规则'',指明如何反应。
struct A1: simple_state<A1, A>
{
// 状态转换规则用 typedef 说明,当遇到事件 Evt 时,就转移到状态 B
typedef transition<Evt, B> reactions;
}
多事件
一个状态对多种事件的反应规则
typedef boost::mpl::list<
sc::transition<Evt1, B>,
sc::transition<Evt2, C>
> reactions;
2
剩余10页未读,继续阅读
资源评论
shibinw
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于ssm的企业公寓后勤管理系统源码(java+vue+mysql+说明文档+LW).zip
- 基于ssm的留学生交流互动论坛网站源码(java+vue+mysql+说明文档+LW).zip
- 基于ssm的汉服文化平台网站源码(java+vue+mysql+说明文档+LW).zip
- 使用sklearn构建bp神经网络对男子跳高运动员各项素质指标数据数据集进行预测,用matplotlib进行可视化
- 基于ssm的大学生兼职跟踪系统源码(java+vue+mysql+说明文档+LW).zip
- 航空知识领域+发动机+原理+概述引论
- 解决DELPHI 中右键菜单中“view as Form”是灰显,表单丢失
- Python概述中文最新版本
- Python之模块学习中文最新版本
- Java 继承和多态接口在大型项目中的运用经验+pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功