]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd: move pgid into OpQueueItem
authorKefu Chai <kchai@redhat.com>
Wed, 12 Jul 2017 07:19:13 +0000 (15:19 +0800)
committermyoungwon oh <omwmw@sk.com>
Tue, 10 Oct 2017 14:00:45 +0000 (23:00 +0900)
commitb679abcfc555dad0e490c6f6a47b1a5fb17dbc69
tree65065a44f8feb94b4bbf5f2122ceeedfc0706af5
parent9e12935240ad79d330ef4b6d1baa03a6135ba603
osd: move pgid into OpQueueItem

this pave the road to generalize OpWQ

We're going to want to be able to queue things that are not ordered by
the PG lock.  To that end, this patch genearlizes OSD::ShardedOpWQ to
use a type which can specify an ordering token and locking structure
other than a PG.

There is a lot of collateral damage which I didn't feel was worth
separating out into other commits.  The code in ShardedOpWQ itself got
some superficial cleanup.  Also, the item being queued has been switched
to not use a boost::variant.  It was a cute way before to make the type
easily copyable, but adding more visitors for the locking support would
have been annoying.  Instead, the variant is a unique_ptr to an
interface.  This makes the queue item type no longer copyable, which is
just as well since we don't really want to be copying queue items anyway
(duplicates would be most likely a bug)

Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
src/osd/OSD.cc
src/osd/OSD.h
src/osd/OpQueueItem.cc
src/osd/OpQueueItem.h
src/osd/PG.cc
src/osd/PrimaryLogPG.cc
src/osd/mClockClientQueue.cc
src/osd/mClockClientQueue.h
src/osd/mClockOpClassQueue.cc
src/osd/mClockOpClassQueue.h