apply_manager.op_apply_start(o->op);
dout(5) << __FUNC__ << ": " << o << " seq " << o->op << " " << *osr << " start" << dendl;
o->trace.event("_do_transactions start");
- int r = _do_transactions(o->tls, o->op, &handle);
+ int r = _do_transactions(o->tls, o->op, &handle, osr->osr_name);
o->trace.event("op_apply_finish");
apply_manager.op_apply_finish(o->op);
dout(10) << __FUNC__ << ": " << o << " seq " << o->op << " r = " << r
int FileStore::_do_transactions(
vector<Transaction> &tls,
uint64_t op_seq,
- ThreadPool::TPHandle *handle)
+ ThreadPool::TPHandle *handle,
+ const char *osr_name)
{
int trans_num = 0;
for (vector<Transaction>::iterator p = tls.begin();
p != tls.end();
++p, trans_num++) {
- _do_transaction(*p, op_seq, trans_num, handle);
+ _do_transaction(*p, op_seq, trans_num, handle, osr_name);
if (handle)
handle->reset_tp_timeout();
}
void FileStore::_do_transaction(
Transaction& t, uint64_t op_seq, int trans_num,
- ThreadPool::TPHandle *handle)
+ ThreadPool::TPHandle *handle,
+ const char *osr_name)
{
dout(10) << __FUNC__ << ": on " << &t << dendl;
-#ifdef WITH_LTTNG
- string osr_name_str = stringify(static_cast<OpSequencer*>(t.get_osr())->cid);
- const char *osr_name = osr_name_str.c_str();
-#endif
-
Transaction::iterator i = t.begin();
SequencerPosition spos(op_seq, trans_num, 0);
list<uint64_t> jq;
list<pair<uint64_t, Context*> > flush_commit_waiters;
Cond cond;
+ string osr_name_str;
public:
Mutex apply_lock; // for apply mutual exclusion
int id;
+ const char *osr_name;
/// get_max_uncompleted
bool _get_max_uncompleted(
: CollectionImpl(cid),
cct(cct),
qlock("FileStore::OpSequencer::qlock", false, false),
+ osr_name_str(stringify(cid)),
apply_lock("FileStore::OpSequencer::apply_lock", false, false),
- id(i) {}
+ id(i),
+ osr_name(osr_name_str.c_str()) {}
~OpSequencer() override {
assert(q.empty());
}
int _do_transactions(
vector<Transaction> &tls, uint64_t op_seq,
- ThreadPool::TPHandle *handle);
+ ThreadPool::TPHandle *handle,
+ const char *osr_name);
int do_transactions(vector<Transaction> &tls, uint64_t op_seq) override {
- return _do_transactions(tls, op_seq, 0);
+ return _do_transactions(tls, op_seq, nullptr, "replay");
}
void _do_transaction(
Transaction& t, uint64_t op_seq, int trans_num,
- ThreadPool::TPHandle *handle);
+ ThreadPool::TPHandle *handle, const char *osr_name);
CollectionHandle open_collection(const coll_t& c) override;
CollectionHandle create_new_collection(const coll_t& c) override;