RecoveryQueue包含了哪些集合

这篇文章主要介绍RecoveryQueue包含了哪些集合,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

专注于为中小企业提供做网站、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业鼓楼免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

RecoveryQueue包含三个集合:file_recover_queue(保存待进行recover操作的CInode集合)、file_recover_queue_front(保存优先待进行recover操作的CInode集合)、file_recovering(保存正在进行recover操作的CInode集合)。一个Filter类,该类用于执行实际的recover操作。

RecoveryQueue::prioritize()

|__待进行recover的CInode已经在file_recovering集合内

     |__直接返回

|__待进行recover的CInode已经在file_recover_queue集合内

     |__将CInode插入到file_recover_queue_front集合

RecoveryQueue::enqueue()

|__将待进行recover的CInode插入到file_recover_queue集合

RecoveryQueue::advance()

|__检查file_recovering集合的大小是否小雨mds_max_file_recover

     |__从file_recover_queue_front集合获取待recover的CInode

     |__RecoveryQueue::_start()

     |__从file_recover_queue集合获取待recover的CInode

     |__RecoveryQueue::_start()

RecoveryQueue::_start()

|__从CInode上获取projected inode信息

|__将CInode插入到file_recovering集合

|__创建C_MDC_Recover类对象,该类对象在finish()函数中执行RecoveryQueue::_recovered()回调函数

|__Filter::probe()                                   调用Filter的probe()函数执行实际的Recovery操作且执行完成后调用C_MDC_Recover::finish()函数

RecoveryQueue::_recovered()

|__将恢复完的CInode从file_recovering集合中删除

|__CInode::state_clear(STATE_RECOVERING)

|__RecoveryQueue::advance()                    找到下一个待执行recovery的CInode

以上是“RecoveryQueue包含了哪些集合”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


名称栏目:RecoveryQueue包含了哪些集合
文章源于:http://bzwzjz.com/article/goeiei.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都商城网站建设 广安网站设计 网站制作 H5网站制作 成都网站设计 网站建设公司 网站建设推广 移动手机网站制作 成都网站制作 攀枝花网站设计 网站建设方案 成都网站建设 专业网站设计 宜宾网站设计 温江网站设计 成都企业网站建设 网站建设费用 成都网站建设 成都网站设计 网站制作 网站建设公司 成都网站设计