mirror of
https://github.com/ceph/ceph
synced 2025-03-29 23:09:47 +00:00
Revert "osd: give recovery ops initialized by client op a higher priority"
This reverts commit c0f87e0f91
.
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>
This commit is contained in:
parent
e741238745
commit
5f22e36b44
@ -438,31 +438,6 @@ Operations
|
||||
: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
|
||||
|
@ -849,7 +849,6 @@ OPTION(mon_rocksdb_options, OPT_STR)
|
||||
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
|
||||
|
@ -4051,12 +4051,6 @@ std::vector<Option> get_global_options() {
|
||||
.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(""),
|
||||
|
@ -560,13 +560,13 @@ void PrimaryLogPG::maybe_kick_recovery(
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user