ceph RGW接口源码解析之Rados数据操作的示例代码

76次阅读
没有评论

共计 1309 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章主要为大家展示了“ceph RGW 接口源码解析之 Rados 数据操作的示例代码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“ceph RGW 接口源码解析之 Rados 数据操作的示例代码”这篇文章吧。

RGW 业务处理流程:

http reqest — apache 转 FastCgi module

FastCgi module — radosgw  通过 socket 请求实现 (未确定是否有其它方式)

radosgw — ceph 集群   通过 socket 实现,调用 rados 接口

1、数据结构

在 Rgw_common.h 定义了基本的数据结构,并实现了 decode、encode 序列化,方便对 rados 访问

// 桶的权限创建资料

struct RGWBucketInfo 
{
  rgw_bucket bucket;
  string owner;
  uint32_t flags;
  string region;
  time_t creation_time;
  string placement_rule;
  bool has_instance_obj;
  RGWObjVersionTracker objv_tracker; /* we don t need to serialize this, for runtime tracking */
  obj_version ep_objv; /* entry point object version, for runtime tracking only */
  RGWQuotaInfo quota;

}

// 桶 pool 位置存储组成
struct rgw_bucket {
  std::string name;
  std::string data_pool;
  std::string data_extra_pool; /* if not set, then we should use data_pool instead */
  std::string index_pool;
  std::string marker;
  std::string bucket_id;
  std::string oid;
 }

// 用户 UID 资料

struct RGWUserInfo

2、s3 元数据原子操作

在 rgw_op.h 定义元数据的原子操作,RGWOp 作为基类

创建桶的原子类定义:class RGWCreateBucket : public RGWOp

3、元数据操作句柄

在 Rgw_bucket.h 中定义
  class RGWUserBuckets

在 Rgw_bucket.cc 中实现
  class RGWBucketInstanceMetadataHandler : public RGWMetadataHandler
  class RGWBucketMetadataHandler : public RGWMetadataHandler

4、rados 接口实现

在 rgw_rados.h 定义了 RGWRados,实现了所有与 rados 相关的操作接口

以上是“ceph RGW 接口源码解析之 Rados 数据操作的示例代码”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1309字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)