Here's Postgres 9.5: Now Available on Heroku

Heroku has long been committed to making PostgreSQL one of the best relational databases in the world. We’re also committed to giving you the ability to try the latest release as soon as it’s available. Today, we’re pleased to announce the public beta of Postgres 9.5 on Heroku.

PostgreSQL 9.5 brings a bevy of super exciting new features with the most prominent being the new UPSERT functionality. UPSERT gives you the expected behavior of an insert, or, if there is a conflict, an update, and is performant without the risk of race conditions for your data. UPSERT was one of the last few detracting arguments against PostgreSQL. A special thanks goes to Peter Geoghegan on the Heroku Postgres team for committing the better part of two years developing the functionality as its primary author, along with contributions from Andres Freund from Citus Data and Heikki Linnakangas.

You can get started right now with PostgreSQL 9.5 on Heroku by passing in the version flag during a provision request:

heroku addons:create heroku-postgresql --version=9.5

This lets customers who want to try out the new release an easy way to do so, while customers who are happy with the current version can stay on 9.4 until 9.5 matures and we make it generally available. New databases will continue to default to 9.4.

Read more →

PostgreSQL 9.4 General Availability

We’re pleased to announce PostgreSQL 9.4 in general availability for Heroku Postgres. After announcing the beta earlier this year, we’ve had many developers provision databases against this new version. Throughout the beta period, developers raved about the new data type along with the performance enhancements to materialized views. This uptake by early adopters demonstrates an interest in everything that the new version of PostgreSQL provides, from features to performance.

Read more →

PG Backups Levels Up

Performing a backup is one of those tasks that ensures your application can recover from database or hardware failures should they ever occur. Over four year ago, we recognized this as a best practice and came out with PGBackups, an add-on that reduces the risk and complexity of taking database backups. Today, we’re pleased to announce two big improvements: enhanced reliability, and the ability to schedule backups.

Read more →

Faster Database forking

Did you know that Heroku databases can be forked? Forking a database creates a byte-for-byte copy that can be used for testing and development. It is a useful tool that allows teams to be agile with their data.

Today, forking databases is becoming faster. Fast forking reduces the time to create a fork by hours for high transaction database. To quickly fork a database, simply add the --fast flag:

$ heroku addons:add heroku-postgresql:crane --fork BLUE --fast

Fast forks behave differently from regular forks. They take less time to create, but the data will be somewhat out-of-date (as much as 30 hours). If your data has not changed significantly and you have not performed any schema migrations in the last 30 hours, then fast forks are a speedy alternative to regular ones.

Read more →

Heroku Postgres Followers Patched

On November 18th, a replication bug was found in Postgres that affected the most recent versions of every Postgres release. The corruption that this bug may introduce could go undetected, and it manifests itself as a follower potentially having an inconsistent view of the data. For example, data could be present in the primary and not on the follower, or data deleted or updated on the primary and not from the follower. The likelihood of triggering this bug is higher for write-heavy workloads, such as many OLTP applications seen at Heroku.

We always recommend placing applications in maintenance mode and scaling down workers when performing a follower based changeover, and following this procedure largely decreases the chances of corruption introduced by this bug.

At Heroku Postgres we recognize the importance of data integrity and consistency in your databases: As of now there are no Heroku Postgres databases vulnerable to this corruption bug. Even though new versions of Postgres have not been released yet and are scheduled to ship early December, a patch was made available to the Postgres community on all git branches for affected versions. We have back-ported this patch to all of our supported Postgres versions, and all affected instances have been replaced. As this bug only impacts followers, no primary databases were at risk and no primary databases required the patch.

If you were worried about this bug affecting your Heroku Postgres database, worry no longer: just sit back and enjoy your healthy followers.

Browse the blog archives, subscribe to the full-text feed, or visit the engineering blog.