您的位置:首页 > 编程语言

kfs代码研究(六、ChunkManager分析)

2012-02-21 00:13 295 查看
ChunkManager.cc:

ChunkManager主要是对chunk操作的具体实现。

ChunkManager::WriteChunk:

1、计算要写的数据长度+chunk已经使用的量是否超过了一个chunk的大小,如果超过则截断

2、如果要写入的长度大于64k,则写入的长度必须有64k的整数倍

3、如果写入长度小于64k,则读取从当前偏移量开始64k的数据,计算校验和。(这个逻辑有点怪,没搞明白)

4、写入文件

ChunkManager::ReadChunk:

1、读取没有什么复杂的逻辑,只是对读取的偏移量offset和数据量numbytes按64k做圆整

2、读取chunk文件

ChunkManager::AllocChunk:

1、根据chunkid到mChunkTable查找chunk,如果存在则修改chunk版本号。

2、如果不存在,则分配ChunkInfoHandle对象插入到mChunkTable。

ChunkManager::DeleteChunk:

1、在mChunkTable中查找chunk信息。

2、在mChunkTable中删除chunk信息。

3、更新剩余空间信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: