ESlaveUpdate类怎么用

这篇文章主要为大家展示了“ESlaveUpdate类怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“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()
 

以上是“ESlaveUpdate类怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!