Curve文件系统空间分配方案Curve文件系统空间分配方案(基于块的方案,已实现) - 背景 - 本地文件系统空间分配相关特性 - 局部性 - 延迟分配/Allocate-on-flush - Inline file/data - 空间分配 - 整体设计 - 空间分配流程 - 特殊情况 - 空间回收 - 小文件处理 - 并发问题 - 文件系统扩容 - 接口设计 接口设计 - RPC接口 - 空间分配器接口 ## 背景 根据CurveFS方案设计(总体设计,只实现了部分),文件系统基于当前的块进行实现,所以需要设计基于块的空间分配器,用于分配并存储文件数据。 ## 本地文件系统空间分配相关特性 局部性 尽量分配连续的磁盘空间,存储文件的数据。这一特性主要是针对HDD进行的优化,降低磁盘寻道时间。 延迟分配/Allocate-on-flush 在sync/flush之前,尽可能多的积累更多的文件数据块才进行空间分配,一方面可以提高局部性,另一方面可以降低磁盘碎片。 Inline file/data 几百字节的小文件不单独分配磁盘空间,直接把数据存放到文件的元数据中。 针对上述的本地文件系统特性,Curve文件系统分配需要着重考虑局部性。 虽然Curve是一个分布式文件系统,但是单个文件系统的容量可能会比较大,如果在空间分配时,不考虑局部性,inode中记录0 码力 | 11 页 | 159.17 KB | 1 年前3
古月《ROS入门21讲》9.创建工作空间与功能包.pdf### 9. 创建工作空间与功能包 主讲人:古月 ## • 工作空间 工作空间(workspace)是一个存放工程开发相关文件的文件夹。 src: 代码空间(Source Space) build: 编译空间(Build Space) • devel: 开发空间(Development Space) • install: 安装空间(Install Space) workspace_folder/ bash setup.bash setup.sh ... catkin编译系统下的工作空间结构 ## • 创建工作空间 $ mkdir -p ~/catkin_ws/src ## 创建工作空间 $ cd ~/catkin_ws/src $ catkin_init_workspace ## 编译工作空间 $ cd ~/catkin_ws/ $ catkin_make ## 设置环境变量 roscpp ## 编译功能包 $ cd ~/catkin_ws $ catkin_make $ source ~/catkin_ws/devel/setup.bash 同一个工作空间下,不允许存在同名功能包 不同工作空间下,允许存在同名功能包 ## • 创建功能包 












