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排队。

  • 相关阅读:
    textarea输入字符有限制
    linux 简单命令
    jQuery animate()
    两张图切换
    表单验证 靠name获取
    jquery验证手机号码
    倒计时
    锚点链接 阻止a标签跳转
    滚动监听: bootstrap 的scrollspy
    MySQL 02
  • 原文地址:https://www.cnblogs.com/sunbines/p/15669517.html
Copyright © 2011-2022 走看看