]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: avoid extra dev flush on single device when all io is deferred
authorSage Weil <sage@redhat.com>
Thu, 9 Mar 2017 22:28:58 +0000 (17:28 -0500)
committerSage Weil <sage@redhat.com>
Tue, 21 Mar 2017 18:56:29 +0000 (13:56 -0500)
commit1fefeeb39ef9f81a63b0e9643fc4c3d37cea86ba
treefef901534937efa671775eab85589abeef6060de
parentc1f01082a12036236663bdd7423f61484ec59027
os/bluestore: avoid extra dev flush on single device when all io is deferred

If we have no non-deferred IO to flush, and we are running bluefs on a
single shared device, then we can rely on the bluefs flush to make our
current batch of deferred ios stable.

Separate deferred into a "done" and "stable" list.  If we do sync, put
everything from "done" onto "stable".  Otherwise, after we do our kv
commit via bluefs, move "done" to "stable" then.

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