RBD AioRequest
来源:互联网 发布:网络pc赌博怎么能赢 编辑:程序博客网 时间:2024/04/29 11:20
RBD librados中AioRequest,以写为例。
|->m_ictx (ImageCtx) AioRequest--|-m_oid (string) /_\ |-m_object_no, m_object_off, m_object_len (uint64_t) | |-m_snap_id (librados::snap_t) | |->m_completion (Context*) | |-m_parent_extents (std::vector<std::pair<uint64_t,uint64_t> >) | |-m_hide_enoent (bool) | AbstractWrite--|-m_state (write_state_d) /_\ |-m_write (librados::ObjectWriteOperation) | |-m_snap_seq (uint64_t) | |-m_snaps (std::vector<librados::snap_t>) | AioWrite--|-m_write_data (bufferlist) |-m_op_flags (int)new AioWrite(ictx, p->oid.name, p->objectno, p->offset,bl, snapc, req_comp)AioWrite(ImageCtx *ictx, const std::string &oid, uint64_t object_no, ¦ ¦ ¦ ¦ ¦uint64_t object_off, const ceph::bufferlist &data, ¦ ¦ ¦ ¦ ¦const ::SnapContext &snapc, Context *completion) ¦ : AbstractWrite(ictx, oid, object_no, object_off, data.length(), snapc, ¦ ¦ ¦ completion, false), m_write_data(data), m_op_flags(0) { }AbstractWrite::AbstractWrite(ImageCtx *ictx, const std::string &oid, uint64_t object_no, uint64_t object_off, uint64_t len, const ::SnapContext &snapc, Context *completion, bool hide_enoent) : AioRequest(ictx, oid, object_no, object_off, len, CEPH_NOSNAP, completion, hide_enoent), m_state(LIBRBD_AIO_WRITE_FLAT), m_snap_seq(snapc.seq.val){ m_snaps.insert(m_snaps.end(), snapc.snaps.begin(), snapc.snaps.end());}AioRequest::AioRequest(ImageCtx *ictx, const std::string &oid, uint64_t objectno, uint64_t off, uint64_t len, librados::snap_t snap_id, Context *completion, bool hide_enoent)¦ : m_ictx(ictx), m_oid(oid), m_object_no(objectno), m_object_off(off), ¦ ¦ m_object_len(len), m_snap_id(snap_id), m_completion(completion), ¦ ¦ m_hide_enoent(hide_enoent) { ¦ Striper::extent_to_file(m_ictx->cct, &m_ictx->layout, m_object_no, ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ 0, m_ictx->layout.fl_object_size, m_parent_extents); ¦ RWLock::RLocker snap_locker(m_ictx->snap_lock); ¦ RWLock::RLocker parent_locker(m_ictx->parent_lock); ¦ compute_parent_extents();}
0 0
- RBD AioRequest
- rbd相关命令
- Ceph rbd cmd练习
- ceph之rbd-nbd
- ceph rbd 对象组成
- Ceph rbd写入数据
- RBD创建一个image
- RBD 导出一个image
- CEPH RBD集群使用
- tgt + rbd + multiph
- rbd-mirror 技术内幕
- rbd export V2
- 【分析】RBD Mirroring
- k8s使用ceph rbd
- Ceph-rbd排错
- ceph KRBD 内核RBD模块 rbd 快照 克隆 删除 恢复
- 理解Ceph RBD块设备
- Ceph RBD终端连接方案
- 如何在dragonboard410c上编写一个秒表定时器
- 一款已上市MMO手游地图同步方案总结
- C++多线程处理数据
- django template context_processors 模板全局变量
- Shell转意字符
- RBD AioRequest
- eclipse下使用hibernate tools实现hibernate逆向工程
- Visual Studio+VAssistX自动添加注释,函数头注释,文件头注释
- IOS网络编程发送数据的问题
- [LeetCode]447. Number of Boomerangs
- 802.1X协议--交换机知识
- 自定义log日志输出到文件中保存
- 使用python的minidom模块格式化、对齐、换行、整理xml文件
- TableViewCell 里面嵌的TableViewCell 如何点击里面的TableViewCell进行页面跳转?