rgw librados io
2016-05-24 13:29
344 查看
//初始化user quota 和bucket quota
//验证用户是否有对应的操作,
//对应ACL权限的检测
//验证请求的参数是否合法
op->init_processing()
//验证用户是否有对应的操作,
op->verify_op_mask();
//对应ACL权限的检测
op->verify_permission();
//验证请求的参数是否合法
op->verify_params();
RGWPutObjProcessor RGWPutObjProcessor_Aio 1.RGWPutObjProcessor_Atomic 2.RGWPutObjProcessor_Multipart(继承 RGWPutObjProcessor_Atomic)
RGWOP::execute() put_data_and_throttle() RGWPutObjProcessor_Atomic::handle_data() RGWPutObjProcessor_Atomic::write_data() RGWPutObjProcessor_Aio::handle_obj_data() RGWRados::aio_put_obj_data() librados::ObjectWriteOperation()-->op(继承librados::ObjectOperation 实例化该对象) librados::IoCtx::aio_operate(...op...) IoCtxImpl::librados::IoCtxImpl::queue_aio_write()(把异步写op放入librados::IoCtxImpl::aio_write_list 列表中) librados::IoCtxImpl::objecter->mutate()(objecter 是osdc/Objecter的实例,转变op(ObjectOP)-->op(Op (继承RefCountedObject))) osdc/Objecter::op_submit(o) osdc/Objecter::_op_submit() osdc/Objecter::_calc_target() osdc/Objecter::_get_session()(OSDSession 是Objecter的内部结构,主要用于为Objecter构建session,在osd_sessions中保存) osdc/Objecter::_prepare_osd_op(op); //new a MOSDOp which will be used by osd osdc/Objecter::_session_op_assign(s, op) //assign op to session osdc/Objecter::_send_op()////send the msg out with the connection incorporated in the OSDSession op->session->con.send_message()(由与session关联的PipeConnection::send_message(Message *m)发送消息) SimpleMessenger::send_message() SimpleMessenger::_send_message(m, con) SimpleMessenger::submit_message() PipConnection::pipe->_send(m)()(将要发送的消息放入队列中map<int, list<Message*> > out_q) RGWPutObjProcessor_Atomic::throttle_data() Objecter 中有OSDsession MOSDOp SimpleMesseger为osdsession 提供pipconnection。(pip)
相关文章推荐
- s3 分段下载核心原理-获取指定范围的文件内容
- radosgw单机多实例
- s3 presigned upload 测试用例
- s3 versioning 测试用例
- s3cmd 连接rgw的signature版本问题
- Ceph 源代码分析 -librados
- librados.hpp
- docker创建ceph集群
- Ceph部署(二)RGW搭建
- Ceph对象存储(rgw)的IPv6环境配置
- Ceph对象存储安装部署及验证
- Ceph rgw 一Region多zone配置
- docker创建ceph集群
- Ceph部署(二)RGW搭建
- 生成RGW的火焰图
- RGW 数据模型设计
- Ceph IO简介
- rgw && message
- cosbench 部署配置
- ceph radosgw 对象寻址和元数据组织