1
0
mirror of https://github.com/ceph/ceph synced 2025-03-11 02:39:05 +00:00

os/bluestore: prevent sync_submit if there is unstable io for this osr

If this txc or any txc that precedes it has unstable IO we cannot queue
our kv transaction without a bdev sync.  Currently such a sync is only
triggered from the kv_sync_thread, so we need to do this kv submission
async.

Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
Sage Weil 2016-11-15 15:31:35 -05:00
parent 503538885f
commit 662cda684a

View File

@ -6234,6 +6234,9 @@ void BlueStore::_txc_state_proc(TransContext *txc)
// sequencer that is committing serially it is possible to keep
// submitting new transactions fast enough that we get stuck doing
// so. the alternative is to block here... fixme?
} else if (txc->osr->txc_with_unstable_io) {
dout(20) << __func__ << " prior txc(s) with unstable ios "
<< txc->osr->txc_with_unstable_io.load() << dendl;
} else if (g_conf->bluestore_debug_randomize_serial_transaction &&
rand() % g_conf->bluestore_debug_randomize_serial_transaction
== 0) {