No More SHMMAX
We didn't emphasize this in the release announcement -- mainly because it's like removing a wart, you won't want to talk about it -- but this is the one 9.3 change liable to make life easier for more developers than any other. We've stopped using SysV memory for anything other than the postmaster startup lock, which means that you can now adjust shared_buffers to your heart's content without needing to mess with sysctl.conf. Let alone the satanic incantations you have to go through on the Mac.
This also clears one of the main barriers to writing simple autotuning scripts. Which means I'm out of excuses for not having written one.
Custom Background Workers
Need a daemon to do background work alongside Postgres, such as scheduling, queueing, maintenance, or replication? Maybe you want to intercept MongoDB-formatted queries and rewrite them for Postgres? Custom background workers allow you to create your own "autovacuum daemon" which does whatever you want it to.
Michael Paquier will be presenting Background Workers for SFPUG on Thursday the 12th (7:30PM PDT). Details on our Meetup Page, including a link to live video for those of you not in the Bay Area.
This has been my biggest desire since 9.2 came out; we were so close to not needing to worry about archiving, ever, for small databases. And now we're there. You can make chains of replicas, fail over to one of them, remaster, make a replica at a new data center the master, change the direction of replication, and lots more configurations without needing to worry about WAL archiving and all its overhead.
If you combine this with Heikki's work on pg_rewind, things get even more flexible since you don't have to resnapshot for failback anymore.
I'll be presenting a live demo of this feature at the SFPUG meeting, including connecting replicas in a ring (all replicas -- no master!).
So, what's your favorite 9.3 feature? Vote here!