 curvefs client删除文件和目录功能设计© XXX Page 1 of 15 curvefs client 删除文件和目录功能设计© XXX Page 2 of 15 背景 相关调研 moosefs chubaofs 方案设计思考 1.Trash机制是实现1个(类似chubaofs),还是2个(类似moosefs)? 2. Trash放在哪里? 3. 是否需要做session机制(在metaserver打开),来维护inode的打开情况? 方案设计 Trash机制: Session机制: 遗留问题 工作量评估 背景 目前curvefs client版本对删除unlink和rmdir的设计只有简单的删除inode和dentry结构,遗留了nlink和lookup count相关的内容还未实现,是不完备的。本文首先调研moosefs,chubaofs等分布式系统,参考并设计解决上述遗留问题。 当前删除接口代码如下:© XXX 正的执行删除inode。 目录的nlink字段与文件的nlink字段不同, , 并且在目录下, , 删除目录nlink相应的减1。 目录的nlink字段初始值为2 每创建一个新目录,nlink字段也会+1 目录不支持硬链接。 二是删除时lookup count未考虑: lookup count 指的是文件的访问计数。当文件/目录被打开时, ,该文件/目录仍然可以被打开的进程访问,不会0 码力 | 15 页 | 325.42 KB | 6 月前3 curvefs client删除文件和目录功能设计© XXX Page 1 of 15 curvefs client 删除文件和目录功能设计© XXX Page 2 of 15 背景 相关调研 moosefs chubaofs 方案设计思考 1.Trash机制是实现1个(类似chubaofs),还是2个(类似moosefs)? 2. Trash放在哪里? 3. 是否需要做session机制(在metaserver打开),来维护inode的打开情况? 方案设计 Trash机制: Session机制: 遗留问题 工作量评估 背景 目前curvefs client版本对删除unlink和rmdir的设计只有简单的删除inode和dentry结构,遗留了nlink和lookup count相关的内容还未实现,是不完备的。本文首先调研moosefs,chubaofs等分布式系统,参考并设计解决上述遗留问题。 当前删除接口代码如下:© XXX 正的执行删除inode。 目录的nlink字段与文件的nlink字段不同, , 并且在目录下, , 删除目录nlink相应的减1。 目录的nlink字段初始值为2 每创建一个新目录,nlink字段也会+1 目录不支持硬链接。 二是删除时lookup count未考虑: lookup count 指的是文件的访问计数。当文件/目录被打开时, ,该文件/目录仍然可以被打开的进程访问,不会0 码力 | 15 页 | 325.42 KB | 6 月前3
 Rust 程序设计语言 简体中文版 1.85.0Rust 程序设计语言 简体中文版Rust 程序设计语言 简体中文版 目录 Rust 程序设计语言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5. 使用结构体组织相关联的数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.1. 结构体的定义和实例化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.2. 结构体示例程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 26 天前3 Rust 程序设计语言 简体中文版 1.85.0Rust 程序设计语言 简体中文版Rust 程序设计语言 简体中文版 目录 Rust 程序设计语言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5. 使用结构体组织相关联的数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.1. 结构体的定义和实例化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.2. 结构体示例程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 26 天前3
 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 5.6 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 8.15.1 异常 . . . . . . . . . . 原地运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 11 文件和目录访问 399 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 5.6 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 8.15.1 异常 . . . . . . . . . . 原地运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 11 文件和目录访问 399 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3
 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.6 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6 文本处理服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 8.15.1 异常 . . . . . . . . . . . . 原地运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 11 文件和目录访问 373 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3730 码力 | 2072 页 | 10.39 MB | 9 月前3 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.6 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6 文本处理服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 8.15.1 异常 . . . . . . . . . . . . 原地运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 11 文件和目录访问 373 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3730 码力 | 2072 页 | 10.39 MB | 9 月前3
 Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.4 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6 文本处理服务 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 11 文件和目录访问 367 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 11.5 filecmp --- 文件及目录的比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 11.6 tempfile --- 生成临时文件和目录 . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2052 页 | 9.74 MB | 9 月前3 Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.4 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6 文本处理服务 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 11 文件和目录访问 367 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 11.5 filecmp --- 文件及目录的比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 11.6 tempfile --- 生成临时文件和目录 . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2052 页 | 9.74 MB | 9 月前3
 Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.4 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6 文本处理服务 3 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 11 文件和目录访问 343 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 . . . . . . . . . . . 365 11.5 filecmp --- 文件及目录的比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 11.6 tempfile --- 生成临时文件和目录 . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 1927 页 | 9.69 MB | 9 月前3 Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.4 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6 文本处理服务 3 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 11 文件和目录访问 343 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 . . . . . . . . . . . 365 11.5 filecmp --- 文件及目录的比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 11.6 tempfile --- 生成临时文件和目录 . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 1927 页 | 9.69 MB | 9 月前3
 Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.4 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6 文本处理服务 3 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 11 文件和目录访问 343 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 . . . . . . . . . . . 365 11.5 filecmp --- 文件及目录的比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 11.6 tempfile --- 生成临时文件和目录 . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 1927 页 | 9.69 MB | 9 月前3 Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.4 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6 文本处理服务 3 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 11 文件和目录访问 343 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 . . . . . . . . . . . 365 11.5 filecmp --- 文件及目录的比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 11.6 tempfile --- 生成临时文件和目录 . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 1927 页 | 9.69 MB | 9 月前3
 CurveFS方案设计2021-04-13 李小翠、陈威 补充元数据数据结构 2021-04-19 李小翠、吴汉卿、许超杰等 补充文件空间分配,讨论与确认 背景 调研 开源fs 性能对比 可行性分析 方案对比 对比结论 架构设计 卷和文件系统 元数据架构 文件系统快照 方案一:文件/目录级别快照 方案二:文件系统快照 关键点 元数据设计 数据结构 索引设计 文件空间管理 开发计划及安排 背景 块存储,向上提供块设备服务,CurveFS会基于此实现。第一阶段的目标是实现 满足数据库场景的文件接口。 调研 开源fs 当前对已有的开源分布式文件系统进行了调研,主要包括系统架构,元数据内存结构,元数据持久化,调研文档如下: chubaofs: ChubaoFS© XXX Page 3 of 14 1. 2. 3. moosefs: https://kms.netease 能? 可行性分析 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: CurveFS kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用来有目录层级的 namespace 方式,namespace 已经实现了 fs 元数据管理的雏形,具备了基本的元数据管理功能。(当时为什么要设计为 namespace 的管理形式?留有租户这个概念),直接基于0 码力 | 14 页 | 619.32 KB | 6 月前3 CurveFS方案设计2021-04-13 李小翠、陈威 补充元数据数据结构 2021-04-19 李小翠、吴汉卿、许超杰等 补充文件空间分配,讨论与确认 背景 调研 开源fs 性能对比 可行性分析 方案对比 对比结论 架构设计 卷和文件系统 元数据架构 文件系统快照 方案一:文件/目录级别快照 方案二:文件系统快照 关键点 元数据设计 数据结构 索引设计 文件空间管理 开发计划及安排 背景 块存储,向上提供块设备服务,CurveFS会基于此实现。第一阶段的目标是实现 满足数据库场景的文件接口。 调研 开源fs 当前对已有的开源分布式文件系统进行了调研,主要包括系统架构,元数据内存结构,元数据持久化,调研文档如下: chubaofs: ChubaoFS© XXX Page 3 of 14 1. 2. 3. moosefs: https://kms.netease 能? 可行性分析 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: CurveFS kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用来有目录层级的 namespace 方式,namespace 已经实现了 fs 元数据管理的雏形,具备了基本的元数据管理功能。(当时为什么要设计为 namespace 的管理形式?留有租户这个概念),直接基于0 码力 | 14 页 | 619.32 KB | 6 月前3
 Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 5.6 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 8.15.1 异常 . . . . . . . . . . 原地运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 11 文件和目录访问 387 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2146 页 | 10.17 MB | 9 月前3 Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 5.6 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 8.15.1 异常 . . . . . . . . . . 原地运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 11 文件和目录访问 387 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2146 页 | 10.17 MB | 9 月前3
 Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.6 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6 文本处理服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 8.15.1 异常 . . . . . . . . . . . . 原地运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 11 文件和目录访问 363 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3630 码力 | 2015 页 | 10.12 MB | 9 月前3 Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.6 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6 文本处理服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 8.15.1 异常 . . . . . . . . . . . . 原地运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 11 文件和目录访问 363 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3630 码力 | 2015 页 | 10.12 MB | 9 月前3
共 131 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14














