]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: restructure deferred write queue
authorSage Weil <sage@redhat.com>
Thu, 9 Mar 2017 02:53:22 +0000 (21:53 -0500)
committerSage Weil <sage@redhat.com>
Tue, 21 Mar 2017 18:56:28 +0000 (13:56 -0500)
commit6db031be4d5094a1fc68ee1081b789dd97cc8237
treeb4c33e49529a4645ac76cb7a73eff2adec3bee4b
parent5fafd1fcc20062fcc36bdce29c5c5ef0ed68b134
os/bluestore: restructure deferred write queue

First, eliminate the work queue--it's useless.  We are dispatching aio and
should not block.  And if a single thread isn't sufficient to do it, it
probably means we should be parallelizing kv_sync_thread too (which is our
only caller that matters).

Repurpose the old osr-list -> txc-list-per-osr queue structure to manage
the queuing.  For any given osr, dispatch one batch of aios at a time,
taking care to collapse any overwrites so that the latest write wins.

Signed-off-by: Sage Weil <sage@redhat.com>
src/common/config_opts.h
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h
src/test/objectstore/store_test.cc