68.3. 自由空间 Map

除哈希索引外,每个堆和索引关系都有一个可用空间 Map(FSM),以跟踪关系中的可用空间。它与主要关系数据一起存储在单独的关系分支中,以关系的文件节点号加上_fsm后缀命名。例如,如果关系的文件节点为 12345,则 FSM 存储在名为12345_fsm的文件中,该文件与主关系文件位于同一目录中。

“自由空间 Map”被组织为 FSM 页面的树。底层 FSM 页存储每个堆(或索引)页上的可用空间,使用一个字节表示每个此类页。上层汇总来自下层的信息。

在每个 FSM 页中都有一个二叉树,它存储在一个数组中,每个节点一个字节。每个叶节点代表一个堆页面或一个较低级别的 FSM 页面。在每个非叶节点中,将存储其较高的子级值。因此,叶节点中的最大值存储在根中。

有关 FSM 的结构以及更新和搜索的方式的更多详细信息,请参见src/backend/storage/freespace/READMEpg_freespacemap模块可用于检查存储在自由空间 Map 中的信息。