MDCache中handle_dir_update()函数处理MDirUpdate类消息。发送MDirUpdate类消息的MDS进程由于其上的Dir有变化,因此需要将Dir的变化信息发送给其他MDS进程已保证dirfragtree的一致性。接受到MDirUpdate类消息的MDS进程首先在本地查找更新的Dir对应的CDir类对象,若不存在该类对象且MDirUpdate类消息中指定should_discover则向发送MDirUpdate类消息的MDS进程发送discover请求来获取指定的Dir信息,否则更新本地CDir类对象的dir_rep和dir_rep_by字段。
转载于:https://my.oschina.net/linuxhunter/blog/730211