<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>mastermind's weblog</title>
    <link>http://www.kaltenbrunner.cc/blog/</link>
    <description>random things on life,hardware and postgresql</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3.1-1 - http://www.s9y.org/</generator>
    <pubDate>Sat, 13 Jun 2009 16:48:00 GMT</pubDate>

    <image>
        <url>http://www.kaltenbrunner.cc/blog/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: mastermind's weblog - random things on life,hardware and postgresql</title>
        <link>http://www.kaltenbrunner.cc/blog/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Benchmarking 8.4 - Chapter 2/bulk loading</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/27-Benchmarking-8.4-Chapter-2bulk-loading.html</link>
            <category>hardware</category>
            <category>PostgreSQL</category>
            <category>work</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/27-Benchmarking-8.4-Chapter-2bulk-loading.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=27</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=27</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;As promised in the previous &lt;a href=&quot;http://www.kaltenbrunner.cc/blog/index.php?/archives/26-Benchmarking-8.4-Chapter-1Read-Only-workloads.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;post&lt;/a&gt; this is the second part in a series of testing/benchmarking 8.4 under various circumstances.&lt;br /&gt;
The topic in this post is bulk loading of data. Knowing about expected and theoretical bulk loading performance is a very important thing for an DBA. It affects not only data warehouse style operations but also plays an important part in disaster recovery scenarios because the total time it takes to restore your database from your backup is directly related to its bulk loading performance.&lt;/p&gt;

 &lt;br /&gt;&lt;a href=&quot;http://www.kaltenbrunner.cc/blog/index.php?/archives/27-Benchmarking-8.4-Chapter-2bulk-loading.html#extended&quot;&gt;Continue reading &quot;Benchmarking 8.4 - Chapter 2/bulk loading&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 16 Jun 2009 09:28:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/27-guid.html</guid>
    
</item>
<item>
    <title>Benchmarking 8.4 - Chapter 1/Read-Only workloads</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/26-Benchmarking-8.4-Chapter-1Read-Only-workloads.html</link>
            <category>hardware</category>
            <category>PostgreSQL</category>
            <category>work</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/26-Benchmarking-8.4-Chapter-1Read-Only-workloads.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=26</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=26</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;Computing platforms are constantly changing, evolving and improving. This holds true for both the hardware and the software running on that hardware.&lt;br /&gt;
With PostgreSQL 8.4 just around the &lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2009-06/msg00469.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;corner&lt;/a&gt; and a 2U Nehalem based IBM x3650M2 at my hands I thought I would do some benchmarking and see how well PostgreSQL does on that kind of hardware under a range of different workloads. This is planned as a series of posts starting with read-only benchmarking, followed up by bulk load testing and maybe some OLTP benchmarks as well.&lt;/p&gt;

 &lt;br /&gt;&lt;a href=&quot;http://www.kaltenbrunner.cc/blog/index.php?/archives/26-Benchmarking-8.4-Chapter-1Read-Only-workloads.html#extended&quot;&gt;Continue reading &quot;Benchmarking 8.4 - Chapter 1/Read-Only workloads&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 12 Jun 2009 22:21:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/26-guid.html</guid>
    
</item>
<item>
    <title>Nagios conference 2008</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/25-Nagios-conference-2008.html</link>
            <category>life</category>
            <category>PostgreSQL</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/25-Nagios-conference-2008.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=25</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=25</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;Long time no post - but I just got back home from the &lt;a href=&quot;http://www.netways.de/english/nagios_konferenz/y2008&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Netways Nagios Conference 2008&lt;/a&gt; where I was invited to give a talk on &amp;quot;PostgreSQL Monitoring - Introduction, Internals And Monitoring Strategies for postgresql.org&amp;quot; so I figured it is time to say something again ...&lt;/p&gt;

 &lt;br /&gt;&lt;a href=&quot;http://www.kaltenbrunner.cc/blog/index.php?/archives/25-Nagios-conference-2008.html#extended&quot;&gt;Continue reading &quot;Nagios conference 2008&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 13 Sep 2008 11:36:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/25-guid.html</guid>
    
</item>
<item>
    <title>fosdem - a huge success</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/24-fosdem-a-huge-success.html</link>
            <category>life</category>
            <category>PostgreSQL</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/24-fosdem-a-huge-success.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=24</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=24</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;FOSDEM was a really nice and successful event for Opensource in general and especially PostgreSQL - we had a really impressive booth and a huge number of talks with a lot of attendances.&lt;br /&gt;
We also managed to get the initial board for the european user group voted and that will pave to wya to get the group set up as a legal entity within the next few months - YEAH!&lt;/p&gt;

 &lt;br /&gt;&lt;a href=&quot;http://www.kaltenbrunner.cc/blog/index.php?/archives/24-fosdem-a-huge-success.html#extended&quot;&gt;Continue reading &quot;fosdem - a huge success&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 25 Feb 2008 23:30:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/24-guid.html</guid>
    
</item>
<item>
    <title>stefan: &quot;you are becoming uncle&quot;</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/23-stefan-you-are-becoming-uncle.html</link>
            <category>life</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/23-stefan-you-are-becoming-uncle.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=23</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=23</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;this feels strange - my sister just told me that she is expecting a baby and that I&#039;m about to become uncle which is feeling really strange.&lt;br /&gt;
However I&#039;m really really happy for Andrea and Harry (see my &lt;a href=&quot;http://www.gerald.kaltenbrunner.cc/Blog/Eintraege/2008/2/8_JUHU_-_Harry_und_Andrea!.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;brothers blog&lt;/a&gt; for a picture of them) and I wish them the best.&lt;br /&gt;
It now looks that Harry will have to take on the burden of doing all the hard work on their new apartment  - but I guess thats ok :-)&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 08 Feb 2008 19:04:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/23-guid.html</guid>
    
</item>
<item>
    <title>feature matrix - or &quot;what is new in version XY?&quot;</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/22-feature-matrix-or-what-is-new-in-version-XY.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/22-feature-matrix-or-what-is-new-in-version-XY.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=22</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=22</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;http://www.postgresql.org&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;PostgreSQL&lt;/a&gt; is a thriving and fast evolving project with regular releases that add new features, improve existing functionality and increase speed.&lt;br /&gt;
Most of those improvements are mentioned in a rather brief from in the release announcement/press release and or in a lengthy form in the &lt;a href=&quot;http://www.postgresql.org/docs/current/static/release-8-2.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;release notes&lt;/a&gt;.&lt;br /&gt;
The new &lt;a href=&quot;http://www.postgresql.org/about/featurematrix&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;feature matrix&lt;/a&gt;  on the main website is an attempt to provide a quick tabular overview about &amp;quot;what is new in release XY&amp;quot; starting from 7.3 to the about to be released 8.3.&lt;/p&gt;

 &lt;br /&gt;&lt;a href=&quot;http://www.kaltenbrunner.cc/blog/index.php?/archives/22-feature-matrix-or-what-is-new-in-version-XY.html#extended&quot;&gt;Continue reading &quot;feature matrix - or &amp;quot;what is new in version XY?&amp;quot;&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 31 Jan 2008 22:33:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/22-guid.html</guid>
    
</item>
<item>
    <title>8.3 vs. 8.2 - a simple benchmark</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/21-8.3-vs.-8.2-a-simple-benchmark.html</link>
            <category>PostgreSQL</category>
            <category>work</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/21-8.3-vs.-8.2-a-simple-benchmark.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=21</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=21</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;With 8.3 just around the corner more and more people are actually starting to test 8.3 with their code base and wondering if it will be worth to switch/upgrade and so did I.&lt;br /&gt;
The following is not really an in-depth benchmark but meant as a simple testing of 8.3 on a very specific (but not uncommon) workload and with small set of different configuration parameters.&lt;/p&gt;

&lt;p&gt;All the testing is done on a DL380 G5 with two Quadcore Intel Xeon CPUs (X5345 - so 2,33Ghz per core)  12GB of RAM and 6 disks in a RAID1+0 with 512MB BBWC on a Smartarray P400.&lt;br /&gt;
The box is running Debian/Etch AMD/64 with the debian supplied kernel (2.6.18 more or less) and a current -HEAD snapshot of PostgreSQL (more or less BETA4 code) compiled as a 64bit binary.&lt;/p&gt;

&lt;p&gt;The benchmark database is initialized with a scaling factor of 100 (equals to 10M rows) which seems to be a reasonable size for a table in an OLTP style database) all testing was done with 100 clients and 100000 transactions/client which comes out to 10M transactions and an average runtime of about 1,5 hours.&lt;br /&gt;
The first test is a simple comparison of 8.2 vs 8.3B4 in both the default (ie. unchanged postgresql.conf) and one with a somewhat reasonable tuning:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;checkpoint_segments=192&lt;/li&gt;
    &lt;li&gt;maintenance_work_mem=128MB&lt;/li&gt;
    &lt;li&gt;shared_buffers=1536MB&lt;/li&gt;
    &lt;li&gt;wal_buffers=1024kB&lt;/li&gt;
    &lt;li&gt;effective_cache_size=3084MB&lt;/li&gt;
    &lt;li&gt;filesystem(ext3) mounted with noatime&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://www.kaltenbrunner.cc/blog/uploads/82vs83b4.gif&quot;&gt;&lt;img src=&quot;http://www.kaltenbrunner.cc/blog/uploads/82vs83b4.gif&quot; width=&quot;500&quot; height=&quot;396&quot; alt=&quot;82vs83b4.gif&quot; /&gt;&lt;/a&gt;83b4shm.gif&lt;/p&gt;

&lt;p&gt;what we can see here is that 8.3B4 is about 2.2x faster than 8.2 out-of-the-box for this very update heavy workload and is able to keep that advantage after similar tuning is applied to both instances.&lt;br /&gt;
The main reason for this rather large improvement is HOT. pgbench is one of the workloads that benefit most from it and a bit of preliminary testing with similiar real-life workloads (session tables or stuff like the SQL-Bayes support in Spamassassin) show equally impressive gains.&lt;/p&gt;

&lt;p&gt;the second thing I tried to test was the effect of various shared_buffer settings on the transaction rate(the other parts of the configuration stayed the same as in the &amp;quot;tuned&amp;quot; variant above):&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.kaltenbrunner.cc/blog/uploads/83b4shm.gif&quot;&gt;&lt;img src=&quot;http://www.kaltenbrunner.cc/blog/uploads/83b4shm.gif&quot; width=&quot;606&quot; height=&quot;441&quot; alt=&quot;83b4shm.gif&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;there are two main things to note here - one is the obvious one that the scaling on the x-axis is not linear.&lt;br /&gt;
The other one is that the best performance seems to be around 1,5GB of shared memory which is about the size of the database on-disk in 8.3. Higher settings to not help and in fact cause a slight performance degeneration.&lt;/p&gt;

&lt;p&gt;All in all 8.3 seems to become a rather impressive release  and as always proper tuning is very critical to getting the best out of (dedicated) database server instances.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 11 Dec 2007 22:33:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/21-guid.html</guid>
    
</item>
<item>
    <title>the next step in postgresql evolution: a benchfarm ?</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/20-the-next-step-in-postgresql-evolution-a-benchfarm.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/20-the-next-step-in-postgresql-evolution-a-benchfarm.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=20</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=20</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;http://www.commandprompt.com/blogs/joshua_drake/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Joshua Drake&lt;/a&gt; just &lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2007-11/msg00062.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;announced&lt;/a&gt; that the first machine is finally available for a PostgreSQL Performance Test lab donated by a range of commercial sponsors.&lt;br /&gt;
Ever since &lt;a href=&quot;http://people.planetpostgresql.org/andrew/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Andrew Dunstan&lt;/a&gt; invented the buildfarm and seeing the smashing success it had on improving the PostgreSQL development process I have been toying with the idea of doing a similar thing on the performance front. What the past few releases have shown is that PostgreSQL is gaining more and more complex performance related features and planner improvements. &lt;br /&gt;
However some of this things change fundamental infrastructure in PostgreSQL (for example the outer join reordering stuff in 8.2) and while often causing dramatic improvements on the one side we also a fair number of regressions which largely went undetected during BETA and even the first few minor releases.&lt;br /&gt;
The current buildfarm setup is very good in covering a large range of platforms and architectures  for testing portability and basic regression testing but due to its nature is not really suitable for benchmarking of any kind.&lt;/p&gt;

&lt;p&gt;Some of the reasons why it is not so well suited for that purpose are:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;a lot of the buildfarm clients are not really dedicated installations (or just VMs)&lt;/li&gt;
    &lt;li&gt;capabilities/resources on some of the boxes are quite restricted (&lt;a href=&quot;http://buildfarm.postgresql.org/cgi-bin/show_history.pl?nm=lionfish&amp;amp;br=HEAD&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;lionfish&lt;/a&gt; for example has only a few hundred megabytes of disk space and 48MB of RAM available which is barely enough to get through the regression tests ...)&lt;/li&gt;
    &lt;li&gt;limited control over the change management on those boxes (updates/upgrades) which might make it difficult to compare historic results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What I would like to see in the future is a threefold approach:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;We need continuous and long term benchmarking of at least -HEAD using defined benchmark tools (&lt;a href=&quot;http://sysbench.sourceforge.net/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;sysbench&lt;/a&gt;, marc wongs &lt;a href=&quot;http://osdldbt.sourceforge.net/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;dbt implementations&lt;/a&gt; or  Jans &lt;a href=&quot;http://pgfoundry.org/projects/tpc-w-php/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;tpc-w stuff&lt;/a&gt;) done at least weekly if not daily so we can get an idea on how our overall performance improves (or degrades) on various workloads on a relative scale.&lt;/li&gt;
    &lt;li&gt;Tracking of query plans - the current regression test framework is designed to give very deterministic results and therefor uses a lot of ORDER BY and similar stuff get get consistent results. This however tends to hide subtle regressions in the planner for large and complex queries and on large databases (the typical regression database is very very small compared to what people use in the wild). What we need is a collection of real life test cases that load data and execute queries on them comparing the plans AND execution times over a long period of time on small and large datasets and notify on changes.&lt;/li&gt;
    &lt;li&gt;Dedicated boxes for individual hackers to work on new features or experimental patches&lt;/li&gt;
&lt;/ul&gt;

 
    </content:encoded>

    <pubDate>Sat, 03 Nov 2007 10:57:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/20-guid.html</guid>
    
</item>
<item>
    <title>leaving a wonderful conference and getting home again ...</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/18-leaving-a-wonderful-conference-and-getting-home-again-....html</link>
            <category>life</category>
            <category>PostgreSQL</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/18-leaving-a-wonderful-conference-and-getting-home-again-....html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=18</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=18</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;pgday.it in Prato was a truly marvelous conference, but everything is eventually coming to an end and so did &lt;a href=&quot;http://www.kaltenbrunner.cc/blog/index.php?/archives/17-pgday.it-beer,-grappa,-wine-and-fun-2.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;this conference&lt;/a&gt;. On sunday Gabriele and Andrea took us one a tour through Florence ending in a great dinner and a bit of a challenge to catch the last train^bus back to prato ...&lt;/p&gt;

&lt;p&gt;Today we started at around 09:30 in the morning trying to get Magnus to the airport which turned into quite a long trip mostly due to the fact that andreas navigation system developed something that can only be described as &amp;quot;artificial (un)intelligence&amp;quot;.&lt;/p&gt;

&lt;p&gt;After we left the airport we thought we were good for going back up to Salzburg (and Munch) but the navigation system acted up again and caused so much confusion that we actually managed to get up the highway WITHOUT(!) getting a ticket from the toll station.&lt;br /&gt;
So just imagine what it might take to get off a highway with a fully automated toll collection system without a ticket and neither the remote assistance nor the one lone guy that was responsible for some 18+ exit gateways and not even they guy in the main office is capable of understanding a single word of german or english ...&lt;/p&gt;

&lt;p&gt;After a somewhat interesting discussion which mainly consisted of well wild gestures and &amp;quot;i have no idea what you are talking about&amp;quot; faces we managed to get a form that probably claims (again all Italian) that we turned around on the highway or something like that - but well it seems we don&#039;t have to pay anything for &amp;quot;hacking&amp;quot; the italian highway system.&lt;/p&gt;

&lt;p&gt;On the way back to the car from the &lt;a href=&quot;http://www.autostrade.it/en/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;autostrada&lt;/a&gt; office we met the guy manning the 18+ toll houses again telling us that there is a completely unlabeled underground crossing to the other side of the highway which would have been a good thing to to know earlier for well &amp;quot;making crossing a highway &amp;quot;easier&amp;quot;.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 09 Jul 2007 19:33:28 +0200</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/18-guid.html</guid>
    
</item>
<item>
    <title>pgday.it - beer, grappa, wine and fun #2</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/17-pgday.it-beer,-grappa,-wine-and-fun-2.html</link>
            <category>life</category>
            <category>PostgreSQL</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/17-pgday.it-beer,-grappa,-wine-and-fun-2.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=17</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=17</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;So well - the official part of pgday.it is over now and today we had a lot of interesting talks from a number of international people covering everything from encoding(Susanne) related stuff over to full text search(Oleg) and PITR(Simon).&lt;br /&gt;
Josh did his keynote on new features in 8.3 which is something I&#039;m a &amp;quot;bit&amp;quot; &lt;a href=&quot;http://developer.postgresql.org/index.php/Todo:PatchStatus&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;familiar&lt;/a&gt; with - but nevertheless it contained quite a lot of information especially the announcement of the official &lt;a href=&quot;http://www.spec.org/jAppServer2004/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;benchmarks&lt;/a&gt; sun did was very impressive and clearly how powerful and also cost effective PostgreSQL really is.&lt;br /&gt;
Again we got ton&#039;s of food and well there was also this guy doing interviews for a satellite TV station (boy do I hope that mine will not get broadcasted ...).&lt;br /&gt;
We will soon meet up at the bar of the prato linux usergroup for doing a bit of brainstorming and discussions on a possible european postgresql usergroup and afterwards we are going to have beer, grappa, wine and lot&#039;s and lot&#039;s of fun with our new Italian friends.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 07 Jul 2007 18:33:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/17-guid.html</guid>
    
</item>
<item>
    <title>pgday.it - beer, grappa, wine and fun #1</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/16-pgday.it-beer,-grappa,-wine-and-fun-1.html</link>
            <category>life</category>
            <category>PostgreSQL</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/16-pgday.it-beer,-grappa,-wine-and-fun-1.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=16</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=16</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;so pgday.it is in full swing, and it&#039;s a truly impressive conference. &lt;a href=&quot;http://ads.wars-nicht.de/blog/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Andreas&lt;/a&gt;  and I arrived after a 7h drive from Salzburg in Prato.&lt;br /&gt;
Andreas claims it took us that long due to the strict traffic limits in Austria (there is a 100km/h limit on the A10 from Salzburg down to Italy for &amp;quot;environment protection&amp;quot; reason) but I&#039;m not entirely convinced this is true ;-)&lt;br /&gt;
Anyway - we barely managed to check-in at the hotel when we met David, Magnus and Josh who took us on some sort of &amp;quot;sightseeing tour&amp;quot; around prato. Which means that we basically had a [ &lt;a href=&quot;http://blogs.ittoolbox.com/database/soup&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;guide&lt;/a&gt; with long hair and in short trousers taking us through half of the city (couple miles at least) looking for a place to get food and sit down in prato  - well we didn&#039;t succeed until someone else (the &amp;quot;map guy&amp;quot; from [the &lt;a href=&quot;http://www.prato.linux.it/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://www.prato.linux.it/&lt;/a&gt; prato linux user group]) gave us the right hint.&lt;br /&gt;
Later on the Italian guys organized a very cool dinner at a restaurant serving typical local food - and we learned quite a lot about local &lt;a href=&quot;http://ads.wars-nicht.de/pictures/v/events/pgday_it/dsc_5092_640x480.jpg.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;eating&lt;/a&gt; and &lt;a href=&quot;http://ads.wars-nicht.de/pictures/v/events/pgday_it/dsc_5114_640x480.jpg.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;drinking&lt;/a&gt; habits (pictures courtesy of Andreas).&lt;br /&gt;
We ended the day at around 2 o&#039;clock in the morning at the &amp;quot;New York&amp;quot; bar directly in the city of &lt;a href=&quot;http://www.comune.prato.it/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;prato&lt;/a&gt; which is basically a float on the river after &lt;a href=&quot;http://ads.wars-nicht.de/pictures/v/events/pgday_it/dsc_5075_640x480.jpg.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;feeding fish&lt;/a&gt; and drinking beer ...&lt;/p&gt;

&lt;p&gt;Today is the first day of the actual conference and one can only barely imagine the amount of work the organizers have put into this ...&lt;br /&gt;
The organization is very good (with a nice ) there is a lot of neat merchandising stuff available and I even got a pgday.it staff shirt for myself, and everything is free (including the fantastic food we are getting served).&lt;br /&gt;
The talks are pretty interesting too with real time translation of the talks into English (or Italian for the ones held in English) - though the schedule is a bit crammed and could take some additional breaks between the speakers.&lt;br /&gt;
If you want to see what&#039;s going on here simply look at the official &lt;a href=&quot;http://www.pgday.it/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;website&lt;/a&gt; and listen to the live audio broadcasts.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 06 Jul 2007 17:30:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/16-guid.html</guid>
    
</item>
<item>
    <title>new tech toy ...</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/14-new-tech-toy-....html</link>
            <category>hardware</category>
            <category>life</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/14-new-tech-toy-....html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=14</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=14</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;ok just bought me a new (and rather expensive) &lt;a href=&quot;http://www.us.playstation.com/PS3/About&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;toy&lt;/a&gt; after some &lt;a href=&quot;http://www.madness.at/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;people&lt;/a&gt; said &amp;quot;ok if you buy one today I will buy you a game for that&amp;quot;.&lt;/p&gt;

&lt;p&gt;So I went to the electronic shop and bought one (including the optional remote and two games) but I guess that might have only been the start because now a nice new LCD television would suddenly make sense ...&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 22 May 2007 20:59:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/14-guid.html</guid>
    
</item>
<item>
    <title>weird animals on the postgresql buildfarm</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/13-weird-animals-on-the-postgresql-buildfarm.html</link>
            <category>hardware</category>
            <category>PostgreSQL</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/13-weird-animals-on-the-postgresql-buildfarm.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=13</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=13</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;Today I spent some time on doing a bit of maintenance work on some of my &lt;a href=&quot;http://buildfarm.postgresql.org/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;buildfarm&lt;/a&gt; boxes and suddenly I thought it would nice to present some of the more weird ones to others.&lt;br /&gt;
Of course there is also magnus &lt;a href=&quot;http://people.planetpostgresql.org/mha/index.php?/archives/148-pgcon,-pgday-and-blogging.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;complaint&lt;/a&gt; about a lack of blog posts on &lt;a href=&quot;http://www.planetpostgresql.org/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;planetpostgresql.org&lt;/a&gt; that I just had to react too ;-)&lt;/p&gt;

&lt;p&gt;I have a total of 14 registered hosts on the buildfarm with &lt;a href=&quot;http://buildfarm.postgresql.org/cgi-bin/show_status.pl?member=spoonbill&amp;amp;member=emu&amp;amp;member=cockatoo&amp;amp;member=galah&amp;amp;member=dove&amp;amp;member=lionfish&amp;amp;member=seahorse&amp;amp;member=sponge&amp;amp;member=leveret&amp;amp;member=zebra&amp;amp;member=impala&amp;amp;member=Shad&amp;amp;member=quagga&amp;amp;member=clownfish&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;nine&lt;/a&gt; of them actively reporting and four of them (those that I think are the most weird and interesting ones) are worth to get mentioned in a bit more detail:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.pgbuildfarm.org/cgi-bin/show_history.pl?nm=lionfish&amp;amp;br=HEAD&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;lionfish&lt;/a&gt;&lt;/strong&gt;:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;Hardware: &lt;a href=&quot;http://en.wikipedia.org/wiki/Cobalt_Qube&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Cobalt Cube 2&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;CPU: 250Mhz MIPS in little endian mode&lt;/li&gt;
    &lt;li&gt;Bogomips: ~250&lt;/li&gt;
    &lt;li&gt;Memory: 48MB of RAM (+196MB of swap)&lt;/li&gt;
    &lt;li&gt;Disk: 4GB IDE&lt;/li&gt;
    &lt;li&gt;Time to complete a build farm run: ~5,5-6 hours(this makes lionfish by far the slowest box on the farm)&lt;/li&gt;
    &lt;li&gt;On the farm since: 2004&lt;/li&gt;
    &lt;li&gt;Operation System: Debian/Sarge 3.1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;issues found by lionfish&lt;/em&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2006-07/msg01543.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;race condition&lt;/a&gt; in ALTER INDEX  RENAME&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://archives.postgresql.org/pgsql-committers/2007-05/msg00035.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;crashes&lt;/a&gt; with the new multiple autovacuum worker code&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2005-08/msg00975.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;buggy&lt;/a&gt; MIPS spinlock code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.pgbuildfarm.org/cgi-bin/show_history.pl?nm=quagga&amp;amp;br=HEAD&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;quagga&lt;/a&gt;&lt;/strong&gt;:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;Hardware: &lt;a href=&quot;http://www.allnet.de/product_info_allnet.php?cPath=_&amp;amp;products_id=99967&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;ALLNET6500&lt;/a&gt; (identically to the &lt;a href=&quot;http://www.thecus.com/products_over.php?cid=1&amp;amp;pid=1&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Thecus 2100&lt;/a&gt; with 256MB of RAM instead of 128MB)&lt;/li&gt;
    &lt;li&gt;CPU: Intel IOP 80219 ARMv5TE running at 600Mhz&lt;/li&gt;
    &lt;li&gt;Bogomips: ~250&lt;/li&gt;
    &lt;li&gt;Memory: 256MB DDR-SDRAM&lt;/li&gt;
    &lt;li&gt;Disk: 250GB SATA&lt;/li&gt;
    &lt;li&gt;Time to complete a build farm run: ~2,5 hours&lt;/li&gt;
    &lt;li&gt;On the buildfarm since: January 2007&lt;/li&gt;
    &lt;li&gt;Operating System: Debian/Etch 4.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;issues found by quagga&lt;/em&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;tcl upstream &lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2007-01/msg00377.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;bug&lt;/a&gt; on ARM and MIPS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.pgbuildfarm.org/cgi-bin/show_history.pl?nm=spoonbill&amp;amp;br=HEAD&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;spoonbill&lt;/a&gt;&lt;/strong&gt;:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;hardware: &lt;a href=&quot;http://sunsolve.sun.com/handbook_pub/Systems/U10/spec.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Sun Ultra 10 Workstation&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;CPU: 300Mhz UltraSPARC-IIi&lt;/li&gt;
    &lt;li&gt;Memory: 1GB&lt;/li&gt;
    &lt;li&gt;Disk: 40GB IDE&lt;/li&gt;
    &lt;li&gt;Time to complete a buildfarm run: ~1,5 hours&lt;/li&gt;
    &lt;li&gt;On the buildfarm since: at least autumn 2004&lt;/li&gt;
    &lt;li&gt;Operating System: OpenBSD 3.9/Sparc64 (upgraded a few times though)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;issues found by spoonbill&lt;/em&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;gcc(&amp;lt;3.4) &lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2004-11/msg00710.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt; optimizer bug&lt;/a&gt; on Sparc64 platforms&lt;/li&gt;
    &lt;li&gt;pg_database flushing &lt;a href=&quot;http://archives.postgresql.org/pgsql-committers/2004-11/msg00225.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt; race condition&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2006-06/msg00902.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;portability issues&lt;/a&gt; in the regression test framework on BSD-platforms&lt;/li&gt;
    &lt;li&gt;configure &lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2005-08/msg00066.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;portability fixes&lt;/a&gt; for OpenBSD&lt;/li&gt;
    &lt;li&gt;tsearch2 &lt;a href=&quot;http://archives.postgresql.org/pgsql-committers/2005-11/msg00475.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;failures/crashes&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;helped &lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2006-09/msg00564.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt; diagnosing&lt;/a&gt; an OpenBSD &lt;a href=&quot;http://marc.info/?l=openbsd-cvs&amp;amp;m=115970282714109&amp;amp;w=2&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;libc bug&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;WAL page split patch &lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2007-02/msg00390.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;use after free&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.pgbuildfarm.org/cgi-bin/show_history.pl?nm=sponge&amp;amp;br=HEAD&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;sponge&lt;/a&gt;&lt;/strong&gt;:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;Hardware: IBM RS/6000 7046-B50&lt;/li&gt;
    &lt;li&gt;CPU: PowerPC 604e 375Mhz&lt;/li&gt;
    &lt;li&gt;Bogomips: ~41&lt;/li&gt;
    &lt;li&gt;Memory: 256MB&lt;/li&gt;
    &lt;li&gt;Disk: 18GB SCSI&lt;/li&gt;
    &lt;li&gt;Time to complete a buildfarm run: 1-1,5 hours&lt;/li&gt;
    &lt;li&gt;On the farm since: spring 2006&lt;/li&gt;
    &lt;li&gt;Operating System: Fedora Core 5/ppc&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;issues found by sponge&lt;/em&gt;&lt;em&gt;:&lt;/em&gt;&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;regression test &lt;a href=&quot;http://archives.postgresql.org/pgsql-committers/2006-08/msg00091.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;race condition&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;XML regression test &lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2007-02/msg00828.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;problem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While hardware of that kind is not likely to be found in any serious or performance critical production use (at least I hope so!) this summary clearly shows the importance of the buildfarm as well the value of having not-so-mainstream boxes there :-)&lt;br /&gt;
I would be interested in getting details on other weird boxes people have on the farm or are are planning to add ...&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 19 May 2007 14:02:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/13-guid.html</guid>
    
</item>
<item>
    <title>PostgreSQL 8.3 patch status page</title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/12-PostgreSQL-8.3-patch-status-page.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/12-PostgreSQL-8.3-patch-status-page.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=12</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=12</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;In an apparent moment of brain fade I &lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2007-05/msg00250.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;volunteered&lt;/a&gt; to add a 8.3 patch status page to the &lt;a href=&quot;http://developer.postgresql.org/index.php/Main_Page&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;developer wiki&lt;/a&gt;.&lt;br /&gt;
It is synced up to all the outstanding patches that are actively considered for 8.3 and partly based on the &lt;a href=&quot;http://developer.postgresql.org/index.php/Todo:WishlistFor83&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Wishlist for 8.3&lt;/a&gt; and the &lt;a href=&quot;http://developer.postgresql.org/index.php/Todo:WishlistFor84&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Wishlist for 8.4&lt;/a&gt; I have been maintaining for a while now - and I would really like to get some feedback on both.&lt;br /&gt;
While I&#039;m not convinced at all that a wiki is a proper place for keeping this kind of information it might be a start for looking into other more sophisticated tracking tools - at least if I manage to keep up with the review process for the 8.3 cycle :-)&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 05 May 2007 17:28:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/12-guid.html</guid>
    
</item>
<item>
    <title>&quot;cheap&quot; SAN gear </title>
    <link>http://www.kaltenbrunner.cc/blog/index.php?/archives/10-cheap-SAN-gear.html</link>
            <category>hardware</category>
            <category>PostgreSQL</category>
            <category>work</category>
    
    <comments>http://www.kaltenbrunner.cc/blog/index.php?/archives/10-cheap-SAN-gear.html#comments</comments>
    <wfw:comment>http://www.kaltenbrunner.cc/blog/wfwcomment.php?cid=10</wfw:comment>

    <wfw:commentRss>http://www.kaltenbrunner.cc/blog/rss.php?version=2.0&amp;type=comments&amp;cid=10</wfw:commentRss>
    

    <author>nospam@example.com (Stefan Kaltenbrunner)</author>
    <content:encoded>
    &lt;p&gt;The discussion on using &lt;a href=&quot;http://en.wikipedia.org/wiki/Storage_area_network&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;SAN&lt;/a&gt; vs. &lt;a href=&quot;http://en.wikipedia.org/wiki/Direct_access_storage_device&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;DASD&lt;/a&gt; based storage is nearly a religious war(as can be seen in a lot of discussions on &lt;a href=&quot;http://archives.postgresql.org/pgsql-performance/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;pgsql-performance&lt;/a&gt;) and in many ways similar to the infamous emacs vs. vi debate.&lt;br /&gt;
From personal experience I have found the &lt;a href=&quot;http://www-304.ibm.com/jct01004c/systems/support/supportsite.wss/supportresources?brandind=5000028&amp;amp;familyind=5329604&amp;amp;taskind=1&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;IBM DS4300&lt;/a&gt; and IBM DS4300 Turbo (basically the same as the DS4300 but with more memory/cache and a hefty markup in price) quite a reliable and basically maintenance free solution.&lt;/p&gt;

&lt;p&gt;However - for some workloads those types of SAN are not really that appropriate. A DS4300(which is a now withdrawn from marketing) can do only a bit above 100MB/s of seq IO(nearly independent on the number of disks!) per controller(about 135MB/s if used together) which is really not much when one considers how fast modern hard drives are.&lt;/p&gt;

&lt;p&gt;I recently got a SAN Array to play with that looks quite interesting since while expensive it still seems reasonably priced compared to what companies like IBM or others want for &lt;a href=&quot;http://www-03.ibm.com/systems/storage/disk/midrange/index.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;similar gear&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The array I got for testing is basically a non-branded &lt;a href=&quot;http://www.lsi.com/storage_home/products_home/external_raid/3994_storage_system/index.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;LSI/Engenio  3994&lt;/a&gt; with 16 2Gbit 10k 146FC drives and 2GB of battery backed cache per controller.&lt;br /&gt;
It is directly connected via two &lt;a href=&quot;http://support.qlogic.com/support/product_resources.asp?id=934&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;QLogic QLE2460 PCI-Express adapters&lt;/a&gt; to a &lt;a href=&quot;http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-1121516.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;HP DL380 G5&lt;/a&gt; running &lt;a href=&quot;http://www.centos.org&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;CentOS 5&lt;/a&gt; for testing. &lt;br /&gt;
The first impression of the array is a solid one - it looks very familiar for people that are used to the IBM DS4000 storage line and the Management GUI is basically the same (with an Engenio logo in place of the IBM one).&lt;br /&gt;
The controller chassis can hold 16 disks (up from 14 in the older designs) in 3U and the available expansion enclosures have the same capacity and dimensions (up to 6 are supported) and can be added online(untested!) without disruption to ongoing IO.&lt;/p&gt;

&lt;p&gt;Due to the use of disks that are only capable of 2Gbit/s, the speed of the two drive channel loops is also limited to 2Gbit/s (using 4GBit FC drives it can be configured to use 4Gbit/s on the drive channels).&lt;br /&gt;
The following is not meant as a thorough benchmark of neither the array nor PostgreSQL but rather some ad-hoc testing and playing around to get some impression on the overall performance characteristics of the device  and are done using ext3(I&#039;m fully aware of the fact that other file systems - especially XFS - might provide noticeable better streaming performance, but I have a much higher level of trust in ext3 and that&#039;s my choice in production environments) in the default journaling mode.&lt;/p&gt;

&lt;p&gt;In the following test(test case 1) we use two volume groups - each a RAID10 (8 disks) and a RAID0 in the OS and write cache mirroring between the controllers(keeps both controller caches in sync so in case one controller fails the other one can take over). To utilize both controllers the HBAs are set up so that controller A is using on and controller B the other.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
convm004        16G 51121  98 188347  76 97426  28 58961  98 378240  38 732.5   2
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                512 19599  94 257598 100  8272  27 19270  91 331205  99  4879  17
convm004,16G,51121,98,188347,76,97426,28,58961,98,378240,38,732.5,2,512,19599,94,257598,100,8272,27,19270,91,331205,99,4879,17&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and the same with write mirroring disabled for both logical volumes (test case 2):&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
convm004        16G 51372  99 235020  96 122183  35 58880  98 369848  37 723.0   1
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                512 19888  95 256732  99 10037  32 19704  93 332286  99  5541  19
convm004,16G,51372,99,235020,96,122183,35,58880,98,369848,37,723.0,1,512,19888,95,256732,99,10037,32,19704,93,332286,99,5541,19&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;so write mirroring seems to have a 20% penalty for sequential writes and rewriting but not much impact for others - so it might be worth keeping it turned on due to the additional data integrity guarantees it provides .&lt;br /&gt;
It further seems that the device seems to be bottlenecked by the speed of the drive channels (there are two loops in the array head and half the drives are on the one and the other half on the other) due to the 2Gbit disks.&lt;br /&gt;
But it also shows that the devices seems to scale fairly well - until it hit&#039;s the bandwidth limit - at least for RAID10.&lt;/p&gt;

&lt;p&gt;and now for comparison a test using only volume group and a single controller (test case 3):&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
convm004        16G 51346  98 134822  56 69414  17 58651  97 251779  23 758.8   1
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                512 20048  91 259694  99  5846  18 18707  84 338671  99  2935   9
convm004,16G,51346,98,134822,56,69414,17,58651,97,251779,23,758.8,1,512,20048,91,259694,99,5846,18,18707,84,338671,99,2935,9&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;so let&#039;s see what PostgreSQL is able to do in terms of sequential IO on such device:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;bench=# select version();
                                                   version                                                    
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 8.3devel on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.1.1 20070105 (Red Hat 4.1.1-52)
(1 row)

bench=# &lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;simple sequential scan on a large table (pgbench schema generated with a scale of 10000) using only a single controller (same setup as in test case 3):&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;bench=# select count(1) from accounts;
   count    
------------
 1000000000
(1 row)

Time: 619865.939 ms
bench=# select pg_relation_size(&#039;accounts&#039;)/619::float;
     ?column?     
------------------
 216998258.558966
(1 row)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;so we are getting about 215MB/s out  of 250MB/s which looks ok.&lt;/p&gt;

so what happens with software raid 0 over two 8 disk RAID10 volume groups on different controllers (same setup as test case 1):&lt;br /&gt;
 
&lt;pre&gt;&lt;code&gt;bench=# select count(1) from accounts;
   count    
------------
 1000000000
(1 row)

Time: 478785.617 ms
bench=# select pg_relation_size(&#039;accounts&#039;)/478::float;
     ?column?     
------------------
 281008205.121339
(1 row)

Time: 265.791 ms&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;so that is more interesting - it seems that PostgreSQL is getting CPU bottlenecked(the array/file system can do &amp;gt;370MB/s) here and those ~280MB/s are pretty much in line with what &lt;a href=&quot;http://archives.postgresql.org/pgsql-performance/2006-12/msg00448.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Luke&lt;/a&gt; usually quotes (PostgreSQL getting CPU bottlenecked at around 300MB/s even on very fast AMD Opteron based boxes).&lt;/p&gt;

&lt;p&gt;for those curious here are some other random tests (uncommented so judge by yourself):&lt;/p&gt;

&lt;p&gt;single raid 5 with 4 logical volumes (each 500GB) and software RAID0 in the OS - two volumes per channel&lt;br /&gt;

&lt;pre&gt;&lt;code&gt;Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
convm004        16G 50978  99 208098  82 89274  25 59058  98 236993  24 488.5   1
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                512 20860  94 258368  99  7770  25 21087  95 335918 100  4291  14
convm004,16G,50978,99,208098,82,89274,25,59058,98,236993,24,488.5,1,512,20860,94,258368,99,7770,25,21087,95,335918,100,4291,14
&lt;/code&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;p&gt;A single RAID5 array over all 16 disks and two identically sized logical volumes each around 1TB in size.&lt;/p&gt;

&lt;p&gt;bonnie++:&lt;/p&gt;

&lt;p&gt;on one LUN:&lt;br /&gt;

&lt;pre&gt;&lt;code&gt;Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
convm004        16G 51245  98 121190  49 69406  17 56902  94 256111  22 840.9   1
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                512 20781  94 235507  91  7233  23 18685  84 338017  99  4125  14
&lt;/code&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;p&gt;using both LUNs and software RAID0:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
convm004        16G 51423  99 204881  84 83740  23 59040  98 232573  23 554.7   1
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                512 20303  93 259481  99  7230  23 20357  93 337312 100  3793  13
convm004,16G,51423,99,204881,84,83740,23,59040,98,232573,23,554.7,1,512,20303,93,259481,99,7230,23,20357,93,337312,100,3793,13
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;with disabled write cache mirroring:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
convm004        16G 51751  99 242637  97 105392  30 58859  98 235541  23 563.2   1
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                512 21034  95 255377  99  6485  21 19269  88 337095  99  4119  14
convm004,16G,51751,99,242637,97,105392,30,58859,98,235541,23,563.2,1,512,21034,95,255377,99,6485,21,19269,88,337095,99,4119,14&lt;/code&gt;&lt;/pre&gt;

 
    </content:encoded>

    <pubDate>Mon, 30 Apr 2007 16:51:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.kaltenbrunner.cc/blog/index.php?/archives/10-guid.html</guid>
    
</item>

</channel>
</rss>