<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>file node &#8211; Database Research &amp; Development</title>
	<atom:link href="https://www.dbrnd.com/tag/file-node/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dbrnd.com</link>
	<description>BIGData &#124; NoSQL &#124; MSSQL &#124; MySQL &#124; PostgreSQL</description>
	<lastBuildDate>Wed, 08 Feb 2017 02:48:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>
	<item>
		<title>PostgreSQL: What is a Free Space Map (FSM)?</title>
		<link>https://www.dbrnd.com/2016/10/postgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture/</link>
					<comments>https://www.dbrnd.com/2016/10/postgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture/#comments</comments>
		
		<dc:creator><![CDATA[Anvesh Patel]]></dc:creator>
		<pubDate>Sat, 08 Oct 2016 16:16:11 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Anvesh Patel]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[database research and development]]></category>
		<category><![CDATA[dbrnd]]></category>
		<category><![CDATA[file node]]></category>
		<category><![CDATA[Free Space Map]]></category>
		<category><![CDATA[FSM]]></category>
		<category><![CDATA[MVCC]]></category>
		<category><![CDATA[pg_freespace]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[Postgres Query]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[PostgreSQL Administrator]]></category>
		<category><![CDATA[PostgreSQL Error]]></category>
		<category><![CDATA[PostgreSQL Programming]]></category>
		<category><![CDATA[PostgreSQL Tips and Tricks]]></category>
		<category><![CDATA[VACUUM]]></category>
		<guid isPermaLink="false">https://www.dbrnd.com/?p=3654</guid>

					<description><![CDATA[In this post, sharing a small note on one of the internal architecture things of PostgreSQL. Each Table and Index has an FSM which used to keep track of available space in the relation. It stores all free space related information in an alongside primary relation and that relation starts with the file node number [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fpostgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture%2F&amp;linkname=PostgreSQL%3A%20What%20is%20a%20Free%20Space%20Map%20%28FSM%29%3F" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fpostgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture%2F&amp;linkname=PostgreSQL%3A%20What%20is%20a%20Free%20Space%20Map%20%28FSM%29%3F" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fpostgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture%2F&amp;linkname=PostgreSQL%3A%20What%20is%20a%20Free%20Space%20Map%20%28FSM%29%3F" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fpostgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture%2F&amp;linkname=PostgreSQL%3A%20What%20is%20a%20Free%20Space%20Map%20%28FSM%29%3F" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fpostgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture%2F&amp;linkname=PostgreSQL%3A%20What%20is%20a%20Free%20Space%20Map%20%28FSM%29%3F" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fpostgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture%2F&amp;linkname=PostgreSQL%3A%20What%20is%20a%20Free%20Space%20Map%20%28FSM%29%3F" title="Pocket" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fpostgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture%2F&#038;title=PostgreSQL%3A%20What%20is%20a%20Free%20Space%20Map%20%28FSM%29%3F" data-a2a-url="https://www.dbrnd.com/2016/10/postgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture/" data-a2a-title="PostgreSQL: What is a Free Space Map (FSM)?"></a></p><p>In this post, sharing a small note on one of the internal architecture things of PostgreSQL. </p>
<blockquote><p>Each Table and Index has an FSM which used to keep track of available space in the relation.</p></blockquote>
<blockquote><p>It stores all free space related information in an alongside primary relation and that relation starts with the file node number plus the suffix _fsm.</p></blockquote>
<p>If you do not know about the MVCC (Multiversion Concurrency Control), please visit below an article. </p>
<blockquote data-secret="Gt0wV2TH0i" class="wp-embedded-content"><p><a href="https://www.dbrnd.com/2015/05/what-is-mvcc-multi-version-concurrency-control/">What is Multi Version Concurrency Control (MVCC)</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  src="https://www.dbrnd.com/2015/05/what-is-mvcc-multi-version-concurrency-control/embed/#?secret=Gt0wV2TH0i" data-secret="Gt0wV2TH0i" width="600" height="338" title="&#8220;What is Multi Version Concurrency Control (MVCC)&#8221; &#8212; Database Research &amp; Development" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p>Because of MVCC architecture, PostgreSQL generates dead tuples on each update and delete action.</p>
<blockquote><p>Why VACUUM requires in MVCC because VACUUM removes dead row versions in tables and marks the space available for future reuse.</p></blockquote>
<blockquote><p>The VACUUM process also updates the Free Space Map and using VACUUM FULL we can recover those free spaces.</p></blockquote>
<blockquote><p>The FSM pages are organized as a tree.<br />
The bottom level FSM pages store the free space available on each page, using one byte to represent each such page.<br />
The upper levels aggregate information from the lower levels.</p></blockquote>
<p><strong>We can also examine free space pages using pg_freespace module. </strong></p>
<pre class="crayon-plain-tag">CREATE EXTENSION pg_freespace;
SELECT * FROM pg_freespace('table_name');</pre> </p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbrnd.com/2016/10/postgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
