Postgres 9.4 - a First Look

Today I gave a talk at pgcon about the upcoming features in 9.4. As the beta was just last week, I think it’s a fairly accurate representation of what should ultimately end up in 9.4. Of course, in the course of a talk I couldn’t cover everything, but I think it should give a good primer for anyone looking to upgrade.

I want to give a big thanks to Magnus Hagander and Dave Page, who did talk on earlier versions of 9.4, which was invaluable in helping me put together my own slide deck. Also thank to Michael Paquier and Hiekki Linnikagas who provided supplemental materials. Also no one could do these talks without the work of depesz; I would strongly encourage those looking for more information on 9.4 to check out his blog. Finally, I’d like to thank all of the Postgres Developers who have worked on the 9.4 release, without whom we wouldn’t have a release.

Natural Consequence

This weekend I noticed I hadn’t updated the bio on my blog. It’s a one letter change, from COO to CEO, but there’s a lot tied up in that letter. When I started at OmniTI I would never guessed that I would end up here. All I was looking for was Bigger and Badder Postgres challenges to work on. But maybe I should have seen it coming.

One of the driving factors in my career has been my desire to work on the most important part of whatever it was I was working on. Early on this lead me to web development as a means to share knowledge between team members. After awhile, I came to the conclusion that Usability and Front End web work were the most important; those were the areas that directly impacted customer/users, and was more important than the quality of the code or the systems running things on. Get that wrong and nothing else matters. Eventually I ended up doing a 180 and started focusing on databases. It wasn’t that the database was important, but the data inside those systems was the thing I determined was the most important thing for a business. You can always replace your front end, your application code, even the servers themselves, but lose the customer data, and your done.

As time went by, my thoughts changed here as well. I still think data is the one thing that is irreplaceable, but as time went on, eventually I sought out larger challenges and more responsibility. When Theo and I discussed taking the COO role 2 years ago, I had recognized that we needed someone who could work across the different groups within OmniTI and help people to achieve thier goals. It was an area I thought I could have some impact, so I stepped into the role. At the time I didn’t worry about the next step, but if you think about this philosophy of taking on the most important work, and take it to it’s natural consequence, the role of CEO should have been more obvious. Maybe not at OmniTI, but at some point it was bound to happen.

Less Alarming Alerts

A week or so ago, I gave my talk, ”Less Alarming Alerts!”, at Velocity Europe. The presentation covers several issues around the process of monitoring, alerting, and waking people up at 2 in the morning cause things break. I find that a lot of people in web operations suffer from excessive paging going on, as it’s far too easy to add checks than it is to remove them; this talk discusses some of how we approach this problem when helping people manage their operations. Special thanks to the DevOpsDC folks for letting me do a first run back in October. You can grab the slides from the Velocity site, or view them on slideshare.

New GPG Key

A few weeks ago I finally got around to making a new gpg key. My old key was created 9 years ago at OSCon, and I remember at the time picking an “extra large key size” (1024) figuring that would last me a really long time. I guess 9 years is a really long time in computers, but 1024 is no longer good enough, so a new, stronger key seemed warranted. At the moment, both keys will work, but the newer one should be used going forward. It’s already been signed by a number of folks, so feel free to grab it from a public server if you want.

Past, Present, and Pachyderm

I’m currently in Germany, having given my talk on Postgres 9.3 at PGConf DE (and last week at PGConf EU).

Prior to that, I recently gave a talk at the All Things Open conference entitled “Past, Present, and Pachyderm”. The original idea for the talk was to give a highlight of new features coming in Postgres 9.3, however we took a slightly different approach for the ATO2013 crowd, providing some history and discussion around the Postgres project, as well as taking a look at some ideas about future development and direction.

The talk went quite well, and I think really struck a good balance for speaking to a less Postgres focused crowd than the 9.3 talks I have given at Postgres specific conferences.

MariaDB and the Quest for Oracle Freedom

People really don’t like Oracle. Enough so that SkySQL just got $20 Million in funding from Intel to help it continue to build a MySQL alternative. Now personally I don’t have the hatred that a lot of people do for Oracle, but when I look at the pricing and service offerings around Oracle’s database, Solaris operating system, and even things like ATG, I know that we can offer them comperable solutions at half the price, with far better service, so I get why people want to try to find alternatives to Oracle.

But here is what I don’t get. This week I went to the All Things Open conference and while I was there, I happened to catch the tail end of a SkySQL talk on new MariaDB features. One of the features that he was describing apparently has issues if you work with MyISAM tables, so he asked how many people in the crowd used MyISAM. Not a single person raised their hand. For most database folks, this isn’t surprising; for most people doing traditional RDBMS work, you want an MVCC based system of some kind, so people using InnoDB seems like the logical choice. The problem here is, if your community is built around the idea of being free of Oracle, I think there is a problem if your user base is completely built around a technology still owned by Oracle.

So what are these investors buying with thier $20 million? If you are trying to secure the future of your database choice, I think this is a swing and a miss. Sure, MariaDB of today is better than MySQL of back then, but from a technology control standpoint, all you’ve done is buy yourself a ticket back to 2005, when Oracle first purchased Innobase and left MySQL scrambling. Any argument that you can make that the MariaDB community doesn’t have to worry about this is basically an argument for why MySQL users might as well stick with Oracle MySQL. I suppose that $20 million might buy another attempt at a new storage engine, but we’ve been down that road before, and it’s not pretty.

PS. If you’ve got $20 million and a desire to help Solaris users get free of Oracle, the OmniOS team would be happy to cash that check.

And Away We Go

Howdy folks. I’m currently in Salt Lake City, the first of many weeks of out of town travel coming up. OK, technically that started last week, when Denish and I traveled up to New York City, but that was by train, which is way more pleasent than air travel. Anyway I’ll be in SLC the next couple days, working with a customer to assess their current and future architecture and discuss ways to help them improve thier operations and developement processes.

Next week I’ll be heading to North Carolina to speak at the All Things Open conference. While there I’ll be stopping by the Triangle PUG, for a re-launch / kick-off get together. While I haven’t been to the RDU area for several years, I do know several people in the area so hopefully it will give me a chance to catch up some some old friends.

After that I’ll be headed to Dublin, Ireland, where I am speaking at PGConf.EU. While I have spoken in Europe & Russia several times, it will be my first Postgres conference there, so hopefully I’ll be able to cross paths with a number of the European community members who haven’t had the opportunity to make it to Canada. From there I head to Oberhaoussen, Germany, to talk at PGConf.DE. I’ve not been to Germany since I was a kid, so while I am bummed that I am missing out on Octoberfest, hopefully it will be a good time.

Wrapping all that up I’ll be heading to London to speak at Velocity EU, giving the talk I previewed at this months DevOpsDC meeting on “Less Alarming Alerts”. I really enjoyed Velocity EU and I’m happy to be heading back this year.

OmniTI has been doing quite a bit more business in Europe over the past year, so during my travels I’m planning to do a couple of client visits and meeting up with various friends and my newest co-worker Vasilis. If you’re planning to be at any of these events I hope you’ll stop and say hi.

What’s to See in Postgres 9.3 Slide Deck

Last week I gave a version of my “Postgres 9.3” talk at PGCon. The talk covers a number of new features that are planned for the upcoming version of Postgres. A lot of people had asked for a copy of the slides, but I’ve not found a good way to generate pdf’s from the service I used to make the slides, so hopefully an online link will work for now. Postgres 9.3, via

Note: The slides are laid out in a grid, so when browsing the slides, scroll down in each “section” until you get to the bottom, then scroll to the side to go to the top of the next section.

PS. If you are working for, this is something you really should add in the pro version of your tool.

PPS. If you’d be interested in having me present this talk at your local meetup, please send me an email.

What Defines a Guru?

I recently wrote an entry for OmniTI’s Seeds Blog. The article talks about the idea of pattern matching vs. troubleshooting, and how those ideas relate to what people consider a “Tech Guru”. I hope you’ll check it out.

New Blog Rising

Almost 5 years ago (really?) I moved my site from the old “planet postgresql” blog hosting service over to my own server, pointing to my own domain. This server was hosted in OmniTI’s Ashburn data center, and it’s been a good home, but we are in the final stages of a data center evacuation project, which all of our sites, and our clients sites, are moving to either our new Ashburn facility, or our Chicago data center.

My old blog ran on an elderly version of S9Y, a PHP based blogging engine that also supported PostgreSQL. Like all new things, I liked it when I started with it, and even now I’d recommend it to folks looking for a blogging system, but rather than trying to port or upgrade the old system, I thought I would take this as an opportunity to try something new. The code I am most likely to touch these days is probably either PHP or node.js, with perl the outside third, so I figured I would look for something else. I did want to limit myself to a pre-built blog engine; while I think running software in different languages is valueable, I know I don’t have time to commit to maintaining my own system from scratch. You’d think that a blog wouldn’t be that complicated, but it’s harder than you’d think. Anyway, I originally was hoping to find something in Go, but blog options were lacking, and as I understand it, Go support on Illumos is still lacking, so I decided to look elsewhere. In the end, I ended up settling on Octopress/Jekyll. I have to admit, I was a bit resistent to go this route, because it almost seems cliche, but I figured that between the ruby and static page generation, it would be different enough to be interesting.

Some of the guys at OmniTI are doing a bunch of hacking on chef, but I can’t say that I’ve done any real ruby hacking in probably seven years. Still, Octopress is suppose to make everything easy, right?

Well, to be frank, I found the state of ruby’s development ecosystem to be a bit of a mess. I suppose that all the bits and pieces are meant to make things work better, but the need to juggle multiple ruby versions feels pretty painful. I’ll be honest, I tried to bypass it all by just using macports ruby, but it wasn’t up-to-date enoughr. Even when I started looking at the various Ruby environment managers, the version differences coupled with compiler issues on OSX made me question the whole thing, but eventually I ended up going with rbenv, and also making use of rbenv-gem-rehash to get everything to work correctly.

Once I was able to get a working ruby environment going, I proceeded to get a basic blog system up and going. That in and of itself required more wrangling than I expect, but I want to save that for another post, since this post is already getting long. The last thing I want to mention is that, although I originally had planned to move everything to one of our hosted OmniOS systems, in the end I decided to take a different route and host the system on Heroku. Once again, this was mainly in the spirit of learning something new. I know a bunch of the guys working on Heroku Postgres and I’ve always been interested in Heroku services in general, and this perticular site seemed simple enough that hosting it on one of their free hosts seemed pretty doable. I do miss not having tools like mod_rewrite or ATS to handle any black magic I might need, but for now things are running ok.