当前位置: 首页 > 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.rkmt.cn/news/8648.html

相关文章:

  • 第9章 Prompt提示词设计 - 指南
  • 详解Spring Boot DevTools - 指南
  • 1789:算24
  • 铁头山羊stm32-HAL库 - 实践
  • IDEA编译Maven任务后target目录没有class
  • 2025CSP-S初赛游记
  • 完整教程:AVL树(平衡二叉搜索树)
  • Vscode + Latex指南
  • kafka创建topic
  • WPS 2025最新版EXE
  • go语言学习之strconv将字符串转数据类型
  • csp2025
  • Ai元人文:价值共生时代的技术哲学构想之宣言
  • 完整教程:TruckSim与Matlab-Simulink联合仿真(一)
  • AI 智能体与 Coze 工作流实践:公众号对标账号集采 - 详解
  • PostGIS 介绍(2)--PostGIS 参考
  • Java编译全过程解密:从源码到机器码的奇幻之旅
  • 深搜广搜(DFS、BFS)
  • 成功没有奇迹,只有积累----Bruce Lee
  • day08 课程
  • Java基础语法1
  • 0voice-2.1.2-事件驱动reactor的原理与实现
  • Python 潮流周刊#120:新型 Python 类型检查器对比(摘要)
  • 精选HTML、JavaScript、ASP代码片段集锦
  • rook-ceph CRD资源配置时效困难
  • 实用指南:conda常见问题
  • 关于1200模拟量输入滤波的问题
  • yoloV8
  • 插座(SOCKET)
  • Red Hat 8.5.0-18 部署ceph文件系统 - 实践