PGCon2012 - Final Release

PGCon 2012
The PostgreSQL Conference

Daniel Farina
Day Talks - 2 - Friday - 2012-05-18
Room MRT 218
Start time 09:00
Duration 01:00
ID 446
Event type Lecture
Track Scaling Out
Language used for presentation English

The Horizontal Struggle

Improving the Experience of Scale-Out

Horizontal scale-out of applications using Postgres is typically a time-consuming, expensive, error-prone task. In spite of that, horizontal scale-out is achievable, even if not well-supported by the logical constructs Postgres exposes.

This talk is intended to share what we've learned from both our experiences at Heroku and, more importantly, the litany of customers that we are privileged to talk to about their problems. From these, a few choice gaps in functionality are highlighted for improvement.

The era of horizontal scale-out has long been upon-us. While some productively continue to outrun the problem by leveraging Moore's Law, others already have made the jump to fully distributed data management systems to achieve better scalability, availability, and latency around the globe. Some enthusiasts have even gone so far as to say that relational models will not gracefully survive and grow in the coming era.

The author of this talk is skeptical of this prediction, but acknowledges there are painful gaps in functionality that exist in all known generally-available production-class relational database systems in the domain of enabling scale-out of applications. He also thinks those gaps are, in all likelihood, solvable, without a huge upheaval to the implementation of Postgres nor applications written against it. Here, he will attempt to draw attention to:

  • The relationship between relational models, ACID, and usability

  • The sacrifices in usability made by most distributed data management software not intrinsic to their advantages

  • The surprisingly few basic use-cases required by most people struggling with horizontal scalability

  • The current state of the art in using Postgres as a member in a distributed system

  • Choice weaknesses to make progress on, and sketches on mechanism to address them