元数据服务write操作流程
2017-03-26 15:47:14 0 举报
元数据服务的write操作流程主要包括以下几个步骤:首先,客户端向元数据服务发送写请求,包含需要写入的数据和目标位置信息。然后,元数据服务接收到请求后,会先对数据进行验证和格式化处理,确保数据的完整性和一致性。接着,元数据服务会在内存中更新对应的元数据信息,包括数据的键值、版本号、时间戳等。最后,元数据服务会将更新后的元数据信息持久化到磁盘上,以保证数据的持久性和可靠性。在整个过程中,元数据服务还会负责处理并发控制和事务管理,确保数据的一致性和隔离性。
作者其他创作
大纲/内容
检查该 inode id 所属的unit 文件是否可用
返回错误码 YFS_ENOCHUNKSERVERS
返回相应的错误码
判断该 chunk 信息是否存在
AttrNode 收到这个write 消息之后,解析这个消息包,构造一个操作上下文,操作类型为 OpCtx::FSO_write
是
AP通过网络向 AttrNode 发送 write 消息,消息类型为 YfsMessage::YM_cltoms_write
根据属性记录索引从属性页中得到 inode 属性信息
根据操作上下文的操作码将该上下文分发到某个工作线程
开始
根据inode id 和 chunk索引得到chunk信息,检查该chunk 信息是否为空
检查该chunk的 chunk id 是否为0
在 inode 属性页中更新chunk ID和 chunk version 信息
根据 inode id 和chunk 索引信息等创建chunk
否
根据属性记录索引得到该文件的chunk 数目
根据该文件的inode id 获得属性记录索引
检查该inode id 所属的unit 文件是否处于changing 状态
将write操作上下文放入等待执行的操作列表
给属性页加锁,根据 unit id和 属性页索引得到该 inode 属性页数据
判断该chunk是否为新创建的chunk
工作线程在收到该操作上下文后,首先根据该文件的 inode id 得到该 inode 的属性页索引
检查该 inode id 所属的unit 文件是否可访问
检查该 inode 是否处于同步状态
AttrNode 将这个操作上下文分发到 FileSystem对象,做一系列检查
返回错误码 YFS_EAGAIN
结束
根据属性记录索引和chunk索引得到该chunk的 chunk id 和chunk version
提交所有的微事务,将操作上下文的操作状态设置为 OpCtx::S_sending_response,通过网络向AP客户端发送write操作完成的消息
0 条评论
下一页