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、更新剩余空间信息。
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、更新剩余空间信息。
相关文章推荐
- kfs代码研究(六、ChunkManager分析)
- kfs代码研究(四、LayoutManager分析)
- kfs代码研究(四、LayoutManager分析)
- Gallery4.2 代码研究(一):Gallery2结构分析
- 开源代码分析研究 之 Terminals
- thift源码研究-客户端代码分析
- Scrapy研究探索(三)——Scrapy核心架构与代码运行分析
- HEVC码率控制算法研究与HM相应代码分析(一)——HEVC标准及编码流程介绍
- ecshop二次开发 结构分析和代码研究
- H.264码率控制算法研究及JM相应代码分析(二)
- kfs代码研究(一、kfs代码目录结构)
- 开源代码分析研究 之 BugNet 第一章BugNet 简介
- caffe源码分析--Blob类代码研究
- kfs代码研究(三、meta server具体消息处理)
- kfs代码研究(五、chunk server处理流程)
- kfs代码研究(二、meta server处理流程)
- kfs代码研究(七、网络部分)
- ecshop二次开发 结构分析和代码研究 呵呵
- caffe源代码分析--math_functions.cu代码研究
- kfs代码研究(磁盘异步IO)