OPTION(newstore_fail_eio, OPT_BOOL, true)
OPTION(newstore_sync_io, OPT_BOOL, false) // perform initial io synchronously
OPTION(newstore_sync_transaction, OPT_BOOL, false) // perform kv txn synchronously
+OPTION(newstore_sync_submit_transaction, OPT_BOOL, false)
OPTION(newstore_sync_wal_apply, OPT_BOOL, true) // perform initial wal work synchronously (possibly in combination with aio so we only *queue* ios)
OPTION(newstore_fsync_threads, OPT_INT, 16) // num threads calling fsync
OPTION(newstore_fsync_thread_timeout, OPT_INT, 30) // thread timeout value
txc->state = TransContext::STATE_KV_QUEUED;
if (!g_conf->newstore_sync_transaction) {
Mutex::Locker l(kv_lock);
+ if (g_conf->newstore_sync_submit_transaction) {
+ db->submit_transaction(txc->t);
+ }
kv_queue.push_back(txc);
kv_cond.SignalOne();
return;
utime_t start = ceph_clock_now(NULL);
kv_lock.Unlock();
- for (std::deque<TransContext *>::iterator it = kv_committing.begin();
- it != kv_committing.end();
- it++) {
- db->submit_transaction((*it)->t);
+ if (!g_conf->newstore_sync_submit_transaction) {
+ for (std::deque<TransContext *>::iterator it = kv_committing.begin();
+ it != kv_committing.end();
+ it++) {
+ db->submit_transaction((*it)->t);
+ }
}
// one transaction to force a sync. clean up wal keys while we