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

news/2025/9/20 18:35:06/文章来源:https://www.cnblogs.com/yxysuanfa/p/19102717

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.mzph.cn/news/908493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第9章 Prompt提示词设计 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

详解Spring Boot DevTools - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:rook-ceph自定义添加osd流程

深入解析:rook-ceph自定义添加osd流程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

1789:算24

题目 总时间限制: 3000ms 内存限制: 65536kB 描述 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。 这里…

Proxy 库解析(二)

refl meta template <bool IsDirect, class R> struct refl_meta {template <class P>requires(IsDirect)constexpr explicit refl_meta(std::in_place_type_t<P>): reflector(std::in_place_type&l…

【Python3教程】Python3高级篇之JSON材料解析

【Python3教程】Python3高级篇之JSON材料解析2025-09-20 18:04 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

大模型服务之下的新旧政务智能系统比较 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

流行的 3D 文件格式及其用途指南

了解 3D 文件格式的重要性 三维 (3D) 技术的市场既广泛又复杂,应用范围从电影后期制作和产品原型制作到虚拟现实 (VR) 和增强现实 (AR) 游戏。该技术各种用例不可或缺的一部分是 3D 文件格式,它决定了 3D 数据…

CentOS7.9上安装MySQL8.4

CentOS 7 已在 2024 年 6 月 30 日结束生命周期 (EOL),官方源已停止维护! CentOS 7 已在 2024 年 6 月 30 日结束生命周期 (EOL),官方源已停止维护! CentOS 7 已在 2024 年 6 月 30 日结束生命周期 (EOL),官方源已…

铁头山羊stm32-HAL库 - 实践

铁头山羊stm32-HAL库 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

IDEA编译Maven任务后target目录没有class

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025CSP-S初赛游记

哈哈,在致知楼(逆天诡异滏阳楼)考的。

JBoltAI框架:企业级AI开发的革新路径与行业实践 - 那年-冬季

JBoltAI框架:企业级AI开发的革新路径与行业实践在人工智能与产业深度融合的当下,企业级AI开发框架正成为推动智能化转型的关键基础设施。JBoltAI作为面向Java技术生态的智能开发框架,通过模块化架构设计与多模型适配…

JBoltAI:重塑视频创作,开启零门槛智能混剪新时代 - 那年-冬季

JBoltAI:重塑视频创作,开启零门槛智能混剪新时代在当今这个视觉内容占据主导地位的时代,视频已成为信息传递、品牌宣传和创意表达的重要载体。然而,传统的视频制作过程往往伴随着高昂的专业门槛、漫长的时间投入以…

深入解析:手搓一个 DELL EMC Unity存储系统健康检查清单

深入解析:手搓一个 DELL EMC Unity存储系统健康检查清单pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

实用指南:Spring Boot 读取 YAML 配置文件

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:AVL树(平衡二叉搜索树)

完整教程:AVL树(平衡二叉搜索树)2025-09-20 17:48 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !imp…

Vscode + Latex指南

引言 Overleaf编译大项目的时候总是失败,这时候就需要用到本地的latex了。 本地方案已经比较成熟,只是需要一点配置。 vscode安装一个扩展即可需要关闭拼写检查 打开设置-扩展-Latex加入一行"latex.linter.enab…

线程池未争取关闭导致的一个bug

前提 自己写了一个任务执行器TaskStarter,在SpringBoot启动时自动执行一些初始化任务。使用数据库来保证一些幂等操作。 为了防止任务执行过久或者执行过程中失去响应,每个任务执行时都需要启动一个异步的任务来更新…

kafka创建topic

kafka创建topiccd /data/kafka_2.13-2.8.0/bin/ 下 -- 创建 ./kafka-topics.sh --create \ --bootstrap-server ip:9092 \ --topic XXXX_topic \ --partitions 2 \ --replication-factor 1 \ --config retention…