ChunksMgr::ServerDisconnected流程
2017-03-30 15:55:18 0 举报
ChunksMgr::ServerDisconnected是处理服务器断开连接的流程。当客户端与服务器之间的连接意外中断时,该流程被触发。首先,它会尝试重新建立与服务器的连接,如果连接失败,则记录错误日志并通知用户。然后,它会释放所有与该服务器相关的资源,包括内存、文件句柄等。接着,它会更新内部状态,将该服务器标记为离线,并通知其他模块。最后,如果需要,它可能会尝试从备份或恢复系统中恢复数据。在整个过程中,ChunksMgr::ServerDisconnected会尽可能地保持数据的一致性和完整性,以减少由于服务器断开连接而导致的数据丢失或损坏的风险。
作者其他创作
大纲/内容
遍历 mChunkTable多级链表得到 rb_table对象,然后取出 rb_table 中值最小的项,即该项对应的chunk信息
否
mChunkTable是否遍历完成
停止为该chunk在该OSS Server上做副本
是
遍历到该 chunk OSS列表的下一个元素
结束
开始
依次遍历该chunk所在的OSS列表,根据该chunk当前的操作对该chunk做相应的处理
释放该 YfsChunkOss对象占用的内存,把已删除的 OSS个数加一
该 chunk信息中包含的对该chunk的操作是否为 YfsChunk::CO_none
更新该chunk的优先级
该 chunk信息不为空
遍历到 rb_table中的下一项,得到另一个chunk的信息
取出该chunk信息中包含的该chunk所在的OSS列表
在 mStorageServers维护的mStoragePools的已连接服务器视图中删除该连接
检查该 OSS 列表中当前所指向的OSS Server的 OSS ID与离线的OSS ID是否一致
判断该 OSS列表元素指针是否为空
0 条评论
回复 删除
下一页