文档章节

MDCache中对find ino的理解

linuxhunter
 linuxhunter
发布于 2016/08/09 17:43
字数 252
阅读 135
收藏 0

MDCache中find_ino_peers()函数负责在其他MDS进程中找到指定inodeno_t对应的file path。该函数创建MMDSFindIno类消息,之后将inodeno_t写入到MMDSFindIno类消息后,将该类消息发送给指定的MDS进程。

MDCache中handle_find_ino()函数负责处理MMDSFindIno类消息。首先通过调用get_inode()函数找到本地inodeno_t对应的CInode类对象,之后调用in->make_path()函数将CInode对应的file path信息写入到MMDSFindInoReply类消息中,最后将MMDSFindInoReply类消息发送回给发送者。

MDCache中handle_find_ino_reply()函数负责处理MMDSFindInoReply类消息。首先在find_ino_peers数组中得到Reply类消息对应的请求项。之后调用get_inode()函数来查找该CInode是否已经存在,若已经存在则直接退出。否则从MMDSFindInoReply类消息中得到path信息,之后调用path_traverse()函数在MDCache中部署该path,若部署成功则直接退出,否则调用find_ino_peers()函数重新发送MMDSFindIno类消息。

© 著作权归作者所有

linuxhunter
粉丝 69
博文 144
码字总数 93264
作品 0
沈阳
高级程序员
私信 提问
MDCache中对open ino的理解

MDCache中handleopenino()函数负责处理MMDSOpenIno类消息。首先通过调用get_inode()得到CInode类对象,之后创建MMDSOpenInoReply类消息,若CInode是auth的则将从CInode一直到其根目录的所有目...

linuxhunter
2016/08/09
69
1
MDCache类分析

class MDCache { //my masters MDSRank mds; MDCache所处的MDSRank //my cache LRU lru; 最近最少使用列表(保存dentries) unorderedmap<vinodenot, CInode> inode_map; inode映射关系(保存i......

linuxhunter
2016/07/27
254
0
EMetaBlob类分析

EMetaBlob用于记录CDir和CDentry的Log EMetaBlob类说明: class EMetaBlob: public LogEvent { }; EMetaBlob类的方法: EMetaBlob::adddircontext(dir, mode) 将dir及其父目录添加到EMetaBl......

linuxhunter
2016/07/20
81
0
SnapRealm类分析

SnapRealm类说明: struct SnapRealm { srt srnode; 描述snap的seq、snap创建的时间、SnapInfo以及snaplinkt相关内容 MDCache *mdcache; 描述Snap在内存中的存储状态 CInode inode; 描述sna...

linuxhunter
2016/07/22
51
0
Migrator类分析

Migrator类说明: class Migrator { MDSRank *mds; 记录mds信息 MDCache *cache; 记录MDCache信息 struct exportstatet { int state; 记录export的当前状态 mdsrankt peer; 记录export到对端......

linuxhunter
2016/07/26
66
0

没有更多内容

加载失败,请刷新页面

加载更多

任务调度-Spring+第三方库Quartz实现分布式任务管理与调度

1. 为什么要用Spring+第三方库Quartz来实现分布式任务管理和调度? 首先管理的目的是通过集群多节点的管理提供容错,调度的目的是保证同一任务只会被完整执行一次;之前分享过的任务调度-单体...

秋日芒草
3分钟前
0
0
Mysql Explain Type

前言 当我们执行sql,一般都会用Explain来查看sql的效率如何。今天在看sql执行效率的时候,忘记了其中Type的意思,现在在此记录一下。 效率 这里的type指的是访问类型,各个效率高低如下: ...

无敌小杰杰
11分钟前
0
0
外部浏览器网页复制公众号无法自动唤起微信并关注怎么办?

现在有很多用户在外部浏览器网页复制公众号时无法自动唤起微信并关注,这是因为第三方浏览器打开微信的接口,微信只给部分合作平台开放了接口权限,任何第三方想调用只能是通过一些技术手段来...

qjniop
15分钟前
0
0
建造者模式

建造者模式(Builder Pattern) 也叫生成器模式,其定义如下: Separate the construction of a complex object from its representation so that the same construction process can create d......

无知的小狼
20分钟前
0
0
距离计算方法

1、欧式距离(欧几里得距离) 欧式距离是最易理解的距离定义,即各坐标点的坐标之差的平方和相加,然后开根号。 二维平面上点 与点 之间的距离公式是: n维空间上点 和点 之间的距离公式是:...

城北徐公美
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部