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

  • 相关阅读:
    2.2 建立示例数据库
    2.1.4 基本概念
    8. 在NOARCHIVELOG模式下用户管理的备份与恢复
    2.1.2 系统全局区
    考过042
    ORA1157错误解决手册(转)
    4. 用户管理的备份
    Kohana之LOG使用
    jq插件之easing
    Svn服务器之必须提交更改日志篇
  • 原文地址:https://www.cnblogs.com/sunbines/p/15669517.html
Copyright © 2011-2022 走看看