?
? ????? PHP ??? ???? ??? ?? ??
每個堆和索引關(guān)系,除了哈希索引,有個自由空間映射FSM) 來保持跟蹤關(guān)系中可用的空間。將同時在獨立的關(guān)系叉文件存儲主關(guān)系數(shù)據(jù), 以關(guān)系的filenode 編號命名,加上一個_fsm后綴。例如,如果一個關(guān)系的filenode 是12345,存儲 FSM 在一個叫 12345_fsm的文件里, 在與主關(guān)系文件在相同目錄里。
自由空間映射組織為一個FSM頁樹。FSM頁底層存儲每個堆(或索引)頁上可用的自由空間, 使用一個字節(jié)來代表每一個如頁。高級別的從低級別聚合信息。
每個FSM頁是一個二叉樹,存儲在一個數(shù)組,每個節(jié)點一個字節(jié)。每個葉節(jié)點代表一個堆頁,或低級別的FSM頁。 在每個非葉節(jié)點,存儲其子節(jié)點值的高級別的值。因此在根節(jié)點存儲葉節(jié)點的最大值。
參閱src/backend/storage/freespace/README關(guān)于更詳細的FSM是怎樣的結(jié)構(gòu),怎樣更新和搜索它。 contrib/pg_freespacemap可以用來審查存儲在自由空間映射的信息(參閱Section F.26)。