ESlaveUpdate類分析

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

相關文章
相關標籤/搜索