1
0
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:
xie xingguo 2019-09-29 09:57:22 +08:00
parent e741238745
commit 5f22e36b44
4 changed files with 2 additions and 34 deletions

View File

@ -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

View File

@ -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

View File

@ -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(""),

View File

@ -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);
}
}