void OSDService::queue_scrub_next_chunk(PG *pg, Scrub::scrub_prio_t with_priority)
{
// Resulting scrub event: 'NextChunk'
- queue_scrub_event_msg<PGScrubGetNextChunk>(pg, with_priority);
+ queue_scrub_event_msg_default_cost<PGScrubGetNextChunk>(pg, with_priority);
}
-void OSDService::queue_for_pg_delete(spg_t pgid, epoch_t e)
+void OSDService::queue_for_pg_delete(spg_t pgid, epoch_t e, int64_t num_objects)
{
dout(10) << __func__ << " on " << pgid << " e " << e << dendl;
+ uint64_t cost_for_queue = [this, num_objects] {
+ if (op_queue_type_t::mClockScheduler == osd->osd_op_queue_type()) {
+ return num_objects * cct->_conf->osd_pg_delete_cost;
+ } else {
+ return cct->_conf->osd_pg_delete_cost;
+ }
+ }();
enqueue_back(
OpSchedulerItem(
unique_ptr<OpSchedulerItem::OpQueueable>(