NTFS文件系统的B+树结构与一般的B+树结构的区别是NTFS文件系统的B+树结构是配合磁盘特性的,本来查询树使用多分支在内存里是没有意义的,只会导致读取了更多数据。
一、NTFS文件系统的B+树结构与一般的B+树结构的区别
NTFS文件系统的B+树结构与一般的B+树结构的区别是NTFS文件系统的B+树结构是配合磁盘特性的,本来查询树使用多分支在内存里是没有意义的,只会导致读取了更多数据。但磁盘(或者说机械硬盘)的特性在于,多次随机读取效率远低于连续读取一大段数据,因为每一次都需要经过寻道。这样B树就被设计为用较少的次数读取磁盘,每次读取较大的块,从而优化整体查询。
B+树在NTFS文件系统中的应用
卷(volume)
NTFS的结构首先从卷開始。
卷相应于磁盘上的一个逻辑分区,当你将一个磁盘或者磁盘的一部分格式化成NTFS,卷将被创建起来。
一个磁盘能够有一个卷或好几个卷.NTFS独立的处理每个卷。
卷相应的就是C盘,D盘,E盘等。
簇(cluster)
在一个NTFS卷中,簇的大小,或者说簇因子(cluster factor),是在磁盘管理程序MMC载入件格式化该卷的时候建立起来的。默认的簇因子随着卷大小的不同而不同,但它是物理扇区的整数倍。并且总是2的幂。(1个扇区,2个扇区,4个扇区,8个扇区)以此类推。
簇因子被表示成一个簇中的字节数,比方512字节 1KB或者2KB。
硬盘的读写以扇区为基本单位。NTFS的读写以簇为基本单位。
NTFS在内部仅仅引用到簇一级,NTFS使用簇作为它的分配单位,从而保持它与物理扇区大小之间的独立性。
逻辑簇号(Logical Cluster Number。LCN)
LCN是从一个卷的開始直到结束的全部簇的一个编号。
NTFS依赖于逻辑号(LCN)来引用物理位置。
获取物理磁盘地址方法
LCN乘以簇因子。从而得到卷上的物理字节偏移量。
虚拟簇号(Virtual Cluster Number。VCN)
VCN对同属一个文件的全部簇进行编号,从0到m。NTFS依赖于虚拟簇号(VCN)来引用一个文件内部的数据。
VCN不必是物理上连续的。它们能够被映射到该卷上的不论什么LCN编号。
主文件表(Master File Table)
MFT是NTFS卷结构的核心所在。
涉及到B+树。
延伸阅读:
二、什么是B树
B树是一种数据结构,用于在硬盘或其他非易失性存储介质上快速存储和访问大量数据。它是一种平衡树,其每个节点可以存储多个键值对,而不仅仅是一个。B树通常用于需要频繁读写的数据库或文件系统中,因为它可以减少磁盘的访问次数,从而提高了性能。
B树有以下几个特点:
每个节点可以存储多个键值对。这个数量通常称为节点的度数(degree)。
所有叶节点都在同一层级上。这有助于保持树的平衡,使得在任何一个节点到达叶子节点的路径长度都相同。
节点中的键值对是按照某种顺序排列的。这使得查找操作更加高效。
B树的高度相对于存储的关键字数来说非常小。因此,可以较快地定位到任何一个关键字。