搜索

pdf文档 CurveFS ChunkID持久化

79.38 KB 3 页 0 下载 73 浏览 0 评论 0 收藏
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档详细介绍了CurveFS ChunkID持久化的过程,包括将原有的chunkid获取方法从space迁入mds,并持久化写入etcd的实现细节。通过构造ChunkIDGenerator类,实现了chunkid的生成和管理,包括初始化、chunkid池的申请与分配逻辑。文档还讨论了在storeKey不存在时从0开始分配可能导致的chunkid覆盖问题,以及chunkID用完时的处理方案。
AI总结
《CurveFS ChunkID持久化》文档总结: 1. 背景 - 将ChunkID分配逻辑从space模块迁移到mds模块,并持久化存储至etcd。 - 实现ChunkID全局递增,仅支持单mds工作模式。 2. 实现方案 - 将AllocateS3Chunk相关.proto文件从space迁移到mds。 - 修改AllocateS3ChunkResponse的状态码类型为FSStatusCode。 - 将AllocateS3Chunk RPC从SpaceAllocService迁移到MdsService。 - 在MdsServiceImp类中新增ChunkIDGenerator类: - 初始化ChunkIdAllocatorImpl的配置,但配置仅在当前ChunkID池耗尽后生效。 - GenChunkID方法实现ChunkID分配: - 检查当前ChunkID池是否枯竭。 - 使用KVStorageClient从etcd申请新的ChunkID Bundle。 - 返回新的ChunkID。 3. 方案细节 - ChunkIDGenerator类包含以下成员变量: - client_: etcd客户端 - chunkIdStoreKey: 存储ChunkID的etcd键 - nextId: 下一个可分配的ChunkID - lastId: 当前ChunkID Bundle中的最后一个ID - bundleSize: ChunkID池的大小 4. 问题与风险 - 风险1:当storeKey不存在时,从0开始分配ChunkID,可能导致ID冲突。 - 风险2:未充分考虑ChunkID用完的情况。
P1
P2
P3
下载文档到本地,方便使用
文档评分
请文明评论,理性发言.