{"kind": "storage", "major": "18", "item": {"slug": "storage-fsm", "name": "Free Space Map", "name_zh": "", "category": "Physical structures", "summary": "Each heap and index relation, except for hash indexes, has a Free Space Map ( FSM ) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file.", "aliases": [], "content_hash": "42ef3c4a3ac97a9c70027c04352e6eb5bb77dac0dbb131f198931b418dc4e1f5", "versions": {"10": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/relopts/?v=10", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "stable", "revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "sources": [{"url": "/docs/10/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 10 English manual", "sha256": "c47330984e8e41f05d85f6e9c8fba1fb95c00e801bfa290bf06bcb0e0bc1f3d3"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">67.3.\u00a0Free Space Map</h2>\n</div>\n</div>\n</div>\n\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/10/pgfreespacemap.html\" title=\"F.27.\u00a0pg_freespacemap\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/10/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "11": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/relopts/?v=11", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "stable", "revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "sources": [{"url": "/docs/11/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 11 English manual", "sha256": "92f3e4063097c9d091bdd6a1b160d719b5acbfb152771c7dc303bd746e2f0c15"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">69.3.\u00a0Free Space Map</h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/11/pgfreespacemap.html\" title=\"F.26.\u00a0pg_freespacemap\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/11/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "12": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/tableam/?v=12", "label": "Table AM"}, {"url": "/wiki/relopts/?v=12", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "stable", "revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "sources": [{"url": "/docs/12/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 12 English manual", "sha256": "f809653b3ce0aed66216370bfe80e4a0bd86fa70d4660ed155535280bc43ff8a"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">69.3.\u00a0Free Space Map</h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/12/pgfreespacemap.html\" title=\"F.26.\u00a0pg_freespacemap\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/12/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "13": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/tableam/?v=13", "label": "Table AM"}, {"url": "/wiki/relopts/?v=13", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "stable", "revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "sources": [{"url": "/docs/13/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 13 English manual", "sha256": "7b049563072d2304ae5847e5a98b985bf20cbee2559d1d4955fe292b3c623075"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">69.3.\u00a0Free Space Map</h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/13/pgfreespacemap.html\" title=\"F.26.\u00a0pg_freespacemap\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/13/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "14": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/tableam/?v=14", "label": "Table AM"}, {"url": "/wiki/relopts/?v=14", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "sources": [{"url": "/docs/14/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 14 English manual", "sha256": "387b5cb653e383153c5bf043cebcbc04fc3bf3715b09e64b6e438b44a8f9402b"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">70.3.\u00a0Free Space Map</h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/14/pgfreespacemap.html\" title=\"F.27.\u00a0pg_freespacemap\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/14/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "15": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/tableam/?v=15", "label": "Table AM"}, {"url": "/wiki/relopts/?v=15", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "sources": [{"url": "/docs/15/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 15 English manual", "sha256": "c4d1543b62f14e8a438ed8d32388fa1c333e219c785d2f9e25f37bbaa36d36ac"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map ( FSM ) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">73.3.\u00a0Free Space Map</h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/15/pgfreespacemap.html\" title=\"F.29.\u00a0pg_freespacemap\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/15/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "16": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/tableam/?v=16", "label": "Table AM"}, {"url": "/wiki/relopts/?v=16", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "sources": [{"url": "/docs/16/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 16 English manual", "sha256": "c04ca2f6859002391a04b2ba17004f9166b99b1a785fd6e0826892b143baa9c4"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map ( FSM ) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">73.3.\u00a0Free Space Map </h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/16/pgfreespacemap.html\" title=\"F.29.\u00a0pg_freespacemap \u2014 examine the free space map\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/16/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "17": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/tableam/?v=17", "label": "Table AM"}, {"url": "/wiki/relopts/?v=17", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "sources": [{"url": "/docs/17/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 17 English manual", "sha256": "e30551404e71e74f00120b72d83d1aff589ef9985f44d2c596d4a734581b3514"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map ( FSM ) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">65.3.\u00a0Free Space Map </h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/17/pgfreespacemap.html\" title=\"F.27.\u00a0pg_freespacemap \u2014 examine the free space map\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/17/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "18": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/tableam/?v=18", "label": "Table AM"}, {"url": "/wiki/relopts/?v=18", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "/docs/18/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 18 English manual", "sha256": "34a44d3fed151d4552d4e195e24cd7057beae246905423bfd396f875f9f86388"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map ( FSM ) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">66.3.\u00a0Free Space Map </h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/18/pgfreespacemap.html\" title=\"F.27.\u00a0pg_freespacemap \u2014 examine the free space map\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/18/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "19": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/tableam/?v=19", "label": "Table AM"}, {"url": "/wiki/relopts/?v=19", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "19beta4", "major": "19", "channel": "preview", "revision": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, "sources": [{"url": "/docs/19/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 19 English manual", "sha256": "77a62270fc868216010cff8f880fe72b74ddf202328bbf3aecb35ad4ac70b6ba"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map ( FSM ) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">66.3.\u00a0Free Space Map </h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/19/pgfreespacemap.html\" title=\"F.27.\u00a0pg_freespacemap \u2014 examine the free space map\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/19/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "20": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/tableam/?v=20", "label": "Table AM"}, {"url": "/wiki/relopts/?v=20", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "revision": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}, "sources": [{"url": "/docs/devel/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 20 English manual", "sha256": "a461b588eb0ab902ce2e7d084be89ad87cb5f83a97a8014bf6c9db148e9567c0"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map ( FSM ) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">66.3.\u00a0Free Space Map </h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/devel/pgfreespacemap.html\" title=\"F.27.\u00a0pg_freespacemap \u2014 examine the free space map\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/devel/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}}}, "snapshot": {"facts": [{"label": "Definition scope", "value": "Same-version core physical storage documentation"}], "tables": [], "related": [{"url": "/wiki/tableam/?v=18", "label": "Table AM"}, {"url": "/wiki/relopts/?v=18", "label": "Storage Parameters"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "/docs/18/storage-fsm.html", "path": "storage-fsm.html", "label": "PostgreSQL 18 English manual", "sha256": "34a44d3fed151d4552d4e195e24cd7057beae246905423bfd396f875f9f86388"}], "sections": [], "signature": "", "description": ["Each heap and index relation, except for hash indexes, has a Free Space Map ( FSM ) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called 12345_fsm , in the same directory as the main relation file."], "manual_html": "<div class=\"sect1\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">66.3.\u00a0Free Space Map </h2>\n</div>\n</div>\n</div>\n<p>Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a <code class=\"literal\">_fsm</code> suffix. For example, if the filenode of a relation is 12345, the FSM is stored in a file called <code class=\"filename\">12345_fsm</code>, in the same directory as the main relation file.</p>\n<p>The Free Space Map is organized as a tree of FSM pages. The bottom level FSM pages store the free space available on each heap (or index) page, using one byte to represent each such page. The upper levels aggregate information from the lower levels.</p>\n<p>Within each FSM page is a binary tree, stored in an array with one byte per node. Each leaf node represents a heap page, or a lower level FSM page. In each non-leaf node, the higher of its children's values is stored. The maximum value in the leaf nodes is therefore stored at the root.</p>\n<p>See <code class=\"filename\">src/backend/storage/freespace/README</code> for more details on how the FSM is structured, and how it's updated and searched. The <a class=\"xref\" href=\"/docs/18/pgfreespacemap.html\" title=\"F.27.\u00a0pg_freespacemap \u2014 examine the free space map\">pg_freespacemap</a> module can be used to examine the information stored in free space maps.</p>\n</div>", "manual_path": "/docs/18/storage-fsm.html", "comparison_data": {"layouts": []}, "comparison_hash": "27341929154bfb55531f03501322b65af719c5561f3c4ddc9528a14aa4df69b5"}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}