ceph rbd:cache

以aio_write为例,给出librbd cache相关的调用顺序:

注意,下文用 -> 表示实例函数 ,::表示静态函数。

  • Image->aio_write
    • ImageRequestWQ->aio_write
      • ImageRequest::aio_write
        • ImageRequest->send
          • if (m_bypass_image_cache || m_image_ctx.image_cache==nullptr)
            • AbstractImageWriteRequest->send_request
          • else
            • ImageWriteRequest->send_image_cache_request
              • PassthroughImageCache->aio_write
                • ImageWriteback->aio_write
                  • ImageWriteRequest->set_bypass_image_cache
                  • ImageWriteRequest->send
                    • AbstractImageWriteRequest->send_request
                      * if (image_ctx.object_cacher == nullptr)
                      * AbstractImageWriteRequest->send_object_requests
                      * else
                      * ImageWriteRequest->send_object_cache_requests
                      * ImageCtx->write_to_cache
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 英文文档,一开始我也是抗拒的,边翻译边看,也就花费了1个小时基本就阅读过了,我的英文基础其实很差。附上链接:链接:...
    lonecolonel阅读 10,027评论 3 1
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,729评论 0 3
  • 基本介绍 rbd qos控制采取了令牌桶算法来实现,最初版本及算法介绍见:https://blog.csdn.ne...
    chnmagnus阅读 4,353评论 0 0
  • 一、你在项目中用过 runtime 吗?举个例子。 a、Method Swizzling动态交换方法实现,实则交换...
    写代码的小农民阅读 1,396评论 0 4
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,060评论 0 2