<?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>zillablog - postgres</title>
    <link>http://www.xzilla.net/</link>
    <description></description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
    <managingEditor>xzilla@users.sourceforge.net</managingEditor>
<webMaster>xzilla@users.sourceforge.net</webMaster>
<ttl>60</ttl>
<pubDate>Thu, 24 Nov 2011 07:26:26 GMT</pubDate>

    <image>
        <url>http://www.xzilla.net/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: zillablog - postgres - </title>
        <link>http://www.xzilla.net/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Cloudy With A Chance Of Scale</title>
    <link>http://www.xzilla.net/blog/2011/Nov/Cloudy-With-A-Chance-Of-Scale.html</link>
            <category>devops</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Nov/Cloudy-With-A-Chance-Of-Scale.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=513</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=513</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    Recently I met with a company looking for some long term advice on building out their database infrastructure. They had a pretty good mix of scaling vertically for overall architecture, while scaling horizontally by segmenting customers into their own schemas. The had a failover server in place, but as the business was growing, they were looking at ways to better future proof operations against growth, and also build more redundancy into the system, including multi-datacenter redundancy. After talking with them for a bit, I drew up a radical solution: &quot;To The Cloud!&quot;&lt;br /&gt;
&lt;br /&gt;
I think I am generally considered a cloud skeptic. Most of how we are taught to scale systems and databases from a technical standpoint doesn&#039;t work well in the cloud. I mean, if you have a good methodology for problem solving you can make a lot of improvements in any environment; we&#039;ve certainly seen that with &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=538&amp;amp;entry_id=513&quot; title=&quot;http://omniti.com/does&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/does&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;customers&lt;/a&gt; we&#039;ve worked with at OmniTI. But if you are just into looking at low-level numbers, or optimizing performance around disk i/o (generally the most common problem in databases), those methods just aren&#039;t going to be as effective in the cloud. That is not to say that if you are willing to embrace some of the properties of what makes for successful cloud operations, then I think it can be a pretty successful strategy. One of the key factors which I often see overlooked in most &quot;will the cloud work for me&quot; discussions is whether or not your business lends itself well to the way cloud operations work. In the case of this particular client, it&#039;s a really good match.&lt;br /&gt;
&lt;br /&gt;
First, this company already segments their customer data, so there is a natural way to split up the database and operations. Second, they don&#039;t do any significant amount of cross customer data, which means they don&#039;t have to re-engineer those bits to make the switch. Further, the customers have different dataset sizes, different access patterns, and different operational needs, and most importantly, they pay different rates based on desired levels of service. This matches up extremely well with a service like &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=539&amp;amp;entry_id=513&quot; title=&quot;https://postgres.heroku.com/&quot;  onmouseover=&quot;window.status=&#039;https://postgres.heroku.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;postgres.heroku.com&lt;/a&gt;. Imagine that, instead of buying that next bigger server, instead of setting up &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=540&amp;amp;entry_id=513&quot; title=&quot;https://github.com/omniti-labs/omnipitr&quot;  onmouseover=&quot;window.status=&#039;https://github.com/omniti-labs/omnipitr&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;cross-data-center WAL shipping&lt;/a&gt;, instead of buying machines in a different colo somewhere across the country, instead of all that, they could instead buy individual servers with Heroku, sized according to customer data size and performance needs. For smaller customers you start with minimal resources, and as the customer grows, you dial up the server instance size. Furthermore, you get automated failover setups, and an also easily store backups in a different datacenter based on given regions. You can even work to match customers to different availability zones based on their users endpoints. And if you want to do performance testing or development work, you can create copies of the production databases and hack away. These are the kinds of services OmniTI has built on top of Solaris, Zones, and ZFS, and believe me they will change the way you think about database operations.&lt;br /&gt;
&lt;br /&gt;
Of course, it&#039;s not all ponies and rainbows. You still have to move clients on to the new infrastructure, but that should be pretty manageable. You&#039;d also need to build out some infrastructure for &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=541&amp;amp;entry_id=513&quot; title=&quot;http://circonus.com&quot;  onmouseover=&quot;window.status=&#039;http://circonus.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;monitoring&lt;/a&gt;, and you&#039;ll need to be able juggle operational changes. Some of this is not significantly different; pushing DDL changes across schemas is pretty similar to doing it across servers, but you&#039;ll probably want to create some toolsets around this. Also you&#039;re less likely to bear fruit from micro-optimizations; that doesn&#039;t mean that you throw away your &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=542&amp;amp;entry_id=513&quot; title=&quot;http://pgfouine.projects.postgresql.org/&quot;  onmouseover=&quot;window.status=&#039;http://pgfouine.projects.postgresql.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;pgfouine&lt;/a&gt; reports, but the return on performance improvements and query optimization will be much lower. That said, if you can get good enough performance for your largest customers (and remember, you&#039;ll have easy capabilities for distributing read loads), you end up an extremely scalable system, not just technically, but from a business standpoint as well. If you aren&#039;t building this on top of Heroku&#039;s Postgres service, the numbers will probably look different, but the idea that you&#039;ve matched your infrastructure capabilities to a significant range of possible growth patterns should be compelling for both suits and the people who maintain the systems. 
    </content:encoded>

    <pubDate>Wed, 23 Nov 2011 15:57:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Nov/513.html</guid>
    
</item>
<item>
    <title>Checkpoints, Buffers, and Graphs</title>
    <link>http://www.xzilla.net/blog/2011/Nov/Checkpoints,-Buffers,-and-Graphs.html</link>
            <category>bwpug</category>
            <category>devops</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Nov/Checkpoints,-Buffers,-and-Graphs.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=512</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=512</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    Last night at &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=534&amp;amp;entry_id=512&quot; title=&quot;http://www.meetup.com/Baltimore-Washington-PostgreSQL-Users-Group/&quot;  onmouseover=&quot;window.status=&#039;http://www.meetup.com/Baltimore-Washington-PostgreSQL-Users-Group/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;BWPUG&lt;/a&gt;, Greg Smith gave his talk on &quot;Managing High Volume Writes with Postgres&quot;, which dives deep into the intersection of checkpoint behavior and shared buffers, and also into dealing with vacuum. One of the things I always like about Greg&#039;s talks are it&#039;s a good way to measure what &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=537&amp;amp;entry_id=512&quot; title=&quot;http://omniti.com/does/data-management&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/does/data-management&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;we&#039;ve&lt;/a&gt; learned between reading code and running large scale / highly loaded system in the wild. Even in the cases where we disagree, it&#039;s good to get a different point of view on things. If you manage Postgres systems and get the chance to see this talk, it&#039;s worth taking a look (and I suspect he&#039;ll post the slides up somewhere this week, if they aren&#039;t already available). &lt;br /&gt;
&lt;br /&gt;
One of the other cool things that came out of the talk was one of the guys on my team again validating why we love working with &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=536&amp;amp;entry_id=512&quot; title=&quot;http://circonus.com/&quot;  onmouseover=&quot;window.status=&#039;http://circonus.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Circonus&lt;/a&gt;. We have an unofficial slogan that with Circonus, &quot;if you can write a query, you can make a graph&quot;. Well, Keith noticed that we didn&#039;t have any monitoring for the background writer info on one of our recently upgraded from 8.3-&gt;9.1 multi-TB Postgres, so he jump into Circonus and just like that, we had metrics and a graph faster than Greg could move off the slide. This will be awesome once we accumulate some more data, but here&#039;s a screenshot I took from last night while we were in the talk:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;https://img.skitch.com/20111116-81tswtyj38r972ex53dina3i6h.jpg&quot; alt=&quot;Circonus | View Graph&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Yay graphs!&lt;br /&gt;
&lt;br /&gt;
Update: Shortly after posting, Keith mentioned that he had updated the graph to speak in MB rather than Buffers. So, here is an updated screenshot with friendlier output and more data. (Note that Phil, one of our other DBA&#039;s, also flipped the buffers allocated to a right axis as well). &lt;br /&gt;
&lt;img src=&quot;https://img.skitch.com/20111116-e6x3b1cpw3fg4jqcx2r92cb71r.jpg&quot; alt=&quot;Circonus | View Graph&quot; /&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 16 Nov 2011 11:18:54 -0500</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Nov/512.html</guid>
    
</item>
<item>
    <title>Understanding Postgres Durability Options</title>
    <link>http://www.xzilla.net/blog/2011/Nov/Understanding-Postgres-Durability-Options.html</link>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Nov/Understanding-Postgres-Durability-Options.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=511</wfw:comment>

    <slash:comments>8</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=511</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    Most people tend to think of Postgres as a very conservative piece of software, one designed to &quot;Not Lose Your Data&quot;. This reputation is probably warranted, but the other side of that coin is that Postgres also suffers when it comes to performance because it chooses to be safe with your data out of the box. While a lot of systems tend to side towards being &quot;fast by default&quot;, and leaving durability needs as an exercise to the user, the Postgres community takes the opposite approach. I think I heard it put once as &quot;We care more about your data than our benchmarks&quot;.&lt;br /&gt;
&lt;br /&gt;
That said, Postgres does have several options that can be used for performance gains in the face of durability tradeoffs. While only you can know the right mix for your particular data needs, it&#039;s worth reviewing and understanding the options available.&lt;br /&gt;
&lt;br /&gt;
&quot;by default&quot; - OK, this isn&#039;t a real setting, but you should understand that, by default, Postgres will work to ensure full ACID guarantees, and more specifically that any data that is part of a COMMIT is immediately synched to disk. This is of course the slowest option you can chose, but given it&#039;s also a popular code path the postgres devs have worked hard to optimize this scenario.&lt;br /&gt;
&lt;br /&gt;
&quot;synchronous commits&quot; - By default synchronous_commit is turned on, meaning all commits are fsyncd to disk as they happen. The first trade-off of durability for performance should start here. Turning off synchronous commits introduces a window between when the client is notified of commit success, and when the data is truly pushed to disk. In affect, it let&#039;s the database cheat a little. The key to this parameter is that, while you might introduce data loss, you would never introduce data corruption. Since it tends to produce significantly faster operations for write based workloads, many people find that is a durability tradeoff they are willing to make. As an added bonus, if you think that most of your code could take advantage of this but you have some certain part of your system that you can&#039;t afford the tradeoff, this setting can be set per transaction, so you can ensure durability in the specific cases where you need it. That level of fined grained control is pretty awesome.&lt;br /&gt;
&lt;br /&gt;
&quot;delayed commits&quot; - Similar sounding in theory to synchronous_commit, the settings for &quot;commit_siblings&quot; and &quot;commit_delay&quot; try to provide &quot;grouped commits&quot;, meaning multiple transactions are committed with a single fsync() call. While this certainly has the possibility of increasing performance in a heavily loaded system, when the system is not loaded these will actually slow down commits, and that overall lack of granularity compared to synchronous_commit usually means you should favor turning off synchronous_commit and bypass these settings when trading off durability for performance. &lt;br /&gt;
&lt;br /&gt;
&quot;non-synching&quot; - Fsync was the original parameter for durability vs performance tradeoffs, and it can still be useful in some environments today. When turned off, postgres throws out all logic of synchronizing write activity with command input. This does mean that running in this mode, in the event of hardware or server failure, you can end up with corrupt, not just missing, but corrupt data. In many cases this might not happen, or might happen in an area that does matter (say a corrupt index, that you can just REINDEX), but it could also happen within a system catalog, which can be disastrous. This leads many a Postgres DBA to tell you to never turn this off, but I&#039;d say ignore that advice and evaluate things based on the tradeoffs of durability vs performance that are right for you. Consider this; if you have a standby set up (WAL based, Slony, Bucardo, etc...), and you are designing for a low MTTR, chances are in most cases hardware failure on the primary will lead to a near immediate switch to the standby anyway, so a corrupt database that you have already moved beyond will be irrelevant to your operations. This assumes that you can afford to lose some data, but if you are using asynchronous replication, you&#039;ve already come to that conclusion. Of course, you are giving up single node durability, which might not be worth the tradeoffs in performance, especially since you can get most of the performance improvements with turning off synchronous_commits. In some situations you might fly in the face of conventional wisdom and turn off fsync in production, but leave it on in development; imagine an architecture where you&#039;ve built redundancy on top of ec2 (so a server crash means a lost node), but you are developing on a desktop machine where you don&#039;t want to have to rebuild in the case of a power failure, and don&#039;t want to run multiple nodes.&lt;br /&gt;
&lt;br /&gt;
Life is a series of tradeoffs between cost and efficiency, and Postgres tries to give you the flexibility you need to adjust to fit your particular situation. If you are setting up a new system, take a moment to think about the needs of your data. And before you replace Postgres with a new system, verify what durability guarantees that new system is giving you; it might be easier to set Postgres to something comparable. If you are trying to find the right balance on your own situation, please feel free to post your situation in the comments, and I&#039;ll be happy to try to address it. 
    </content:encoded>

    <pubDate>Tue, 08 Nov 2011 06:58:05 -0500</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Nov/511.html</guid>
    
</item>
<item>
    <title>PGDay Denver 2011 Wrap-Up</title>
    <link>http://www.xzilla.net/blog/2011/Oct/PGDay-Denver-2011-Wrap-Up.html</link>
            <category>conf</category>
            <category>pgus</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Oct/PGDay-Denver-2011-Wrap-Up.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=510</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=510</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    Last Friday was the first &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=526&amp;amp;entry_id=510&quot; title=&quot;https://pgday.consistentstate.com/&quot;  onmouseover=&quot;window.status=&#039;https://pgday.consistentstate.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PGDay Denver&lt;/a&gt;, a regional one day Postgres conference, put on by Kevin Kempter and the folks who run the Denver Postgres User Group. We had between 50 and 75 people, which is pretty good turnout for a first time event. I gave two talks, my &quot;Essential PostgreSQL.conf&quot; talk (&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=527&amp;amp;entry_id=510&quot; title=&quot;http://www.slideboom.com/presentations/433120/The-Essential-postgresql.conf&quot;  onmouseover=&quot;window.status=&#039;http://www.slideboom.com/presentations/433120/The-Essential-postgresql.conf&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;slides here&lt;/a&gt;) and my &quot;Advanced WAL File Management with OmniPITR&quot; talk (&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=532&amp;amp;entry_id=510&quot; title=&quot;http://www.slideboom.com/presentations/433126/Advanced-WAL-File-Management-With-OmniPITR&quot;  onmouseover=&quot;window.status=&#039;http://www.slideboom.com/presentations/433126/Advanced-WAL-File-Management-With-OmniPITR&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;slides here&lt;/a&gt;). It was my first time in Denver (outside of the airport at least), and I have to say that the city is very well laid out for conference goers. The one tricky part was getting from the airport to downtown, but once you are downtown, their are plenty of &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=533&amp;amp;entry_id=510&quot; title=&quot;http://wynkoop.com/&quot;  onmouseover=&quot;window.status=&#039;http://wynkoop.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;good places to eat/drink&lt;/a&gt;, plenty of hotels, and the conference center itself is massive. After a couple nights on the town, I was honestly left surprised that I hadn&#039;t been to a conference here before (maybe &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=529&amp;amp;entry_id=510&quot; title=&quot;http://www.oscon.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.oscon.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;OSCon&lt;/a&gt; should swing through some year?) and hoping I&#039;ll get the chance to go back. In any case, thanks to the PGDay Denver folks for putting together a nice event, and hopefully we&#039;ll see others follow their lead with more PGDay&#039;s in their part of the country.  
    </content:encoded>

    <pubDate>Mon, 24 Oct 2011 14:24:11 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Oct/510.html</guid>
    
</item>
<item>
    <title>On Clouds And Data</title>
    <link>http://www.xzilla.net/blog/2011/Aug/On-Clouds-And-Data.html</link>
            <category>conf</category>
            <category>mysql</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Aug/On-Clouds-And-Data.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=507</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=507</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    I&#039;m sitting in SFO tonight, awaiting my return trip back to Hurricane Pending Maryland. (As a former Floridian, I must of course scoff at any notions that this hurricane is significant). Walking through the airport I noticed a large billboard about &quot;Big Data and the Cloud&quot;. This is the kind of billboard you only see in Silicon Valley; I don&#039;t see signs like that in Portland or Ottawa, and certainly not when I had to change flights in Detroit this year.&lt;br /&gt;
&lt;br /&gt;
Anyway, these two buzz words aren&#039;t a local phenomenon, and are actually taking the tech world by storm. Big Data has become serious enough that there are multiple conferences now for folks interested in the topic. And cloud, well, perhaps harder to define, but more and more businesses are moving to the cloud every day. The problem here is that, most of the traditional ideas on big data run entirely counter to the ideas that work well in the cloud.&lt;br /&gt;
&lt;br /&gt;
Last spring I moderated a panel PGEast in New York that focused on Postgres in the cloud. As someone who works on multi-terabyte systems, and someone who deals with cloud servers on at least a semi-regular basis, I tried to prod and poke my panelists into sharing their take on how they see Postgres&#039;s role in the cloud. Not too surprisingly, the idea behind &quot;Big Data&quot; on Postgres in the cloud was not a particularly popular one. The tools you need to do the job effectively with Postgres just aren&#039;t there. Not to say you can&#039;t try, but so far I haven&#039;t seen many wild successes.&lt;br /&gt;
&lt;br /&gt;
Next month at Surge though, I&#039;m going to be involved in another panel focusing on &quot;&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=519&amp;amp;entry_id=507&quot; title=&quot;http://omniti.com/surge/2011/panel-discussion/pushing-big-data-to-the-cloud&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011/panel-discussion/pushing-big-data-to-the-cloud&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Pushing Big Data To The Cloud&lt;/a&gt;&quot;. This time though I&#039;m turning over moderating duties to long-time thought leader in the MySQL community Baron Schwartz. Joining me on the panel are several folks who all have a stake in the idea of Big Data in the cloud;  John Hugg and Philip Wickline from VoltDB and Hadapt, respectivly, two new database vendors built with scale-out in mind; Bryan Cantrill, VP of Engineering at Joyant, a cloud provider with thier own &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=520&amp;amp;entry_id=507&quot; title=&quot;http://joyeur.com/2011/04/24/magical-block-store-when-abstractions-fail-us/&quot;  onmouseover=&quot;window.status=&#039;http://joyeur.com/2011/04/24/magical-block-store-when-abstractions-fail-us/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;strong opinions on dealing with data in the clouds&lt;/a&gt;, and Kate Matsudaira, someone who is currently managing those multi-TB databases, all in the cloud, over at SEOMoz. This should be a really good mix of people using different technology, with different biases against the problems involved. If you&#039;re looking to work on Big Data in The Cloud, I hope you&#039;ll join us, it should be a lot of fun. 
    </content:encoded>

    <pubDate>Fri, 26 Aug 2011 02:03:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Aug/507.html</guid>
    
</item>
<item>
    <title>Paying Attention Pays Off</title>
    <link>http://www.xzilla.net/blog/2011/Aug/Paying-Attention-Pays-Off.html</link>
            <category>devops</category>
            <category>mysql</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Aug/Paying-Attention-Pays-Off.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=505</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=505</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    I often run my ops like I take care of data; a bit overzealously. Case in point, when setting up a new database, I like to throw on a metric for database size, which gets turned into both a graph for trending, but also an alert on database size. Everyone is always on board with trending database size in a graph, but the alert is one people tend to question. This is not entirely without justification.&lt;br /&gt;
&lt;br /&gt;
On a new database, with no data or activity, deciding when to alert is pretty fuzzy. When we set up a new client within our &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=511&amp;amp;entry_id=505&quot; title=&quot;http://omniti.com/does/architecture-and-infrastructure&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/does/architecture-and-infrastructure&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;managed hosting service&lt;/a&gt;, I usually just toss up an arbitrary number, like 2GB or something. The idea isn&#039;t that a 2GB database is a problem, it&#039;s that when we cross 2GB, we should probably take a look at the trending graph and do a projection. Depending on how things look, we&#039;ll bump up the threshold on the alert to a new level, based on when we think we might want to look at things again. For example, in this graph we take a month long sample, and then project it out for three months. We can then set a new threshold somewhere along that line.  &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=512&amp;amp;entry_id=505&quot; title=&quot;https://skitch.com/xzilla/fxkqg/projected-db-size&quot;  onmouseover=&quot;window.status=&#039;https://skitch.com/xzilla/fxkqg/projected-db-size&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;img src=&quot;https://img.skitch.com/20110815-tjp62b8rwpfkrb4qx5y1ifqacq.jpg&quot; alt=&quot;projected db size&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
While this is good for capacity planning, there&#039;s more that can be gained from this process. The act of alerting forces us to pay attention. And if we get notices before our expectations, we go back in and re-evaluate the data patterns. Of course, some times people will question this. Getting a notice that your database has passed 4GB can seem pointless when you have 100+ GB of free space on your disks. And besides, isn&#039;t that what free space monitors are for?&lt;br /&gt;
&lt;br /&gt;
Here is a graph of another of our clients database growth. Their data size is not particularly large (don&#039;t confuse scalability with size; it doesn&#039;t take a large database to have scalability issues), but what&#039;s important is that we kept getting notices that the size was growing, and when talking with the developers, no one thought it should be growing at nearly this rate. Eventually we were able to track down the problem to purging job that had gone awry. Once that was fixed, the growth pattern leveled off completely (and the database size returned to the tiny amount that was expected!)&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=513&amp;amp;entry_id=505&quot; title=&quot;https://skitch.com/xzilla/fx89j/fix-db-size&quot;  onmouseover=&quot;window.status=&#039;https://skitch.com/xzilla/fx89j/fix-db-size&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;img src=&quot;https://img.skitch.com/20110815-dmg7u4x174m8pdxefaugc5ypmf.jpg&quot; alt=&quot;Fix DB Size&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 15 Aug 2011 10:57:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Aug/505.html</guid>
    
</item>
<item>
    <title>A funny thing happened on the way to September</title>
    <link>http://www.xzilla.net/blog/2011/Aug/A-funny-thing-happened-on-the-way-to-September.html</link>
            <category>conf</category>
            <category>devops</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Aug/A-funny-thing-happened-on-the-way-to-September.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=506</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=506</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    In spite of all previous notions to the contrary, thanks to some last minute wrangling by the conference organizers, I will be making the trek out to Chicago this September for &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=514&amp;amp;entry_id=506&quot; title=&quot;http://postgresopen.org/2011/home/&quot;  onmouseover=&quot;window.status=&#039;http://postgresopen.org/2011/home/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Postgres Open&lt;/a&gt; after all. I had been planning to sit out the event and just stay focused on &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=515&amp;amp;entry_id=506&quot; title=&quot;http://omniti.com/surge/2011&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Surge&lt;/a&gt; (which, I must say, looks even more kick ass than last year), but after looking at the schedule, and some persuading at &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=516&amp;amp;entry_id=506&quot; title=&quot;http://oscon.com/&quot;  onmouseover=&quot;window.status=&#039;http://oscon.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;OSCon&lt;/a&gt;, I&#039;m very excited about what has been put together, and look forward to seeing many of my fellow Postgres community members once again. &lt;br /&gt;
&lt;br /&gt;
Oh, and in case you were wondering, I&#039;ll be reprising my talk from this years &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=517&amp;amp;entry_id=506&quot; title=&quot;http://velocityconf.com/velocity2011&quot;  onmouseover=&quot;window.status=&#039;http://velocityconf.com/velocity2011&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Velocity conference&lt;/a&gt;, &quot;&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=518&amp;amp;entry_id=506&quot; title=&quot;http://postgresopen.org/2011/schedule/presentations/97/&quot;  onmouseover=&quot;window.status=&#039;http://postgresopen.org/2011/schedule/presentations/97/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Managing Databases in a DevOps Environment&lt;/a&gt;&quot;. At Velocity, the talk was intended to highlight how people already familiar with DevOps should approach their databases systems. I&#039;m not sure how well &quot;DevOps&quot; is understood within the Postgres community, so I think I&#039;ll try to emphasize the differences between managing databases and traditional services, to hopefully give better expectations to DBA&#039;s whose organizations might be undergoing such a change. If you&#039;re going to be at Postgres Open and are interested in the topic, I&#039;d love to hear your feedback on what aspects of this topic you&#039;re most interested in. (PS. I&#039;ll also be heading to the Velocity Summit next week in San Francisco, for those attending, I&#039;d love to hear your thoughts on this topic as well). 
    </content:encoded>

    <pubDate>Wed, 17 Aug 2011 11:13:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Aug/506.html</guid>
    
</item>
<item>
    <title>Maybe they just like it better?</title>
    <link>http://www.xzilla.net/blog/2011/Aug/Maybe-they-just-like-it-better.html</link>
            <category>mysql</category>
            <category>osx</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Aug/Maybe-they-just-like-it-better.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=504</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=504</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    There has been a lot of chatter the past week about Apple replacing MySQL with Postgres in the new OSX Lion Server [&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=502&amp;amp;entry_id=504&quot; title=&quot;http://www.itworld.com/it-managementstrategy/189491/mysql-departs-lion-oracle-blame&quot;  onmouseover=&quot;window.status=&#039;http://www.itworld.com/it-managementstrategy/189491/mysql-departs-lion-oracle-blame&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;U.S.&lt;/a&gt; | &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=503&amp;amp;entry_id=504&quot; title=&quot;http://www.theregister.co.uk/2011/08/02/apple_dumps_mysql_from_mac_os_x_server/&quot;  onmouseover=&quot;window.status=&#039;http://www.theregister.co.uk/2011/08/02/apple_dumps_mysql_from_mac_os_x_server/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;England&lt;/a&gt; | &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=504&amp;amp;entry_id=504&quot; title=&quot;http://topnews.net.nz/content/217262-apple-removes-mysql-mac-os-x-lion-server&quot;  onmouseover=&quot;window.status=&#039;http://topnews.net.nz/content/217262-apple-removes-mysql-mac-os-x-lion-server&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt; New Zealand &lt;/a&gt;]. Most of it seems to tie things back to Oracle&#039;s new stewardship over the MySQL project, a lot of that stemming from what I would say is FUD from the EnterpriseDB folks, regarding doom and gloom about the way Oracle might handle the project in the future. Not that the FUD is entirely unwarrented; While Oracle has done a pretty decent job with MySQL so far, looking at what Oracle &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=505&amp;amp;entry_id=504&quot; title=&quot;http://sstallion.blogspot.com/2010/08/opensolaris-is-dead.html&quot;  onmouseover=&quot;window.status=&#039;http://sstallion.blogspot.com/2010/08/opensolaris-is-dead.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;has done to projects like Open Solaris&lt;/a&gt; certainly would make one queasy. And yes, &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=510&amp;amp;entry_id=504&quot; title=&quot;http://www.omniti.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.omniti.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;we&#039;ve&lt;/a&gt; seen an uptick in people asking for help with Oracle/MySQL to Postgres migrations since the acquisition of Sun. That said, I have an alternative theory. Maybe they just like it better?&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.xzilla.net/blog/2011/Aug/Maybe-they-just-like-it-better.html#extended&quot;&gt;Continue reading &quot;Maybe they just like it better?&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 08 Aug 2011 08:37:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Aug/504.html</guid>
    
</item>
<item>
    <title>Actually, I am not going to PGWest (and you might not want to either)</title>
    <link>http://www.xzilla.net/blog/2011/Jul/Actually,-I-am-not-going-to-PGWest-and-you-might-not-want-to-either.html</link>
            <category>conf</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Jul/Actually,-I-am-not-going-to-PGWest-and-you-might-not-want-to-either.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=503</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=503</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    OK, I am just trying to set the record straight. People are still confused thinking I might be going to PGWest, but I&#039;m not. I know where the confusion comes from; on the PG West website, there is a picture of me in the banner graphic; which makes people think I am going to PG West. This is not unreasonable, it&#039;s just untrue. For what it&#039;s worth, I did ask Joshua to remove my picture when people first started asking me if I was going, and he said he would, but that was well over a month ago. I do think he will take it down, but in the mean time, I figure I should at least put some effort into clarifying things myself. So, to be clear, I will not be going to PG West this year. Also, to be clear, it&#039;s not that I have anything against PG West per se. I&#039;ve gone to multiple PG West cons in the past, and I suspect I&#039;ll probably go to more in the future. It&#039;s just that this year, I&#039;ve got something better to go to. That something is Surge.              &lt;br /&gt;
&lt;br /&gt;
What is Surge?&lt;br /&gt;
&lt;br /&gt;
Surge is the premeire conference on internet scalability. Now, I have to disclose, I am affiliated with the conference, but this conference really stands on it&#039;s own merits, no question. Now in it&#039;s second year, Surge packs an incredible lineup of people leading large scale operations on the net. Reading through the speakers list, I see companies like &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=493&amp;amp;entry_id=503&quot; title=&quot;http://omniti.com/surge/2011/speakers/daniel-austin&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011/speakers/daniel-austin&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Yahoo&lt;/a&gt;, &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=494&amp;amp;entry_id=503&quot; title=&quot;http://omniti.com/surge/2011/speakers/artur-bergman&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011/speakers/artur-bergman&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Wikia&lt;/a&gt;, &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=495&amp;amp;entry_id=503&quot; title=&quot;http://omniti.com/surge/2011/speakers/wez-furlong&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011/speakers/wez-furlong&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Message Systems&lt;/a&gt;, &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=496&amp;amp;entry_id=503&quot; title=&quot;http://omniti.com/surge/2011/speakers/poul-henning-kamp&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011/speakers/poul-henning-kamp&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Varnish&lt;/a&gt;, &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=497&amp;amp;entry_id=503&quot; title=&quot;http://omniti.com/surge/2011/speakers/gavin-roy&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011/speakers/gavin-roy&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;MyYearbook&lt;/a&gt;, &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=498&amp;amp;entry_id=503&quot; title=&quot;http://omniti.com/surge/2011/speakers/baron-schwartz&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011/speakers/baron-schwartz&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Percona&lt;/a&gt;, &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=499&amp;amp;entry_id=503&quot; title=&quot;http://omniti.com/surge/2011/speakers/ross-snyder&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011/speakers/ross-snyder&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Etsy&lt;/a&gt;. If you are trying to grow at scale, you can learn a lot from this crowd.      &lt;br /&gt;
&lt;br /&gt;
Yeah, but I&#039;m a DBA&lt;br /&gt;
&lt;br /&gt;
So most people going to PGWest are probably DBA&#039;s, or at least work closely with Postgres, so it makes sense for them to go to PGWest; I get that. But here is why you may not want to. The thing about Surge is that, while it isn&#039;t a database conference per se, a fair amount of the content does revolve around managing data. Let&#039;s face it, if you are running a website at scale, chances are you have to deal with large amounts of data. Whether it&#039;s massive data on disk, or dealing with massive throughput of data, or trying to figure out how to visulaize all that data, Surge has it covered. And what I find most intriguing is that because Surge is not focused on any particular technology, you get to see both problems and solutions from different angles, which I think helps to learn even more. Of course, you don&#039;t have to take my word for it; scan &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=500&amp;amp;entry_id=503&quot; title=&quot;http://omniti.com/surge/2011/speakers&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011/speakers&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;the speakers list&lt;/a&gt;, check out the talk profiles, and see if there isn&#039;t something there looks awesome. &lt;br /&gt;
&lt;br /&gt;
See you in September&lt;br /&gt;
&lt;br /&gt;
In any case, record set straight. You know where I&#039;ll be, I hope to see you then. Oh, and in case you need incentive, &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=501&amp;amp;entry_id=503&quot; title=&quot;http://omniti.com/surge/2011/register&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2011/register&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;early bird pricing&lt;/a&gt; is still in effect until the end of July. Get on it! 
    </content:encoded>

    <pubDate>Tue, 05 Jul 2011 23:02:50 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Jul/503.html</guid>
    
</item>
<item>
    <title>PGEast Slides Available On Slideshare</title>
    <link>http://www.xzilla.net/blog/2011/Apr/PGEast-Slides-Available-On-Slideshare.html</link>
            <category>conf</category>
            <category>pgus</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Apr/PGEast-Slides-Available-On-Slideshare.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=500</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=500</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    I think I&#039;m just about dug out from last weeks &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=484&amp;amp;entry_id=500&quot; title=&quot;https://www.postgresqlconference.org/2011/east/&quot;  onmouseover=&quot;window.status=&#039;https://www.postgresqlconference.org/2011/east/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;NYC trip for PGEast&lt;/a&gt;. I have to say I had a good time at the conference, although I was kept busy enough not to be able to get to see nearly as many presentations as I would have liked. One thing I did walk away with was a renewed appreciation for the projects we get to work on at &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=485&amp;amp;entry_id=500&quot; title=&quot;http://www.omniti.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.omniti.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;OmniTI&lt;/a&gt;. I angled most of my talks toward PostgreSQL 9.0, going in thinking that a majority of people would have probably made the move already. Apparently that isn&#039;t the case, which in retrospect seems obvious; a majority of our customers still run some 8.x version of Postgres, as we work to vet applications and find the right windows to make their upgrades happen. Still, we are fortunate to have some clients who are very aggressive when it comes to server versioning, and we&#039;re lucky enough to get to run a healthy amount of Postgres 9, in some cases with fairly complex distributed server arrangements. &lt;br /&gt;
&lt;br /&gt;
In any case, as per the title of this post, slides for my talks are now up on &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=486&amp;amp;entry_id=500&quot; title=&quot;http://www.slideshare.net/xzilla&quot;  onmouseover=&quot;window.status=&#039;http://www.slideshare.net/xzilla&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;slide share&lt;/a&gt;, feel free to peruse, and if you have any questions please let me know.  
    </content:encoded>

    <pubDate>Sun, 03 Apr 2011 00:32:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Apr/500.html</guid>
    
</item>
<item>
    <title>Upserting via Writeable CTE</title>
    <link>http://www.xzilla.net/blog/2011/Mar/Upserting-via-Writeable-CTE.html</link>
            <category>mysql</category>
            <category>postgres</category>
            <category>sql</category>
    
    <comments>http://www.xzilla.net/blog/2011/Mar/Upserting-via-Writeable-CTE.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=499</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=499</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    Earlier today my colleague Depesz posted &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=483&amp;amp;entry_id=499&quot; title=&quot;http://www.depesz.com/index.php/2011/03/16/waiting-for-9-1-writable-cte/&quot;  onmouseover=&quot;window.status=&#039;http://www.depesz.com/index.php/2011/03/16/waiting-for-9-1-writable-cte/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;a nice write up showing one of the use cases&lt;/a&gt; for the new 9.1 feature, &quot;Writable CTE&#039;s&quot;.  It certainly shows one handy thing that this feature will enable, but it&#039;s not the only one. Here&#039;s a quick little bit of SQL I have been playing with for some time that re-implements the infamous &quot;UPSERT&quot; command (a long time sticking point for people trying to make MySQL apps more cross-database compatible) into Postgres. &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;width: 70em; border: 1px dashed black;  padding: .5em;  background: #ffffcc; overflow: auto; margin: 0 5em 0 0&quot;&gt;&lt;code style=&quot;white-space: pre&quot;&gt;pagila=# select * from actor where first_name = &#039;AMBER&#039; and last_name = &#039;LEE&#039;;&lt;br /&gt;
 actor_id | first_name | last_name | last_update &lt;br /&gt;
----------+------------+-----------+-------------&lt;br /&gt;
(0 rows)&lt;br /&gt;
&lt;br /&gt;
pagila=# with upsert as &lt;br /&gt;
pagila-# (update actor set last_update = now() where first_name = &#039;AMBER&#039; and last_name = &#039;LEE&#039; returning actor_id) &lt;br /&gt;
pagila-# insert into actor (first_name, last_name, last_update) &lt;br /&gt;
pagila-# select &#039;AMBER&#039;, &#039;LEE&#039;, now() WHERE NOT EXISTS (SELECT 1 FROM upsert) ; &lt;br /&gt;
INSERT 0 1&lt;br /&gt;
&lt;br /&gt;
pagila=# select * from actor where first_name = &#039;AMBER&#039; and last_name = &#039;LEE&#039;; &lt;br /&gt;
 actor_id | first_name | last_name |        last_update         &lt;br /&gt;
----------+------------+-----------+----------------------------&lt;br /&gt;
     201 | AMBER      | LEE       | 2011-03-16 11:29:15.611445&lt;br /&gt;
(1 row)&lt;br /&gt;
&lt;br /&gt;
pagila=# with upsert as &lt;br /&gt;
pagila-#(update actor set last_update = now() where first_name = &#039;AMBER&#039; and last_name = &#039;LEE&#039; returning actor_id) &lt;br /&gt;
pagila-# insert into actor (first_name, last_name, last_update) &lt;br /&gt;
pagila-# select &#039;AMBER&#039;, &#039;LEE&#039;, now() WHERE NOT EXISTS (SELECT 1 FROM upsert) ; &lt;br /&gt;
INSERT 0 0&lt;br /&gt;
&lt;br /&gt;
pagila=# select * from actor where first_name = &#039;AMBER&#039; and last_name = &#039;LEE&#039;; &lt;br /&gt;
 actor_id | first_name | last_name |        last_update         &lt;br /&gt;
----------+------------+-----------+----------------------------&lt;br /&gt;
     201 | AMBER      | LEE       | 2011-03-16 11:30:21.244226&lt;br /&gt;
(1 row)&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Now, to be fair, this bit of SQL does have a race condition (think two people trying to insert the same actor at the same time), so it doesn&#039;t really solve all of your problems, but if you are looking for a quick hack, it might just do the trick. Also don&#039;t be afraid to play with it; this was like 2 minutes of thought and making sure the syntax worked; you could certainly try turning it around or coming up with other variants. That&#039;s actually one of the coolest things about this feature; waiting to see what use cases people come up with for it. &lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 16 Mar 2011 11:40:28 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Mar/499.html</guid>
    
</item>
<item>
    <title>Monitoring Read vs. Write Activity In Postgres </title>
    <link>http://www.xzilla.net/blog/2011/Mar/Monitoring-Read-vs.-Write-Activity-In-Postgres.html</link>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2011/Mar/Monitoring-Read-vs.-Write-Activity-In-Postgres.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=498</wfw:comment>

    <slash:comments>8</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=498</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    If you spend anytime either giving or receiving database tuning advice, perhaps the most common phrase you will hear is &quot;it depends&quot;. Of course that is made in reference to a whole lot of things, but one of the things it depends on is read vs write load. While that&#039;s easy to point out, it&#039;s not always that obvious as to how best to measure read/write load for a system. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.xzilla.net/blog/2011/Mar/Monitoring-Read-vs.-Write-Activity-In-Postgres.html#extended&quot;&gt;Continue reading &quot;Monitoring Read vs. Write Activity In Postgres &quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 01 Mar 2011 00:28:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Mar/498.html</guid>
    
</item>
<item>
    <title>Why the F&amp;#% Doesn't Postgres Have Hints?!?! </title>
    <link>http://www.xzilla.net/blog/2011/Feb/Why-the-F%25-Doesnt-Postgres-Have-Hints!!.html</link>
            <category>postgres</category>
            <category>sql</category>
    
    <comments>http://www.xzilla.net/blog/2011/Feb/Why-the-F%25-Doesnt-Postgres-Have-Hints!!.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=497</wfw:comment>

    <slash:comments>10</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=497</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    Once again someone has brought up the idea of having a hints system in Postgres, which means once again we&#039;re all subjected to watching people trod out the same tired, faulty, and even self-contradictory reasons to try to justify the idea that Postgres doesn&#039;t have, need, or even want a hinting system. As frail as the arguments might be, people are so entrenched in their positions now that even having a discussion on the topic is difficult. And in fact, there are really two discussion going on here; one is whether Postgres should have &lt;strong&gt;any&lt;/strong&gt; type of hinting system, and the other a more specific discussion on if we should have a &lt;strong&gt;query&lt;/strong&gt; hinting system.  &lt;br /&gt;&lt;a href=&quot;http://www.xzilla.net/blog/2011/Feb/Why-the-F%25-Doesnt-Postgres-Have-Hints!!.html#extended&quot;&gt;Continue reading &quot;Why the F&amp;amp;#% Doesn&#039;t Postgres Have Hints?!?! &quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 07 Feb 2011 08:33:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Feb/497.html</guid>
    
</item>
<item>
    <title>A present from my filesystem</title>
    <link>http://www.xzilla.net/blog/2011/Jan/A-present-from-my-filesystem.html</link>
            <category>postgres</category>
            <category>solaris</category>
    
    <comments>http://www.xzilla.net/blog/2011/Jan/A-present-from-my-filesystem.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=496</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=496</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    &lt;p&gt;People ask me why I haven&#039;t blogged much lately and I generally tell them I&#039;ve been busy fixing broken stuff. Then they tell me to blog about the broken stuff I&#039;m fixing. So, ok. Here&#039;s a random encounter from before the holidays....&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;There&#039;s nothing like trying to log into a database server to do some simple schema work, only to have you&#039;re login hang trying to load your session. After some brief poking around and attempts to login with different accounts, I was able to see that we had a disk problem on the database. (Nail in the coffin, zpool status, the zfs command which shows the condition of your drives, was hanging trying to show the last pool). So, poke the SA&#039;s and see what they can dig up... and unfortunately things were bad enough, we were going to need a reboot. So, we reboot. &lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Upon restart, well, things don&#039;t restart; where &quot;things&quot; means postgres. &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=475&amp;amp;entry_id=496&quot; title=&quot;http://en.wikipedia.org/wiki/Service_Management_Facility&quot;  onmouseover=&quot;window.status=&#039;http://en.wikipedia.org/wiki/Service_Management_Facility&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;SMF&lt;/a&gt; shows that we tried to start, but something has gone awry. Looking in the database logs, I see this&lt;/p&gt;&lt;br /&gt;
&lt;div style=&quot;border: 1px dashed black;  padding: 1em;  background: #ffffcc; overflow: auto;&quot;&gt;2010-12-23 17:29:16 EST:resmon@127.0.0.1(32789):782: FATAL:  the database system is starting up&lt;br /&gt;
2010-12-23 17:29:17 EST:sauron@10.0.0.231(58978):783: FATAL:  the database system is starting up&lt;br /&gt;
2010-12-23 17:29:18 EST:@:494: FATAL:  could not create relation 16385/58326/58757497: File exists&lt;br /&gt;
2010-12-23 17:29:18 EST:@:494: CONTEXT:  xlog redo file create: 16385/58326/58757497&lt;br /&gt;
2010-12-23 17:29:18 EST:@:492: LOG:  startup process (PID 494) exited with exit code 1&lt;br /&gt;
2010-12-23 17:29:18 EST:@:492: LOG:  aborting startup due to startup process failure&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.xzilla.net/blog/2011/Jan/A-present-from-my-filesystem.html#extended&quot;&gt;Continue reading &quot;A present from my filesystem&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 18 Jan 2011 22:12:38 -0500</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2011/Jan/496.html</guid>
    
</item>
<item>
    <title>Scalability, I has it</title>
    <link>http://www.xzilla.net/blog/2010/Oct/Scalability,-I-has-it.html</link>
            <category>conf</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2010/Oct/Scalability,-I-has-it.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=494</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=494</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    On Monday I spoke at the &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=470&amp;amp;entry_id=494&quot; title=&quot;http://www.highload.ru/&quot;  onmouseover=&quot;window.status=&#039;http://www.highload.ru/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Highload++&lt;/a&gt; conference in Moscow, Russia. This is an annual conference put on by several local Russian tech folk that focuses on large scale website architectures. This conference covers the full stack, which includes database, which includes Postgres, which is where I get included in all of this. I gave a talk with a rather generic title, &quot;Scaling with Postgres&quot;, which incorporates both some thoughts on &quot;tech culture&quot; within organizations trying to scale Postgres (gleaned from years of working with these types of &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=471&amp;amp;entry_id=494&quot; title=&quot;http://omniti.com/does&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/does&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;clients at OmniTI&lt;/a&gt;, plus quite a bit of mind-melding and discussion a few weeks ago at &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=472&amp;amp;entry_id=494&quot; title=&quot;http://omniti.com/surge/2010&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/surge/2010&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Surge conference&lt;/a&gt;), mixed in with some hands on pointers for those trying to do it with Postgres. I&#039;ve put slides up on &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=473&amp;amp;entry_id=494&quot; title=&quot;http://www.slideshare.net/xzilla/scaling-with-postgres-highload-2010&quot;  onmouseover=&quot;window.status=&#039;http://www.slideshare.net/xzilla/scaling-with-postgres-highload-2010&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;slideshare&lt;/a&gt; for those that want to view it, and I believe the Highload folks will have video up at some point. &lt;br /&gt;
&lt;br /&gt;
Along side my talk were talks from fellow Postgres contributors Simon Riggs and Bruce Momjian, which focused on performance, upgrading, and replication. I thought all of the talks were good, although given some overlap in Simon and Bruce&#039;s talks, I think it would have been cool to cut the talks time and maybe have a short panel for open Postgres Q&amp;A for all three of us. (This is likely difficult from a practical perspective, given the need for translations, but it seems doable). Instead, since Simon went first, he ended up taking the brunt of people&#039;s questions; which was amusing for Bruce and me, but I think a panel would have been good. Maybe next time. &lt;br /&gt;
&lt;br /&gt;
Anyway, I want to thank the folks running Highload for inviting me to speak, and working through the travel shenanigans. I found the conference very nicely run, and the growth they are getting in attendance is a good sign for the Russian tech community!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PS, someone at the conference had asked me about getting reconnoiter support; since I couldn&#039;t get a card, I&#039;ll just toss a link out here for him, or anyone else interested: &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=474&amp;amp;entry_id=494&quot; title=&quot;http://labs.omniti.com/labs/reconnoiter/wiki/Support&quot;  onmouseover=&quot;window.status=&#039;http://labs.omniti.com/labs/reconnoiter/wiki/Support&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;http://labs.omniti.com/labs/reconnoiter/wiki/Support&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 26 Oct 2010 17:35:53 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2010/Oct/494.html</guid>
    
</item>
<item>
    <title>Postgres returning for Google Summer of Code 2010</title>
    <link>http://www.xzilla.net/blog/2010/Mar/Postgres-returning-for-Google-Summer-of-Code-2010.html</link>
            <category>bwpug</category>
            <category>pgus</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2010/Mar/Postgres-returning-for-Google-Summer-of-Code-2010.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=485</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=485</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    I&#039;m very happy to announce that the Postgres project has been selected to participate in this years Google Summer of Code program.  Over the next couple weeks we&#039;ll be looking to solidify our mentor base; if you work on Postgres and would be willing to mentor a student, please send me a note so we can get you signed up.  If you are a student and you&#039;re interested in working on Postgres, now is the time to get your proposal together. Student applications will open up on March 29th, so we&#039;d like to have our mentors in place for review, and hopefully had students discussing with the Postgres devs their proposals as much as needed. If anyone has any questions, feel free to email me, or track me down on irc.  &lt;br /&gt;
&lt;br /&gt;
Handy links for Postgres GSoC:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=427&amp;amp;entry_id=485&quot; title=&quot;http://www.postgresql.org/developer/summerofcode&quot;  onmouseover=&quot;window.status=&#039;http://www.postgresql.org/developer/summerofcode&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Our ideas page for GSoC&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=428&amp;amp;entry_id=485&quot; title=&quot;http://wiki.postgresql.org/wiki/GSoC_2010&quot;  onmouseover=&quot;window.status=&#039;http://wiki.postgresql.org/wiki/GSoC_2010&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Our loose attempt at organization&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=429&amp;amp;entry_id=485&quot; title=&quot;http://socghop.appspot.com/gsoc/org/show/google/gsoc2010/postgresql&quot;  onmouseover=&quot;window.status=&#039;http://socghop.appspot.com/gsoc/org/show/google/gsoc2010/postgresql&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Our Postgres page on the GSoC site&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=430&amp;amp;entry_id=485&quot; title=&quot;http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/userguide&quot;  onmouseover=&quot;window.status=&#039;http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/userguide&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Users Guide to GSoC&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
Thanks everyone, I&#039;m looking forward to another interesting year with GSoC, and hoping you&#039;ll join in. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Article translated to &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=469&amp;amp;entry_id=485&quot; title=&quot;http://www.fatcow.com/edu/postgres-returning-for-google-summer-of-code-2010-be/&quot;  onmouseover=&quot;window.status=&#039;http://www.fatcow.com/edu/postgres-returning-for-google-summer-of-code-2010-be/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Belorussian&lt;/a&gt; 
    </content:encoded>

    <pubDate>Fri, 19 Mar 2010 12:06:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2010/Mar/485.html</guid>
    
</item>
<item>
    <title>BWPUG September Meeting 2010-09-08: PostgreSQL Security and SE-Postgres</title>
    <link>http://www.xzilla.net/blog/2010/Sep/BWPUG-September-Meeting-2010-09-08-PostgreSQL-Security-and-SE-Postgres.html</link>
            <category>bwpug</category>
            <category>pgus</category>
            <category>postgres</category>
    
    <comments>http://www.xzilla.net/blog/2010/Sep/BWPUG-September-Meeting-2010-09-08-PostgreSQL-Security-and-SE-Postgres.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=493</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=493</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    A reminder that tommorrow night, BWPUG will be gathering for its September meeting. This months we&#039;re rounding up the gang to discuss &quot;PostgreSQL Security via SE-Postgres&quot;, including the current TODO&#039;s, and what to focus on now that 9.0 is just around the corner and 9.1 development will be starting in earnest. We expect to have a good crowd on hand, including some potential out-of-towners, so we hope to see you there.&lt;br /&gt;
&lt;br /&gt;
When: Septmber 8th, ~6:30PM.&lt;br /&gt;
Where: 7070 Samuel Morse Dr, Columbia, MD, 21042.&lt;br /&gt;
Host: OmniTI&lt;br /&gt;
&lt;br /&gt;
As always we have time for networking and likely hit one of the local&lt;br /&gt;
restaurants after the meeting, hope to see you there. 
    </content:encoded>

    <pubDate>Tue, 07 Sep 2010 12:40:41 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2010/Sep/493.html</guid>
    
</item>
<item>
    <title>Now What? (wrt OpenSolaris and your database)</title>
    <link>http://www.xzilla.net/blog/2010/Aug/Now-What-wrt-OpenSolaris-and-your-database.html</link>
            <category>mysql</category>
            <category>postgres</category>
            <category>solaris</category>
    
    <comments>http://www.xzilla.net/blog/2010/Aug/Now-What-wrt-OpenSolaris-and-your-database.html#comments</comments>
    <wfw:comment>http://www.xzilla.net/wfwcomment.php?cid=492</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://www.xzilla.net/rss.php?version=2.0&amp;type=comments&amp;cid=492</wfw:commentRss>
    

    <author>nospam@example.com (Robert Treat)</author>
    <content:encoded>
    Last week&#039;s &quot;announcement&quot; of the &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=467&amp;amp;entry_id=492&quot; title=&quot;http://mail.OpenSolaris.org/pipermail/opensolaris-discuss/2010-August/059310.html&quot;  onmouseover=&quot;window.status=&#039;http://mail.OpenSolaris.org/pipermail/opensolaris-discuss/2010-August/059310.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;death of OpenSolaris&lt;/a&gt; has steered a lot of questions my way about where people should go, and/or where &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=462&amp;amp;entry_id=492&quot; title=&quot;http://www.omniti.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.omniti.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;OmniTI&lt;/a&gt; will go, now that OpenSolaris future looks non-existent. As one of the more &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=463&amp;amp;entry_id=492&quot; title=&quot;http://omniti.com/presents/postgresql-on-solaris&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/presents/postgresql-on-solaris&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;open users&lt;/a&gt; of Solaris related technology, and running some &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=464&amp;amp;entry_id=492&quot; title=&quot;http://omniti.com/remembers/2008/theo-schlossnagle-talks-with-sun&quot;  onmouseover=&quot;window.status=&#039;http://omniti.com/remembers/2008/theo-schlossnagle-talks-with-sun&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;beefy loads&lt;/a&gt; on top of it, it makes sense that people would be curious as to what we might be doing next. I would start with saying that as a company, we don&#039;t have an official policy on this yet, and probably won&#039;t. We evaluate each situation on a customer by customer basis, so what follows here is more my personal feelings on what people should do at this current point in time. &lt;br /&gt;
&lt;br /&gt;
The one thing I have noticed from the people I have already spoken with is that there seem to be two major camps, an over simplification to be sure, but I break this down into the free software camp (those motivated by a desire to remain on open source, and/or support, free software as a primary driver of technology decisions), and those more interested in the technology than the ideals behind it. Depending on where you fall into that spectrum, you have different options available to you, and will likely reach very different conclusions. &lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Too Soon?&lt;/h4&gt;&lt;br /&gt;
The first thing I have said to everyone is that it is honestly too soon to make any moves. Oracle is notorious for being poor communicators, and at this point I don&#039;t think we&#039;ve seen enough official communication to really know what&#039;s going to happen. This doesn&#039;t mean you can&#039;t start planning though! We&#039;ve been looking at some of the available options since before the Oracle/Sun merger was closed, so it doesn&#039;t hurt to start evaluating the options out there. However there&#039;s no need to rush in to things; it is possible that the announcement of OpenSolaris&#039;s death might be premature. I personally don&#039;t believe Solaris can&#039;t survive based on the model we&#039;ve just seen laid out; there are too many people learning the gnu tool chain who won&#039;t be willing to invest big money into a tool that is hard for them to use. They need a low cost / free option for people to familiarize themselves on (and all the better if it installs gnu tools by default). There&#039;s an outside chance Oracle might come to this conclusion, which would give new life to OpenSolaris. &lt;br /&gt;
&lt;br /&gt;
A more likely alternative to that theory is that &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=465&amp;amp;entry_id=492&quot; title=&quot;http://www.illumos.org/news/1&quot;  onmouseover=&quot;window.status=&#039;http://www.illumos.org/news/1&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;some other group&lt;/a&gt; might pick up OpenSolaris maintenance and start pushing it forward. Certainly not an easy task, but there are already several different distribution of OpenSolaris available, so the userland level management has the resources, we mostly would need to figure out how to handle the more core technologies that have been maintained by Sun. I think this might also be possible, as there are numerous companies already heavily invested in OpenSolaris technology, and there are Solaris internals hackers looking to move out of Oracle, it&#039;s not an impossible leap to think we might see something worked out. And if Oracle continues to make technology available via the CDDL (which most of the current signs seem to indicate), this could work out. I would say that this might not resemble the OpenSolaris as it is now, but could definitely be an option for current users who&#039;d like to remain on the OpenSolaris platform.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Other Options?&lt;/h4&gt;&lt;br /&gt;
Of course, you might not want to put all your eggs in that basket. So what other options do we have? Well, that mostly depends on what you&#039;re getting out of OpenSolaris now, and what you want out of your OS going forward. For many people, I suspect that Solaris 11 Express might be a suitable replacement, especially for those running mixed OpenSolaris / Solaris environments. Migrating up to full Solaris 11 will also cover most of your technology needs, so depending on pricing I suspect people may find that a cheaper alternative to migrating to a new platform. Of course, if you want to stick with a free software solution, this won&#039;t really be an option. &lt;br /&gt;
&lt;br /&gt;
FreeBSD seems to be the most obvious alternative platform. If you&#039;re currently taking advantage of dtrace, zfs, and zones, FreeBSD gives you options to cover all three. It won&#039;t be the same; the dtrace and zfs implementations are pretty close aiui, but for zones you&#039;ll probably have to use either Jails or OpenVS, neither of which am I a fan of. I think you&#039;d also find a larger overlap in system utilities (tar, find, grep, etc..) between FreeBSD and Solaris, so for people (and scripts) making the transition, this might be an easier move. The big question here is probably hardware support; if you can&#039;t get FreeBSD running on your hardware, that&#039;s likely to be a show stopper, unless you can work out a new hardware purchase in the transition &lt;img src=&quot;http://www.xzilla.net/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; &lt;br /&gt;
&lt;br /&gt;
So, if you don&#039;t want to go closed Solaris, and FreeBSD isn&#039;t an option, that probably leaves you on Linux. People sometimes think I don&#039;t like Linux; I&#039;m actually very comfortable on it. My first &quot;unix&quot; was Linux, and we run some extremely demanding systems on Linux and it has performed well in those cases. However if you&#039;re trying to do deep introspection, systemtap is a poor man&#039;s dtrace. And if you are relying on zfs, you&#039;ll have a hard time finding a suitable replacement amongst the current Linux options. Personally I am most comfortable on ext3, but I tend to give up on file system snapshots, which is a painful submission if you have to make it. XFS is probably the next most common option, and generally I&#039;ve no bones about using it if you want to avoid ext3. Of the three &quot;advanced&quot; replacements; ext4, btrfs, and &lt;a href=&quot;http://www.xzilla.net/exit.php?url_id=466&amp;amp;entry_id=492&quot; title=&quot;http://github.com/behlendorf/zfs/wiki&quot;  onmouseover=&quot;window.status=&#039;http://github.com/behlendorf/zfs/wiki&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;zfs on linux&lt;/a&gt;; I think ext4 is probably your best bet, but only because zfs is too new for any serious database systems, and if you are moving off OpenSolaris to get away from Oracle, &quot;butter&quot; seems like an odd choice.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;And so...&lt;/h4&gt;&lt;br /&gt;
I think it&#039;s wise to keep things in perspective. There are some cases where you want to be a technology leader (we&#039;ve been running Postgres 9 for months on some systems), but generally speaking when it comes to picking the operating system and filesystem for your database, it&#039;s best to tread lightly. Now is a fine time to start evaluating your options; at least figure out what features are critical to your enterprise that you&#039;ll need to replace (and don&#039;t just think about database, you might be relying on crossbow for something, or who knows what else). We&#039;ll certainly be watching the current options available, and I suspect diversifying a little, over the next 6 months, as we wait for the picture to clear up where we can. We&#039;re not in a hurry (after all, we do have the source code of what we&#039;re running now), and I don&#039;t see much reason for others to be either.   
    </content:encoded>

    <pubDate>Mon, 16 Aug 2010 09:45:11 -0400</pubDate>
    <guid isPermaLink="false">http://www.xzilla.net/blog/2010/Aug/492.html</guid>
    
</item>

</channel>
</rss>
