]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
Merge pull request #51171 from amathuria/wip-amat-scrub-cost-related-changes
authorYuri Weinstein <yweinste@redhat.com>
Mon, 10 Jun 2024 19:38:28 +0000 (12:38 -0700)
committerGitHub <noreply@github.com>
Mon, 10 Jun 2024 19:38:28 +0000 (12:38 -0700)
osd/scrub: Change scrub cost to average object size

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
Reviewed-by: Sridhar Seshasayee <sseshasa@redhat.com>
1  2 
src/osd/OSD.cc
src/osd/OSD.h
src/osd/scrubber/pg_scrubber.cc
src/osd/scrubber/pg_scrubber.h

diff --cc src/osd/OSD.cc
index 7dcebe83b5a13fed0d31ba00094d41c0e11d9b60,4fdde92d0c61e25f3f8241d548f25d7313615e87..a45ae10d2a9f3afe10068c0c833af9089da3188d
@@@ -1885,19 -1889,12 +1900,19 @@@ void OSDService::queue_scrub_is_finishe
  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>(
diff --cc src/osd/OSD.h
Simple merge
Simple merge
Simple merge