kfs代码研究(四、LayoutManager分析)

 LayoutManager.cc:
介绍几个主要的函数
LayoutManager::AddNewServer:
添加新chunk server到chunk server的数组中
1、如果发现chunkserver数组中和新加入到server相同,调用ServerDown把老的标志为
down
2、ServerDown会更新rank数组的信息
3、接着吧chunk server信息放到mChunkServers数组中
4、接下来遍历要加入的这个chunk server中的所有chunk,如果不在mChunkToServerMap
中,则标志为失效的chunk,并做统计。
   如果在mChunkToServerMap中,但是mChunkToServerMap中的chunk信息已经有了该
server,则chunk中的server信息可能失效。
   如果chunk的版本号小于mChunkToServerMap中的chunk的版本号,这标志chunk
信息为失效。
5、添加有效块集合和无效块集合
6、通知chunk server chunk版本号变化
LayoutManager::AllocateChunk:
分配策略:假如有n个机架,m个server,chunk冗余数位k,则随机选择n个server
,再找出这个n个server对应的机架,再找出这些机架中所有的server,然后选择k个
server。
LayoutManager::AllocateChunkForAppend:
1、找到最后分配给文件的chunk,如果请求的偏移量必须小于最后分配的chunk的偏移量
2、把分配chunk的请求发送到chunk server
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值