]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd: dispatch_context inside PG lock
authorSage Weil <sage@redhat.com>
Wed, 21 Aug 2019 21:03:43 +0000 (16:03 -0500)
committerSage Weil <sage@redhat.com>
Thu, 5 Sep 2019 21:27:08 +0000 (16:27 -0500)
commit8776d6c076a0d282bb68e1c8da666d4b40024ad5
treee820a3151259c394314993a520ea3e49d295c2b3
parentc52b8b0c76eb8f87508b1330be9a8e8925417b93
osd: dispatch_context inside PG lock

We have been using PeeringCtx (previously RecoveryCtx) to batch up
query, notify, and info messages and send them to other OSDs.  This is
optimizing for small clusters in a way that doesn't apply to large
clusters and complicates the code.

(FWIW I also don't think the batching was working very well anyway.)

Instead, dispatch everything *inside* the PG lock, and do not accumulate
work across multiple PGs.  Avoid re-using the RecoveryCtx at all by
moving it into the loops.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc
src/osd/OSD.h