zoukankan      html  css  js  c++  java
  • 【osd】OSD的内部队列

    OSD的内部队列

    由于op可能各种各样的原因需要背推迟处理,为此PG内部维护了多种op重试队列,它们的含义下表所示:

    队列名称 入队条件
     wait_for_map 当收到op时,已经有来自同一个客户端的op存在于此队列中,,或者op携带的Epoch大于PG当前的Epoch 
    waiting_for_peered  PG不是Peered或者Active状态(例如PG处于Down或者Incomplete状态)。
    waiting_for_active  PG不是Active状态(例如PG处于peered状态)。
    waiting_for_unreadable_object           

    op操作Primary上的降级对象或对象不可读(例如纠删码的情况下,对象的一个或多个分片损坏,并且无法通过解码恢复)。

    waiting_for_degraded_object  op包含写操作并且操作对象降级
    waiting_for_srub

     op操作的对象正在Srub。

    注意:由于PG能够执行Srcub的迁移是PG处于Active + Clean状态,所以PG总是最后检查此队列。

    为了保证op之间不会乱序,所有队列都被设计成FIFO队列并且队列之间严格有序,当某个限制条件 被解除后,PG会触发相关队列的op出列,重新进入op_shardedwq排队。

  • 相关阅读:
    SDN第三次上机作业
    团队作业——Beta冲刺
    SDN第二次上机作业
    在mpvue中使用map如何避坑
    仿一个好玩的滑动效果
    乡音
    mpvue支持小程序的分包加载
    台风🌀和口腔溃疡
    记一次cocos项目的加载速度优化
    如何用ajax下载文件
  • 原文地址:https://www.cnblogs.com/sunbines/p/15669517.html
Copyright © 2011-2022 走看看