扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共23页)
图 14显示了目录 B+ 树节点的内容:
固定个数的目录槽,个数取决于节点的大小。这些槽用于存储目录槽数组和目录项或路由项。目录槽的大小总是 32 字节。固定大小的目录槽使得 JFS 在删除目录项不必移动,从而还避免了内部碎片。
一个目录 B+ 树的头,描述 B+ 树 inode 。此部分包含一个标志,标记节点是内部节点或是叶节点, 及是不是 B+ 树的根节点。还包含自身的块地址。 nextindex 字段记录目录槽数组中的最后一项。 stblindex 字段记录目录槽数组的开始位置。 freelist 字段指向该节点中空闲槽列表头。
一个目录槽数组,它是正使用的目录槽索引的有序数组。使用该数组减少了目录项增删时所需的移动次数。数组比项本身小很多,所以移动的只是数组而不是整个项。在数组中,可以用二分法搜索某个目录项。
一个目录 B+ 树槽空闲列表,使得内部碎片最小化。目录 B+ 树的头包含列表表头,每个空闲目录槽指向列表中的下一个空闲槽。如果有一系列相连的空闲槽,则在第一个槽中设立一个计数值,说明该系列的长度。这有利于在新建目录 B+ 树节点时,进行快速初始化。
一个目录项,将名字链接到一个 inode 号。目录项包含在叶节点的目录槽中。如果需要存储整个目录名,目录项可以有附加槽。目录项的 next 字段表明该项是否有后继项。大多数目录项只有单个槽。
一个路由项,用于记录目录 B+ 树的搜索路径。路由项包含在内部节点的目录槽中。路由项将按后缀压缩的路由键映射到盘区,此盘区包含下一层目录 B+ 树的内部节点或叶节点。如果路由项需要记录整个的路由键,则可以有附加槽。路由项的 next 字段表示该项是否有后继项。大多数路由项只有单个槽。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。