9.3 9.4 9.5 9.6 10 11 12 13 14 15
阿里云PostgreSQL 问题报告 纠错本页面

73.3. 空闲空间映射

每个堆和索引关系,除了哈希索引外,都有一个空闲空间映射(FSM)来跟踪关系中的可用空间。 它存储在与主关系数据相邻的一个单独的关系分支中,命名为关系的文件节点号,再加上一个_fsm后缀。 例如,如果一个关系的文件节点号是12345,FSM存储在一个名为12345_fsm的文件中, 与主关系文件在同一个目录中。

空闲空间映射被组织成一棵FSM页面的树。底层FSM页面存储了在每一个堆(或索引)页面中可用的空闲空间,对于每一个这样的页面使用一个字节来表示。上层FSM页面则聚集来自于下层页面的信息。

在每一个FSM页面中是一个二叉树,存储在一个数组中,每一个节点一个字节。每个叶节点表示一个堆页面或者一个下层FSM页面。在每一个非叶节点中存储了它孩子节点中的最大值。因此叶节点中的最大值被存储在根中。

关于如何构建、更新和搜索FSM的更多信息请参考src/backend/storage/freespace/READMEpg_freespacemap模块可以用来检查存储在空闲空间映射中的信息。