<?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>Free Space Map &#8211; Database Research &amp; Development</title>
	<atom:link href="https://www.dbrnd.com/tag/free-space-map/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>Sat, 01 Apr 2017 14:44:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.6</generator>
	<item>
		<title>PostgreSQL 9.6: Introduced pg_visibility module to examine visibility map</title>
		<link>https://www.dbrnd.com/2017/04/postgresql-9-6-introduced-pg_visibility-module-to-examine-visibility-map/</link>
		
		<dc:creator><![CDATA[Anvesh Patel]]></dc:creator>
		<pubDate>Tue, 11 Apr 2017 16:16:34 +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[extension]]></category>
		<category><![CDATA[Free Space Map]]></category>
		<category><![CDATA[generate_series]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[pg_visibility]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[Postgres Query]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[PostgreSQL 9.6]]></category>
		<category><![CDATA[PostgreSQL Administrator]]></category>
		<category><![CDATA[PostgreSQL Error]]></category>
		<category><![CDATA[PostgreSQL Monitoring]]></category>
		<category><![CDATA[PostgreSQL Performance Tuning]]></category>
		<category><![CDATA[PostgreSQL Programming]]></category>
		<category><![CDATA[PostgreSQL Tips and Tricks]]></category>
		<category><![CDATA[visibility map]]></category>
		<guid isPermaLink="false">https://www.dbrnd.com/?p=5016</guid>

					<description><![CDATA[If you don&#8217;t know what VM and FSM is, I would suggest to read below articles: PostgreSQL: What is Visibility Map (VM)? PostgreSQL: What is a Free Space Map (FSM)? PostgreSQL 9.6 introduced a pg_visibility module to get the visibility map information of your table, and it is also giving page level information. For removing [&#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%2F2017%2F04%2Fpostgresql-9-6-introduced-pg_visibility-module-to-examine-visibility-map%2F&amp;linkname=PostgreSQL%209.6%3A%20Introduced%20pg_visibility%20module%20to%20examine%20visibility%20map" 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%2F2017%2F04%2Fpostgresql-9-6-introduced-pg_visibility-module-to-examine-visibility-map%2F&amp;linkname=PostgreSQL%209.6%3A%20Introduced%20pg_visibility%20module%20to%20examine%20visibility%20map" 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%2F2017%2F04%2Fpostgresql-9-6-introduced-pg_visibility-module-to-examine-visibility-map%2F&amp;linkname=PostgreSQL%209.6%3A%20Introduced%20pg_visibility%20module%20to%20examine%20visibility%20map" 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%2F2017%2F04%2Fpostgresql-9-6-introduced-pg_visibility-module-to-examine-visibility-map%2F&amp;linkname=PostgreSQL%209.6%3A%20Introduced%20pg_visibility%20module%20to%20examine%20visibility%20map" 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%2F2017%2F04%2Fpostgresql-9-6-introduced-pg_visibility-module-to-examine-visibility-map%2F&amp;linkname=PostgreSQL%209.6%3A%20Introduced%20pg_visibility%20module%20to%20examine%20visibility%20map" 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%2F2017%2F04%2Fpostgresql-9-6-introduced-pg_visibility-module-to-examine-visibility-map%2F&amp;linkname=PostgreSQL%209.6%3A%20Introduced%20pg_visibility%20module%20to%20examine%20visibility%20map" 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%2F2017%2F04%2Fpostgresql-9-6-introduced-pg_visibility-module-to-examine-visibility-map%2F&#038;title=PostgreSQL%209.6%3A%20Introduced%20pg_visibility%20module%20to%20examine%20visibility%20map" data-a2a-url="https://www.dbrnd.com/2017/04/postgresql-9-6-introduced-pg_visibility-module-to-examine-visibility-map/" data-a2a-title="PostgreSQL 9.6: Introduced pg_visibility module to examine visibility map"></a></p><p>If you don&#8217;t know what VM and FSM is, I would suggest to read below articles:</p>
<blockquote data-secret="pTZNKHe5td" class="wp-embedded-content"><p><a href="https://www.dbrnd.com/2016/10/postgresql-what-is-visibility-map-vm-table-mvcc-architecture/">PostgreSQL: What is Visibility Map (VM)?</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  src="https://www.dbrnd.com/2016/10/postgresql-what-is-visibility-map-vm-table-mvcc-architecture/embed/#?secret=pTZNKHe5td" data-secret="pTZNKHe5td" width="600" height="338" title="&#8220;PostgreSQL: What is Visibility Map (VM)?&#8221; &#8212; Database Research &amp; Development" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<blockquote data-secret="uPHRViR537" class="wp-embedded-content"><p><a href="https://www.dbrnd.com/2016/10/postgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture/">PostgreSQL: What is a Free Space Map (FSM)?</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  src="https://www.dbrnd.com/2016/10/postgresql-what-is-a-free-space-map-fsm-table-mvcc-architecture/embed/#?secret=uPHRViR537" data-secret="uPHRViR537" width="600" height="338" title="&#8220;PostgreSQL: What is a Free Space Map (FSM)?&#8221; &#8212; Database Research &amp; Development" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<blockquote><p>PostgreSQL 9.6 introduced a pg_visibility module to get the visibility map information of your table, and it is also giving page level information.<br />
For removing fragmentation, and improve the query performance we should check the visibility map of our table. </p></blockquote>
<p>For that, you need to create a pg_visibility module in PostgreSQL 9.6 and use it.<br />
Previously, people are checking the suffix _vm files which associate with your relation. </p>
<p><strong>Check the below demonstration on how to use pg_visibility:</strong></p>
<p><strong>Create a pg_visibility extension:</strong></p>
<pre class="crayon-plain-tag">CREATE EXTENSION pg_visibility;</pre> </p>
<p><strong>Create a sample table with 10000 dummy records:</strong></p>
<pre class="crayon-plain-tag">CREATE TABLE tbl_checkvmap AS SELECT generate_series(1,10000) AS id;</pre> </p>
<p><strong>Check the visibility map:</strong></p>
<pre class="crayon-plain-tag">SELECT * FROM pg_visibility('tbl_checkvmap'::regclass);</pre> </p>
]]></content:encoded>
					
		
		
			</item>
		<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>
