EImportStart类分析

本文介绍了EImportStart类及其方法的详细实现。该类通过更新LogSegment的sessionmapv、调整MDCache中的子树权限等操作来实现数据导入过程中的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EImportStart类说明:
class EImportStart:public LogEvent {
  dirfrag_t base;
  vector<dirfrag_t> bounds;
  EMetaBlob metablob;
  bufferlist client_map;
  version_t cmapv;
};

EImportStart类方法:
EImportStart::update_segment()
|__设置LogSegment的sessionmapv为cmapv,即:_segment->sessionmapv=cmapv

EImportStart::replay(mds)
|__执行EMetaBlob::replay()操作
|__将bounds添加到MDCache的ambiguous中,即:mds->mdcache->add_ambiguous_import()
|__从MDCache中得到base的CDir
|__遍历bounds集合
  |__得到bounds在MDCache中的CDir
  |__将CDir插入到realbounds集合中
|__将realbounds集合加入到MDCache中,即:mds->mdcache->adjust_bounded_subtree_auth()
|__若mds的sessinmap版本小于cmapv
  |__解析client_map到map<client_t, entity_inst_t>cm中
  |__执行mds中sessionmap的open_sessions()操作,即:mds->sessionmap.open_sessions(cm)
  |__设置mds中sessionmap为projected,即:mds->sessionmap.set_projected()
|__执行update_segment()
 

转载于:https://my.oschina.net/linuxhunter/blog/716078

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值