// recovery
+void MDSTableClient::got_journaled_agree(version_t tid, LogSegment *ls)
+{
+ ls->pending_commit_tids[table].insert(tid);
+ pending_commit[tid] = ls;
+}
+void MDSTableClient::got_journaled_ack(version_t tid)
+{
+ if (pending_commit.count(tid))
+ pending_commit[tid]->pending_commit_tids[table].erase(tid);
+ pending_commit.erase(tid);
+}
void MDSTableClient::finish_recovery()
{
void resend_commits();
// for recovery (by me)
- void got_journaled_agree(version_t tid, LogSegment *ls) {
- pending_commit[tid] = ls;
- }
- void got_journaled_ack(version_t tid) {
- pending_commit.erase(tid);
- }
+ void got_journaled_agree(version_t tid, LogSegment *ls);
+ void got_journaled_ack(version_t tid);
+
bool has_committed(version_t tid) {
return pending_commit.count(tid) == 0;
}
<< " transaction " << p->second << dendl;
MDSTableClient *client = mds->get_table_client(p->first);
client->got_journaled_agree(p->second, logseg);
- logseg->pending_commit_tids[p->first].insert(p->second);
}
// allocated_inos