<?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>Open Enterprise: The PostgreSQL Open Source Database Blog from EnterpriseDB</title>
	<atom:link href="http://blogs.enterprisedb.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.enterprisedb.com</link>
	<description>Commentary, tutorials, and announcements surrounding PostgreSQL, Postgres Plus, and open source.</description>
	<lastBuildDate>Wed, 01 Feb 2012 23:02:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Postgres Memory Surprises</title>
		<link>http://blogs.enterprisedb.com/2012/02/01/postgres-memory-surprises/</link>
		<comments>http://blogs.enterprisedb.com/2012/02/01/postgres-memory-surprises/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 14:15:01 +0000</pubDate>
		<dc:creator>Bruce Momjian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.enterprisedb.com/2012/02/01/postgres-memory-surprises/</guid>
		<description><![CDATA[
 
In my previous blog entry, I analyzed how various tools (ps and smem) report memory usage.  In summary:

ps columns TRS, DRS, and VSZ report virtual address space allocated, not actual RAM allocated.
smem&#8217;s USS reports a process&#8217;s private (unshared) memory allocated.
smem&#8217;s PSS is a sum of process&#8217;s private memory allocated and a proportional amount of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#February_1_2012"></a></p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#February_1_2012"> </a></p>
<p>In my previous <a class="txt2html" style="text-decoration: none" href="http://momjian.us/main/blogs/pgblog/2012.html#January_30_2012">blog entry</a>, I analyzed how various tools (<em>ps</em> and <em>smem</em>) report memory usage.  In summary:</p>
<ul>
<li><em>ps</em> columns <em>TRS</em>, <em>DRS</em>, and <em>VSZ</em> report virtual address space allocated, not actual RAM allocated.</li>
<li><em>smem</em>&#8217;s <em>USS</em> reports a process&#8217;s private (unshared) memory allocated.</li>
<li><em>smem</em>&#8217;s <em>PSS</em> is a sum of process&#8217;s private memory allocated and a proportional amount of shared memory (both System V shared memory, like Postgres&#8217;s shared_buffers, and shared libraries).</li>
<li><em>RSS</em> shows actual RAM allocated, private and shared.</li>
</ul>
<p>With these issues understood, let&#8217;s look at a running Postgres cluster:</p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#February_1_2012">Continue Reading »</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.enterprisedb.com/2012/02/01/postgres-memory-surprises/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Revisiting Memory Reporting</title>
		<link>http://blogs.enterprisedb.com/2012/01/30/revisiting-memory-reporting/</link>
		<comments>http://blogs.enterprisedb.com/2012/01/30/revisiting-memory-reporting/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 16:00:00 +0000</pubDate>
		<dc:creator>Bruce Momjian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.enterprisedb.com/2012/01/30/revisiting-memory-reporting/</guid>
		<description><![CDATA[
 
Memory is very important to databases — much more so than for typical applications (presentation).  Unfortunately, because memory allocation is so
complex, it is often hard to figure out how physical RAM is being used.  There are several reasons for the complexity:

Virtual Memory: CPUs in virtual memory mode don&#8217;t access RAM directly, but rather [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_30_2012"></a></p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_30_2012"> </a></p>
<p>Memory is very important to databases — much more so than for typical applications (<a class="txt2html" style="text-decoration: none" href="http://momjian.us/main/presentations/overview.html#hw_selection">presentation</a>).  Unfortunately, because memory allocation is so<br />
complex, it is often hard to figure out how physical RAM is being used.  There are several reasons for the complexity:</p>
<ul>
<li><strong>Virtual Memory:</strong> CPUs in virtual memory mode don&#8217;t access RAM directly, but rather through <a class="txt2html" style="text-decoration: none" href="http://en.wikipedia.org/wiki/Page_table">page tables</a>.</li>
<li><strong>Segmentation:</strong> Memory is allocated in specific <a class="txt2html" style="text-decoration: none" href="http://en.wikipedia.org/wiki/Segmentation_%28memory%29">segments</a>:<br />
<a class="txt2html" style="text-decoration: none" href="http://en.wikipedia.org/wiki/Text_segment">text(code)</a>, <a class="txt2html" style="text-decoration: none" href="http://en.wikipedia.org/wiki/Data_segment">data</a>, and stack.</li>
<li><strong>Sharing:</strong> physical RAM is often shared by multiple processes, either in read-only mode (program instructions), shared mode (read/write of share memory), or <a class="txt2html" style="text-decoration: none" href="http://en.wikipedia.org/wiki/Copy-on-write">copy-on-write</a> (create a new copy on write; used by <a class="txt2html" style="text-decoration: none" href="http://en.wikipedia.org/wiki/Fork_%28operating_system%29">fork</a>).</li>
</ul>
<p>Robert Haas&#8217;s excellent <a class="txt2html" style="text-decoration: none" href="http://rhaas.blogspot.com/2012/01/linux-memory-reporting.html">blog post</a> highlighted much uncertainty about how to analyze memory usage for specific processes, especially Postgres.  I commented on his blog, as did others, and now have a much clearer idea of how to study memory usage.  A <a class="txt2html" style="text-decoration: none" href="http://utcc.utoronto.ca/~cks/space/blog/linux/LinuxMemoryStats">blog post</a> by Chris Siebenmann directly addresses some of my and Robert&#8217;s questions, and suggests <a class="txt2html" style="text-decoration: none" href="http://www.selenic.com/smem/">smem</a> as a way to analyze memory, especially the sharing of memory.  It was interesting to learn that smem was designed specifically to address the problems Robert outlined (<a class="txt2html" style="text-decoration: none" href="http://lwn.net/Articles/230975/">2007</a>, <a class="txt2html" style="text-decoration: none" href="http://lwn.net/Articles/329458/">2009</a>).</p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_30_2012">Continue Reading »</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.enterprisedb.com/2012/01/30/revisiting-memory-reporting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NoSQL Databases as the New Scripting Language</title>
		<link>http://blogs.enterprisedb.com/2012/01/27/nosql-databases-as-the-new-scripting-language/</link>
		<comments>http://blogs.enterprisedb.com/2012/01/27/nosql-databases-as-the-new-scripting-language/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 16:00:00 +0000</pubDate>
		<dc:creator>Bruce Momjian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.enterprisedb.com/2012/01/27/nosql-databases-as-the-new-scripting-language/</guid>
		<description><![CDATA[
 
This video presentation by Dwight Merriman (MongoDB) at OSCON Data 2011 explores the role of NoSQL databases.  He makes some very interesting points:

NoSQL was created to allow horizontal, read-write scaling
NoSQL uses a dynamic schema
NoSQL is similar to dynamically-typed languages, e.g. Perl, PHP
NoSQL has serious limitations compared to relational data storage, e.g. reporting

What I found [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_27_2012"></a></p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_27_2012"> </a></p>
<p>This <a class="major" style="text-decoration: underline" href="http://www.youtube.com/watch?v=56TTOqMOkoY">video presentation</a> by Dwight Merriman (MongoDB) at OSCON Data 2011 explores the role of NoSQL databases.  He makes some very interesting points:</p>
<ul>
<li>NoSQL was created to allow <a class="txt2html" style="text-decoration: none" href="http://momjian.us/main/blogs/pgblog/2012.html#January_26_2012">horizontal, read-write scaling</a></li>
<li>NoSQL uses a dynamic schema</li>
<li>NoSQL is similar to dynamically-typed languages, e.g. Perl, PHP</li>
<li>NoSQL has serious limitations compared to relational data storage, e.g. reporting</li>
</ul>
<p>What I found most interesting about his presentation was the comparison to dynamically-typed languages.  When dynamically-typed scripting languages started to become popular years ago, there was a sense that they were only for trivial applications, compared to compiled language that were for serious work.  As CPUs became faster, scripting languages were increasingly used for production applications, particularly web applications that are modified frequently.  There might be a similar pattern now in the (improper?) dismissal of NoSQL for serious applications.</p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_27_2012">Continue Reading »</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.enterprisedb.com/2012/01/27/nosql-databases-as-the-new-scripting-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scalability What?</title>
		<link>http://blogs.enterprisedb.com/2012/01/26/scalability-what/</link>
		<comments>http://blogs.enterprisedb.com/2012/01/26/scalability-what/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 17:00:01 +0000</pubDate>
		<dc:creator>Bruce Momjian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.enterprisedb.com/2012/01/26/scalability-what/</guid>
		<description><![CDATA[
 The term &#8220;scalability&#8221; gets injected into database conversations often, but scalability discussions often end without a clear consensus. I believe this is because &#8220;scalability&#8221;, like &#8220;replication&#8221;, actually means different things to different people.
There are two dimensions to database scalability;  the first dimension specifies if additional servers are involved:
 
 
vertical: The hardware capabilities of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_26_2012"></a></p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_26_2012"> </a>The term &#8220;scalability&#8221; gets injected into database conversations often, but scalability discussions often end without a clear consensus. I believe this is because &#8220;scalability&#8221;, like &#8220;replication&#8221;, actually means different things to different people.</p>
<p>There are two dimensions to database scalability;  the first dimension specifies if additional servers are involved:</p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_26_2012"> </a></p>
<ul><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_26_2012"> </a></p>
<li><strong>vertical:</strong> The hardware capabilities of a single database server are increased to increase throughput</li>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_26_2012"> </a></p>
<li><strong>horizontal:</strong> The number of a database servers is increased to increase throughput</li>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_26_2012"> </a></ul>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_26_2012"> </a></p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_26_2012"></a><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_26_2012">Continue Reading »</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.enterprisedb.com/2012/01/26/scalability-what/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloud Computing Takes Another Step</title>
		<link>http://blogs.enterprisedb.com/2012/01/25/cloud-computing-takes-another-step/</link>
		<comments>http://blogs.enterprisedb.com/2012/01/25/cloud-computing-takes-another-step/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 21:05:30 +0000</pubDate>
		<dc:creator>Sean Doherty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.enterprisedb.com/2012/01/25/cloud-computing-takes-another-step/</guid>
		<description><![CDATA[As enterprises embark down the path of cloud computing we?re realizing that with many new advancements in technology, the promise of the technology is often more grand than the reality. It usually takes more time than we think it will …
Continue reading »
]]></description>
			<content:encoded><![CDATA[<p>As enterprises embark down the path of cloud computing we?re realizing that with many new advancements in technology, the promise of the technology is often more grand than the reality. It usually takes more time than we think it will …</p>
<p><a href="http://opensourcedb.wordpress.com/2012/01/25/whats-in-a-word/">Continue reading <span class="meta-nav">»</span></a><img src="http://stats.wordpress.com/b.gif?host=opensourcedb.wordpress.com&amp;blog=14673700&amp;post=83&amp;subd=opensourcedb&amp;ref=&amp;feed=1" border="0" alt="" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.enterprisedb.com/2012/01/25/cloud-computing-takes-another-step/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postgres Plus Cloud Database</title>
		<link>http://blogs.enterprisedb.com/2012/01/25/postgres-plus-cloud-database-2/</link>
		<comments>http://blogs.enterprisedb.com/2012/01/25/postgres-plus-cloud-database-2/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 16:27:40 +0000</pubDate>
		<dc:creator>Ed Boyajian</dc:creator>
				<category><![CDATA[Open Source Trends/News]]></category>
		<category><![CDATA[Postgres Plus Standard Server]]></category>
		<category><![CDATA[Product Features]]></category>
		<category><![CDATA[oracle compatibility]]></category>
		<category><![CDATA[postgres plus advanced server]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://blogs.enterprisedb.com/?p=1260</guid>
		<description><![CDATA[Today marks another important milestone for EnterpriseDB and  PostgreSQL as we launch Postgres Plus Cloud Database.  Our team of extraordinarily bright developers has been working for over a year with customers, community teammates and partners to create a “cloudified” version of Postgres that adds true elastic properties to the database while automating many [...]]]></description>
			<content:encoded><![CDATA[<p>Today marks another important milestone for EnterpriseDB and  PostgreSQL as we launch Postgres Plus Cloud Database.  Our team of extraordinarily bright developers has been working for over a year with customers, community teammates and partners to create a “cloudified” version of Postgres that adds true elastic properties to the database while automating many typical DBA routines.  All of this is delivered through a great looking centralized dashboard for monitoring, management and administration and it’s now available on Amazon EC2.</p>
<p>What does “cloudified” mean for a database?  It’s the addition of technology that allows you to:</p>
<ul>
<li>Automatically scale in response to increased demand</li>
<li>Set up highly available multi-node database clusters in minutes, not days</li>
<li>Pay for your database as if it were a utility</li>
</ul>
<p>You can read more about Postgres Plus Cloud Database here:<br />
<a href="http://cloud.enterprisedb.com" target="_blank"> http://cloud.enterprisedb.com</a></p>
<p>As we looked at the landscape of available cloud databases, four things became very clear:</p>
<ul>
<li>Before the launch of Postgres Plus Cloud Database, only Micrsoft SQL Server (solely via SQL Azure) and Oracle’s MySQL (solely via Amazon RDS) offered enhanced versions of a relational database to take advantage of inherent cloud scaling technology.</li>
<li>PaaS and other cloud platform vendors needed a database vendor to deliver a valuable cloud compatible database component for their platform to bring maximum support, features and value to their customers.</li>
<li>NoSQL options are varied and will continue to grow AND (not OR) old-school SQL RDBMS are as highly in demand in the cloud as they are in the data center.</li>
<li>Just putting “cloud” in the name does NOT make a database “cloudified”</li>
</ul>
<p>We are changing all that with this product launch.  We are giving users a new option to run either the latest community version of PostgreSQL or our flagship Postgres Plus Advanced Server with Oracle database compatibility features on Amazon EC2.  Perhaps more important is that we have architected Postgres Plus Cloud Database to be universally pluggable with any PaaS vendor platform.  To that end, our work with leading platforms from CloudBees and Engine Yard will bring enhanced database capabilities to the growing number of developers adopting their technologies.  And we are extending that work to include OpenStack, HP, Red Hat’s OpenShift and many others, making Postgres Plus Cloud Database the new standard relational database for all cloud platforms.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.enterprisedb.com/2012/01/25/postgres-plus-cloud-database-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Increasing Database Reliability</title>
		<link>http://blogs.enterprisedb.com/2012/01/25/increasing-database-reliability/</link>
		<comments>http://blogs.enterprisedb.com/2012/01/25/increasing-database-reliability/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 13:15:01 +0000</pubDate>
		<dc:creator>Bruce Momjian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.enterprisedb.com/2012/01/25/increasing-database-reliability/</guid>
		<description><![CDATA[
 
While database software can be the cause of outages, for Postgres, it is often not the software but the hardware that causes failures — and storage is often the failing component.  Magnetic disk is one of the few moving parts on a computer, and hence prone to breakage, and solid-state drives (SSDs) have a finite [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_25_2012"></a></p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_25_2012"> </a></p>
<p>While database software can be the cause of outages, for Postgres, it is often not the software but the hardware that causes failures — and storage is often the failing component.  Magnetic disk is one of the few moving parts on a computer, and hence prone to breakage, and solid-state drives (<a class="txt2html" style="text-decoration: none" href="http://en.wikipedia.org/wiki/Solid-state_drive">SSDs</a>) have a finite write limit.</p>
<p>While waiting for storage to start making loud noises or fail is an option, a better option is to use some type of monitoring that warns of storage failure before it occurs, e.g. enter <a class="txt2html" style="text-decoration: none" href="http://en.wikipedia.org/wiki/S.M.A.R.T.">SMART</a>.  SMART is a system developed by storage vendors that allows the operating system to query diagnostics on the drive and warn of unusual storage behavior before failure occurs.  While read/write failures are reported by the kernel, SMART parameters often warn of danger before failure occurs.  Below is the SMART output from a Western Digital (WDC) <a class="txt2html" style="text-decoration: none" href="http://www.amazon.com/Western-Digital-Caviar-Desktop-WD20EARX/dp/B004VFJ9MK">WD20EARX</a> magnetic disk drive:</p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_25_2012">Continue Reading »</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.enterprisedb.com/2012/01/25/increasing-database-reliability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Most Important Postgres CPU Instruction</title>
		<link>http://blogs.enterprisedb.com/2012/01/24/the-most-important-postgres-cpu-instruction/</link>
		<comments>http://blogs.enterprisedb.com/2012/01/24/the-most-important-postgres-cpu-instruction/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 13:30:01 +0000</pubDate>
		<dc:creator>Bruce Momjian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.enterprisedb.com/2012/01/24/the-most-important-postgres-cpu-instruction/</guid>
		<description><![CDATA[Postgres consists of roughly 1.1 million lines of C code, which is compiled into an executable with millions of CPU instructions.  Of the many CPU machine-language instructions in the Postgres server executable, which one is the most important?  That might seem like an odd question, and one that is hard to answer, but [...]]]></description>
			<content:encoded><![CDATA[<p>Postgres consists of roughly 1.1 million lines of C code, which is compiled into an executable with millions of CPU instructions.  Of the many CPU machine-language instructions in the Postgres server executable, which one is the most important?  That might seem like an odd question, and one that is hard to answer, but I think I know the answer.</p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_24_2012"> </a></p>
<p>You might wonder, &#8220;If Postgres is written in C, how would we find the most important machine-language instruction?&#8221;  Well, there is a trick to that.  Postgres is not completely written in C.  There is a very small file (1000 lines) with C code that adds specific assembly-language CPU instructions into the executable.  This file is called <a class="major" style="text-decoration: underline" href="http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/include/storage/s_lock.h;hb=HEAD">s_lock.h</a>.  It is an include file that is referenced in various parts of the server code that allows very fast locking operations.  The C language doesn&#8217;t supply fast-locking infrastructure, so Postgres is required to supply its own locking instructions for all twelve supported CPU architectures. (Operating system kernels do supply locking instructions, but they are much too slow to be used for Postgres.)</p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_24_2012">Continue Reading »</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.enterprisedb.com/2012/01/24/the-most-important-postgres-cpu-instruction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Lessons From My Server Migration</title>
		<link>http://blogs.enterprisedb.com/2012/01/23/more-lessons-from-my-server-migration/</link>
		<comments>http://blogs.enterprisedb.com/2012/01/23/more-lessons-from-my-server-migration/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 14:30:02 +0000</pubDate>
		<dc:creator>Bruce Momjian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.enterprisedb.com/2012/01/23/more-lessons-from-my-server-migration/</guid>
		<description><![CDATA[
 
The new server is 2-10 times faster than my old 2003 server, but that 10x speedup is only possible for applications that:

Do lots of random I/O, thanks to the SSDs.  Postgres already supports tablespace-specific random_page_cost settings, but it would be interesting to see if there are cases that can be optimized for low random pages costs. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_23_2012"></a></p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_23_2012"> </a></p>
<p>The <a class="txt2html" style="text-decoration: none" href="http://momjian.us/main/blogs/pgblog/2012.html#January_20_2012">new server</a> is 2-10 times faster than my old 2003 server, but that 10x speedup is only possible for applications that:</p>
<ul>
<li>Do lots of random I/O, thanks to the SSDs.  Postgres already supports tablespace-specific <a class="txt2html" style="text-decoration: none" href="http://www.postgresql.org/docs/9.1/static/runtime-config-query.html#RUNTIME-CONFIG-QUERY-CONSTANTS">random_page_cost</a> settings, but it would be interesting to see if there are cases that can be optimized for low random pages costs.  This is probably not an immediate requirement because the in-memory algorithms already assume a low random page cost.</li>
<li>Can be highly parallelized.  See my previous <a class="txt2html" style="text-decoration: none" href="http://momjian.us/main/blogs/pgblog/2011.html#December_5_2011">blog entry</a> regarding parallelism.  The 16 virtual cores in this server certainly offer more parallelism opportunities than my old two-core system.</li>
</ul>
<p>Other observations:</p>
<ul>
<li>It takes serious money to do the job right, roughly USD $4k — hopefully increased productivity and reliability will pay back this investment.</li>
<li>I actually started the upgrade two years ago by adjusting my scripts to be more portable;  this made the migration go much smoother. The same method can be used for migrations to Postgres by rewriting SQL queries to be more portable before the migration.  Reliable hardware is often the best way to ensure Postgres reliability.</li>
<li>My hot-swappable SATA-2 drive bays allow for a flexible hard-drive-based backup solution (no more magnetic tapes).  File system snapshots allow similar backups for Postgres tablespaces, but it would be good if this were more flexible.  It would also be cool if you could move a drive containing Postgres tablespaces from one server to another (perhaps after freezing the rows).</li>
</ul>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_23_2012">Continue Reading »</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.enterprisedb.com/2012/01/23/more-lessons-from-my-server-migration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Server</title>
		<link>http://blogs.enterprisedb.com/2012/01/20/new-server/</link>
		<comments>http://blogs.enterprisedb.com/2012/01/20/new-server/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 13:30:01 +0000</pubDate>
		<dc:creator>Bruce Momjian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.enterprisedb.com/2012/01/20/new-server/</guid>
		<description><![CDATA[
 
A few weeks ago, I finally replaced my eight-year-old home server.  The age of my server, and its operating system, (BSD/OS, last officially updated in 2002) were a frequent source of amusement among Postgres community members.  The new server is:

Super Micro 7046A-T 4U Tower Workstation
2 x Intel Xeon E5620 2.4GHz Quad-Core Processors
Crucial 24GB Dual-Rank PC3-10600 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_20_2012"></a></p>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_20_2012"> </a></p>
<p>A few weeks ago, I finally replaced my eight-year-old home server.  The age of my server, and its operating system, (<a class="txt2html" style="text-decoration: none" href="http://en.wikipedia.org/wiki/BSD/OS">BSD/OS</a>, last officially updated in <a class="txt2html" style="text-decoration: none" href="http://www.bsdnewsletter.com/2002/12/News61.html">2002</a>) were a frequent source of amusement among Postgres community members.  The <a class="txt2html" style="text-decoration: none" href="http://www.avadirect.com/tower-server-configurator.asp?PRID=13634">new server</a> is:</p>
<blockquote><p><span style="white-space: pre;"><br />
Super Micro 7046A-T 4U Tower Workstation<br />
2 x Intel Xeon E5620 2.4GHz Quad-Core Processors<br />
Crucial 24GB Dual-Rank PC3-10600 DDR3 SDRAM<br />
Intel 160GB 320 Series SSD Drive<br />
4 x Western Digital Caviar Green 2TB Hard Drives<br />
</span></p></blockquote>
<p><a href="http://momjian.us/main/blogs/pgblog/2012.html#January_20_2012">Continue Reading »</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.enterprisedb.com/2012/01/20/new-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

