ESlaveUpdate類說明:
class ESlaveUpdate: public LogEvent {
EMetaBlob commit;
bufferlist rollback;
string type;
metareqid_t reqid;
mds_rank_t master;
__u8 op;
__u8 origop;
};對象
ESlaveUpdate類的方法:
ESlaveUpdate::replay(mds)
|__根據op的值作分類處理
|__op==ESlaveUpdate::OP_PREPARE
|__建立新的MDSlaveUpdate類對象
|__執行EMetaBlob::replay()操做,即:commit.replay()
|__在MDCache中添加uncommitted slave update信息,即:mds->mdcache->add_uncommitted_slave_update()
|__op==ESlaveUpdate::OP_COMMIT
|__從MDCache中獲得uncommitted slave update信息,即:mds->mdcache->get_uncommitted_slave_update()
|__在MDCache中執行finish uncommitted slave update操做,即:mds->mdcache->finish_uncommitted_slave_update()
|__op==ESlaveUpdate::OP_ROLLBACK
|__執行EMetaBlob::replay()操做,即:commit.replay()
|__從MDCache中獲得uncommitted slave update信息,即:mds->mdcache->get_uncommitted_slave_update()
|__在MDCache中執行finish uncommitted slave update操做,即:mds->mdcache->finish_uncommitted_slave_update()
get