ceph 代码分析 读_ceph源码分析之读写操作流程(2)

ceph

源码分析之读写操作流程(

2

)

上一篇介绍了

ceph

存储在上两层的消息逻辑,

这一篇主

要介绍一下读写操作在底两层的流程。下图是上一篇消息流

程的一个总结。

上在

ceph

中,

读写操作由于分布式存储的原

因,故走了不同流程。

对于读操作而言:

1.

客户端直接计算出存储数据所属于的主

osd

,直接给主

osd

上发送消息。

2.

osd

收到消息后,可以调用

Filestore

直接读取处在底层

文件系统中的主

pg

里面的内容然后返回给客户端。具体调

用函数在

ReplicatedPG::do_osd_ops

中实现。

读操作代码流程

如图:如我们之前说的,当确定读操作为主

osd

的消息时

(

CEPH_MSG_OSD_OP

类型)

,会调用到

ReplicatePG::do_osd_op

函数,该函数对类型做进一步判断,

当发现为读类型(

CEPH_OSD_OP_READ

)时

,

会调用

FileStore

中的函数对磁盘上数据进行读。

[cpp] view plain copy int ReplicatedPG::do_osd_ops(OpContext

*ctx, vector<OSDOp>& ops)

{

……

switch (op.op) {

……

case

CEPH_OSD_OP_READ:

++ctx->num_read;

{

// read into a buffer

bufferlist

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值