void BlueStore::_txc_committed_kv(TransContext *txc)
{
dout(20) << __func__ << " txc " << txc << dendl;
- unsigned n = txc->osr->shard_hint.hash_to_shard(m_finisher_num);
logger->tinc(l_bluestore_commit_lat, ceph_clock_now() - txc->start);
- finishers[n]->queue(txc->oncommits);
+ finishers[txc->osr->shard]->queue(txc->oncommits);
}
void BlueStore::_txc_finish(TransContext *txc)
} else {
osr = new OpSequencer(cct, this);
osr->parent = posr;
- osr->shard_hint = posr->shard_hint;
+ osr->shard = posr->shard_hint.hash_to_shard(m_finisher_num);
posr->p = osr;
dout(10) << __func__ << " new " << osr << " " << *osr << dendl;
}
for (auto c : on_applied_sync) {
c->complete(0);
}
- unsigned n = osr->shard_hint.hash_to_shard(m_finisher_num);
for (auto c : on_applied) {
// NOTE: these may complete out of order since some may be sync and some
// may be async.
if (!c->sync_complete(0)) {
- finishers[n]->queue(c);
+ finishers[osr->shard]->queue(c);
}
}