ChunksMgr::ServerHasChunk流程
2017-03-30 14:15:46 0 举报
ChunksMgr::ServerHasChunk是一个流程,用于检查服务器上是否存在特定的数据块。当客户端请求访问某个数据块时,服务器会首先调用此流程来确认是否拥有该数据块。如果服务器上确实存在该数据块,则返回True,否则返回False。这个流程对于确保数据的一致性和完整性非常重要,因为它可以帮助防止客户端访问到不存在的数据块,从而避免可能的错误和问题。此外,通过定期运行此流程,服务器还可以检测到丢失或损坏的数据块,并采取相应的措施进行修复。总之,ChunksMgr::ServerHasChunk流程是一个重要的数据管理工具,它有助于提高服务器的性能和可靠性。
作者其他创作
大纲/内容
根据遍历所得到ChunkParam信息中包含的 chunk的 inode id 和 chunk index 信息得到 chunk 信息
更新 chunk 优先级,释放迭代器所指向的 ChunkParam对象内存
检查 chunk 信息是否为空
遍历ChunksParam的mChunks容器,mChunks容器里保存的是 ChunkParam信息
在
否
根据 chunk inode id 和 chunk index 信息在内存中分配一块区域,用于保存YfsChunk对象的信息
是
结束
将该chunk的 m_needverincrease成员变量设置为 1
通过网络向 OSS发送回应消息,消息类型为 YfsMessage::YM_mstooss_has_chunk_res
将 mChunks容器中所有元素清空
检查 chunk 中包含的 chunk id 是否为0
不在
将 chunk 信息中包含的 chunk id 设置为0
开始
取当前时间作为给这个 chunk 加锁的时间点,给chunk 加锁的原因设置为 YfsChunk::LR_new
检查 mChunks容器是否已经遍历完成
检查该 chunk inodeid 所属的 unit 文件ID 是否在FileSystem对象的 mFreshMasterUnitSet集合中
检查该chunk的有效副本数是否为0并且该chunk 的 chunk id 和 chunk version 与遍历所得ChunkParam信息中包含的 chunk id 和 chunk version 至少有一个不一致
0 条评论
回复 删除
下一页