元数据服务read操作流程
2017-03-26 11:45:49 0 举报
元数据服务read操作流程主要包括以下几个步骤:首先,客户端发起对元数据的读取请求,该请求包含了需要读取的元数据的唯一标识符。然后,服务端接收到请求后,会根据请求中的信息查找对应的元数据。如果找到了对应的元数据,服务端会将元数据返回给客户端;如果没有找到,服务端会返回一个错误信息。在返回元数据的过程中,服务端还会记录这次操作的详细信息,包括操作的时间、用户的身份信息等,以便进行后续的审计和分析。最后,客户端接收到元数据后,可以进行后续的处理,如展示给用户或者存储到本地。
作者其他创作
大纲/内容
是
操作上下文被进一步转发给 FileSystem对象处理,需要做一系列检查
检查该 inode id 所属的unit 文件是否可访问
不是
不存在
根据chunk信息和操作上下文信息得到该chunk 的 OSS List信息
返回错误码
存在
否
返回 YWB_SUCCESS
返回 YFS_ENOCHUNK
根据 unit id以及属性页索引得到该属性页的数据
根据 inode id 和 chunk index 检查该chunk 是否存在
将 chunk id 和 chunk version 均设置为0
从 ChunksMgr对象的成员mChunkTable中删除该chunk 的索引,然后把该chunk 占用的内存释放掉,通过广播所获得的该chunk信息,返回YFS_ENOCHUNKSERVERS
根据属性记录索引得到该 inode 的属性信息
工作线程收到这个操作上下文之后,首先检查操作上下文中包含的快照ID是否为有效值
开始
根据 inode id 得到该 inode 的属性记录索引(AttrRecordIndex)
能
根据属性记录索引和 chunk 索引信息在属性页中得到chunk id 和 chunk version 信息
检查该chunk 的 OSS List是否为空
不能
检查该chunk 状态是否为 YfsChunk::CS_normal
从当前数据中读取信息,首先根据 inode id 获得 inode 属性页索引
read chunk操作执行完成,提交所有的微事务,然后将操作上下文的操作状态修改为 OpCtx::S_sending_response,通过网络向AP发送read 操作已经完成的消息
AttrNode收到客户端AP发过来的 read 消息,消息类型为 YfsMessage::YM_cltoms_read
将得到的 chunk id、chunk version以及chunk 所属的 pool ID写入操作上下文,然后把这个read 操作上下文传递给 ChunksMgr对象处理
AttrNode解析这个消息包,根据消息包内容构造一个操作上下文,上下文操作码为 OpCtx::FSO_read,然后将这个操作上下文发布到 ClientOSSParserDispatcher线程
该inode id 所属的 unit 文件是否处于changing 状态
该 unit 文件是否可用,能否正常访问
检查 OSS List是否为空
根据操作码将该操作上下文发布到某个工作线程去处理
结束
0 条评论
下一页