TpsFS 文件系统

更新时间:
2024-05-13
下载文档

TpsFS 文件系统

TpsFS(True Power Safe FS)文件系统是一款掉电安全的文件系统,该文件系统是 SylixOS 内建文件系统(专利技术),如下图所示是 TpsFS 的文件系统结构图。TpsFS 是基于事务的 B+树文件系统:对元数据的修改使用事务提交的机制,保证了文件系统的一致性;使用 B+树管理磁盘空间和文件空间,B+树中以不同的键值记录起始块和块数量;使用文件起始块号表示 inode 号,使用空间管理 B+树实现 inode 管理。基于以上原理使得 TpsFS 文件系统具有以下特点:

  • 采用 B+树存储文件数据、读写与定位速度快、空间管理效率高。
  • 对元数据使用原子操作,掉电安全。
  • 64 位文件系统,支持 EP 级别文件长度。
  • 大文件处理性能好。
  • 支持文件记录锁,可支持大型数据库。
  • 支持多块分配机制,这种机制提高了系统性能,而且使得分配器有充足的优化空间。
  • 支持子目录可扩展性,这使得在一个目录下可以创建无限多个子目录。

超级块是 TpsFS 的第一个块,其中记录了文件系统的基本信息,如:块大小、块数量、数据块位置、log 块位置等。TpsFS 中每一个数据块都被记录在一个以 inode 块为根的 B+树中,结构如下图所示。

超级块后是空间管理 inode 块,inode 对应的 B+树管理整个磁盘的空闲块,可以理解为将所有空闲块记录到空间管理 inode 形成一个大文件。与普通文件不同的是,空间管理 inode B+树节点的 key 值为磁盘块区间的物理块号,而普通文件 inode B+树节点的 key 值为该块区间在文件中的偏移。

由下图可以看出,每个 B+树节点包含若干子项,子项的值根据节点类型决定,如果是叶子节点则包含 key、起始块和块数量用于记录一个物理块区间,如果是非叶子节点则记录 key 和子节点对应块号。

文档内容是否对您有所帮助?
有帮助
没帮助