当前位置: 首页 > news >正文

Ceph IO流程分段上传(1)——InitMultipart - 指南

1 引言

Ceph是一个分布式对象存储,其代码经历十多年的发展也是愈见复杂,其IO也是从客户端到存储网关,经历PG到达底层的OSD,其中也是经历相当长的链路。在整理IO链路的过程中也是尝试多种方式,效果始终不令自己满意,经常追查某个调用栈到最底层之后忘了之前追查的函数,整理的文档逻辑也不甚清晰,于是思考过后决定采用整理调用栈的方式,并且在重点函数的地方链接到其他文档进行讲解,尽量保证主线逻辑的清晰,如果有继承关系或者重写的函数也会尽量标明。

=>表示函数返回值
->表示继承关系
|–表示调用栈,缩进表示被调用的关系,同一列的函数在同一个函数被调用

2 init multipart

RGWCivetWebFrontend::process()
|–process_request()
| \quad |–RGWREST::get_handler()
| \quad | \quad |–RGWRESTMgr::get_manager() => RGWRESTMgr_S3
| \quad | \quad |–RGWRESTMgr_S3::get_handler() => RGWHandler_REST_Obj_S3 -> RGWHandler_REST_S3 -> RGWHandler_REST
| \quad |–RGWHandler_REST::get_op()
| \quad | \quad |–RGWHandler_REST_Obj_S3::op_post() => RGWInitMultipart_ObjStore_S3 -> RGWInitMultipart_ObjStore -> RGWInitMultipart
| \quad |–RGWInitMultipart::get_type() => RGW_OP_INIT_MULTIPART
| \quad |–rgw_process_authenticated()
| \quad | \quad |–RGWInitMultipart::pre_exec()
| \quad | \quad |–RGWInitMultipart::execute()
| \quad | \quad | \quad |–RGWRados::Object::Write::write_meta()
| \quad | \quad | \quad | \quad |–RGWRados::Object::Write::_do_write_meta()

下一节将介绍分块上传对象multipart-upload接口。

http://www.jsqmd.com/news/605/

相关文章:

  • 第9章 Prompt提示词设计 - 指南
  • 详解Spring Boot DevTools - 指南
  • 深入解析:rook-ceph自定义添加osd流程
  • 1789:算24
  • Proxy 库解析(二)
  • 【Python3教程】Python3高级篇之JSON材料解析
  • 大模型服务之下的新旧政务智能系统比较 - 指南
  • 流行的 3D 文件格式及其用途指南
  • CentOS7.9上安装MySQL8.4
  • 铁头山羊stm32-HAL库 - 实践
  • IDEA编译Maven任务后target目录没有class
  • 2025CSP-S初赛游记
  • JBoltAI框架:企业级AI开发的革新路径与行业实践 - 那年-冬季
  • JBoltAI:重塑视频创作,开启零门槛智能混剪新时代 - 那年-冬季
  • 深入解析:手搓一个 DELL EMC Unity存储系统健康检查清单
  • 实用指南:Spring Boot 读取 YAML 配置文件
  • 完整教程:AVL树(平衡二叉搜索树)
  • Vscode + Latex指南
  • 线程池未争取关闭导致的一个bug
  • kafka创建topic
  • 【500 kHz-6 GHz“全频段通吃”神器】 ——成都恒利泰
  • 成都恒利泰——【5 MHz-1 GHz“信号分身术”神器】
  • WPS 2025最新版EXE
  • 详细介绍:【智慧城市】2025年中国地质大学(武汉)暑期实训优秀作品(2):智慧城市西安与一带一路
  • OpenCV-图像通道提取与处理
  • Mac环境安装Nginx指南实录
  • go语言学习之strconv将字符串转数据类型
  • csp2025
  • Ai元人文:价值共生时代的技术哲学构想之宣言
  • 完整教程:TruckSim与Matlab-Simulink联合仿真(一)