kfs代码研究(四、LayoutManager分析)
来源:互联网 发布:淘宝怎么投诉假货 编辑:程序博客网 时间:2024/05/18 17:44
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
- kfs代码研究(四、LayoutManager分析)
- kfs代码研究(四、LayoutManager分析)
- kfs代码研究(六、ChunkManager分析)
- kfs代码研究(六、ChunkManager分析)
- kfs代码研究(七、网络部分)
- kfs代码研究(磁盘异步IO)
- kfs代码研究(写操作流程图)
- kfs代码研究(七、网络部分)
- kfs代码研究(磁盘异步IO)
- kfs代码研究(二、meta server处理流程)
- kfs代码研究(三、meta server具体消息处理)
- kfs代码研究(五、chunk server处理流程)
- kfs代码研究(二、meta server处理流程)
- kfs代码研究(三、meta server具体消息处理)
- kfs代码研究(五、chunk server处理流程)
- kfs代码研究(一、kfs代码目录结构)
- kfs代码研究(一、kfs代码目录结构)
- 分布式文件系统KFS源码阅读与分析(四):RPC实现机制(KfsClient端)
- linux shell数据重定向(输入重定向与输出重定向)详细分析
- kfs代码研究(一、kfs代码目录结构)
- kfs代码研究(二、meta server处理流程)
- kfs代码研究(三、meta server具体消息处理)
- c语言 findstring 字符串匹配
- kfs代码研究(四、LayoutManager分析)
- Windows线程同步与互斥技术总结
- scanner学习
- 自己的espeak测试
- mysql必知必会(三)mysqldump
- 分析 webkit 的Timer类
- Java的一些基本特性
- 生成树协议(Spanning Tree Protocol,STP)
- 一个很难的字符串问题