]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/PG: Add two new mClock implementations of the PG sharded operator queue 14997/head
authorJ. Eric Ivancich <ivancich@redhat.com>
Wed, 7 Jun 2017 18:44:13 +0000 (14:44 -0400)
committerJ. Eric Ivancich <ivancich@redhat.com>
Wed, 21 Jun 2017 03:15:36 +0000 (23:15 -0400)
commitbf70c4b9b0627367d416427a8adaf6d9c80be7d2
tree1cb2fdafaacd24b22fb82c31475db62b77da0f3f
parent503de209275b5d54a41747e19bca5495259bec43
osd/PG: Add two new mClock implementations of the PG sharded operator queue

Create an mClock priority queue, which can in turn be used for two new
implementations of the PG shards operator queue. The first
(mClockOpClassQueue) prioritizes operations based on which class they
belong to (recovery, scrub, snaptrim, client op, osd subop). The
second (mClockClientQueue) also incorporates the client identifier, in
order to promote fairness between clients.

In addition, also remove OpQueue's remove_by_filter and all possible
associated subclass implementations and tests.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
21 files changed:
src/common/OpQueue.h
src/common/PrioritizedQueue.h
src/common/WeightedPriorityQueue.h
src/common/config_opts.h
src/common/mClockPriorityQueue.h [new file with mode: 0644]
src/osd/CMakeLists.txt
src/osd/OSD.cc
src/osd/OSD.h
src/osd/PGQueueable.cc [new file with mode: 0644]
src/osd/PGQueueable.h [new file with mode: 0644]
src/osd/mClockClientQueue.cc [new file with mode: 0644]
src/osd/mClockClientQueue.h [new file with mode: 0644]
src/osd/mClockOpClassQueue.cc [new file with mode: 0644]
src/osd/mClockOpClassQueue.h [new file with mode: 0644]
src/test/common/CMakeLists.txt
src/test/common/test_mclock_priority_queue.cc [new file with mode: 0644]
src/test/common/test_prioritized_queue.cc
src/test/common/test_weighted_priority_queue.cc
src/test/osd/CMakeLists.txt
src/test/osd/TestMClockClientQueue.cc [new file with mode: 0644]
src/test/osd/TestMClockOpClassQueue.cc [new file with mode: 0644]