This reverts commit
c0f87e0f91539d4d12dad5bddf95a97457a21c67.
The 'osd_op_queue_cut_off' config option determines which level of
high priority ops should use strict priority ordering and may change
from time to time. Since the main strategy of 'osd_kick_recovery_op_priority'
is to simply follow up 'osd_op_queue_cut_off', we can instead make a direct
use of 'osd_op_queue_cut_off' to achieve the same thing explicitly.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
:Valid Range: 1-63
-``osd kick recovery op priority``
-
-:Description: The priority set for recovery operations that are forced by
- client operations.
- The new "mclock_opclass/mclock_client" queue basically prioritizes
- operations based on the class they belong to. The priority property
- of an operation, if lower than a specific value (64, by default),
- will get ignored and hence all operations from the same class will
- be treated fairly in a FIFO fashion (but still limited by the total
- IOPS or bandwidth available for the corresponding class).
- To reduce the impact of performance, a more general strategy would be
- enforcing some limitations on the IOPS or bandwidth for the background
- recovery (or backfill) operation class. However, this way we'll end up
- blocking client operations too if they are currently blocked by some
- degraded objects which need to be recovered first.
- We hereby grant recovery operations of this kind a higher priority
- to force them to use strict priority ordering, which should still
- be of significance once we switch to the new "mclock_opclass/mclock_client"
- queue.
-
-:Type: 32-bit Integer
-:Default: ``64``
-:Valid Range: 64-255
-
-
``osd scrub priority``
:Description: The default priority set for a scheduled scrub work queue when the
OPTION(osd_client_op_priority, OPT_U32)
OPTION(osd_recovery_op_priority, OPT_U32)
OPTION(osd_peering_op_priority, OPT_U32)
-OPTION(osd_kick_recovery_op_priority, OPT_U32)
OPTION(osd_snap_trim_priority, OPT_U32)
OPTION(osd_snap_trim_cost, OPT_U32) // set default cost equal to 1MB io
.set_default(255)
.set_description(""),
- Option("osd_kick_recovery_op_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
- .set_default(64)
- .set_description("priority for recovery ops instantized by client ops, "
- "default to 64 to use strict priority ordering")
- .add_see_also("osd_recovery_op_priority"),
-
Option("osd_snap_trim_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
.set_default(5)
.set_description(""),
dout(7) << "object " << soid << " v " << v << ", recovering." << dendl;
PGBackend::RecoveryHandle *h = pgbackend->open_recovery_op();
if (is_missing_object(soid)) {
- recover_missing(soid, v, cct->_conf->osd_kick_recovery_op_priority, h);
+ recover_missing(soid, v, cct->_conf->osd_client_op_priority, h);
} else if (recovery_state.get_missing_loc().is_deleted(soid)) {
prep_object_replica_deletes(soid, v, h, &work_started);
} else {
prep_object_replica_pushes(soid, v, h, &work_started);
}
- pgbackend->run_recovery_op(h, cct->_conf->osd_kick_recovery_op_priority);
+ pgbackend->run_recovery_op(h, cct->_conf->osd_client_op_priority);
}
}