31st JULY - 4th AUGUST 2015

Pullman Brisbane - King George Square

Menu
Create Account
  • Mini-Conferences
    July 31
  • Presentations
    August 1-2
  • Sprints
    August 3-4

<-- Back to schedule

Just Use Postgres.

Project: Postgres

Making use of the latest database for your data is considered trendy and edgy, with vendors promising unrealistic expectations when it comes to capabilities of these systems. Furthermore, communities such as Hacker News enforce the idea that you must use the latest and coolest technology in order to be a ‘rockstar’ engineer.

Marketing buzzwords like ‘real-time’, ‘distributed’, ‘high-availability’, and ‘schemaless’ impact our design decisions, and the expectation for applications to be ‘scalable’ often forces developers to prematurely introduce complexity and anti-patterns into their applications by making use of these untested and immature data stores.

Forget about adding the latest trendy data store into your stack; just use Postgres.

This talk will explore the capabilities of Postgres 9.4, and various use-cases where you can involve it as your primary datastore. I will cover some of the projects at Heroku where we have used Postgres, such as:

- Quickly querying over 300M records to get a list of all users on a particular server at a particular point in time.
- Providing almost real-time aggregations of all Heroku customer’s usage.
- Joining 3 different tables on 3 different database servers without any external code.
- Creating a ‘social graph’ of all of Heroku’s users based on commonly used IP addresses.
- Ensuring that coupon codes are used only once, preventing attackers from exploiting ‘race condition’ bugs.

In particular, I will focus on topics such as:

- Storing, indexing, and querying schemaless data.
- Materialized Views.
- NOTIFY/LISTEN.
- Storing and querying time-series data.
- Updatable views.
- Foreign tables.
- Recursive views.
- Stored functions.
- Range Types
- Partitioning and Sharding data.

Each topic will include links to sample schemas and iPython notebooks so you can take these examples home with you.

Rhys Elsmore

Rhys Elsmore is an internet mall cop at Heroku, based on the Platform Security team. His day-to-day is mostly made up of detecting, responding to, and preventing platform abuse and security incidents. The rest of his day usually consists of strong coffee and making up fake radio jingles about items in his kitchen.

When he isn’t at work, he enjoys gardening, jetskiing, travelling, tending to his chickens, and staying away from the internet.