空き領域マップ

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 第 55章データベースの物理的な格納 | 早送り | 次のページ

# 55.3. 空き領域マップ

ヒープとハッシュインデックス以外のインデックスリレーションはそれぞれ、そのリレーション内で利用可能な領域を継続して追跡するために、空き領域マップ（FSM）を持ちます。 これは、個々のリレーションのフォーク内の主リレーションデータに沿って、リレーションのファイルノード番号に`_fsm`という接尾辞を付けた名前のファイルに格納されます。 例えばリレーションのファイルノードが12345であれば、FSMは主リレーションファイルと同じディレクトリ内の`12345_fsm`という名前のファイルに格納されます。

空き領域マップはFSMページのツリーとして編成されます。 最下位レベルのFSMページはすべてのヒープ（またはインデックス）ページで利用可能な空き領域を、各ページ毎に1バイト使用して格納します。 上位レベルは下位レベルからの情報を集約します。

各FSMページの内部はノード当たり1バイトを持つ配列内に格納されたバイナリツリーです。 各リーフノードはヒープページ、または下位レベルのFSMページを表現します。 各非リーフノード内には、子の値より大きな値が格納されます。 したがってリーフノード内の最大値がルートに格納されます。

FSMがどのように構築されるか、そしてどのように更新、検索されるかに関する詳細は`src/backend/storage/freespace/README`を参照してください。 pg_freespacemapモジュールを使用して、空き領域マップに格納された情報を調べることができます。

前のページ | ホーム | 次のページ
TOAST | 上に戻る | 可視性マップ