PGCon2016 - 20180510

PGCon 2016
The PostgreSQL Conference

Robert Haas
Day Talks - Day 1 - 2016-05-19
Room DMS 1160
Start time 10:00
Duration 00:45
ID 913
Event type Lecture
Track 9.6 Features
Language used for presentation English

Parallel Query Has Arrived!

Where We've Been, Where We Are, and Where We're Going

Parallel query for PostgreSQL has been under development for almost three years now, and a great deal of infrastructure for parallelism was committed to and is available in PostgreSQL 9.4 and PostgreSQL 9.5 for use by extensions. However, PostgreSQL 9.6 will be the first release with a full-fledged, user-visible feature that can be used without writing code in C. In this talk, I'll discuss the specific capabilities that will be part of the PostgreSQL 9.6 release, the limitations of the feature as it exists today, and possible future work to lift some of those limitations. Finally, I'll talk about how we can apply the technology developed for parallel query to utility commands such as CREATE INDEX, CLUSTER, and VACUUM.

Capabilities expected to be part of PostgreSQL 9.6 will substantially improve the performance of queries that touch large volumes of data, such as reporting queries on databases used primarily for OLTP. I'll discuss those improvements with examples and benchmark results. In addition, I'll discuss the cases where the current implementation fails to speed things up as much as one might hope, either because the optimal plan is not generated or because the plan fails to run as fast in parallel as might be hoped, and explain how we might improve things in the future. Finally, I'll discuss the pluggable nature of the parallelism infrastructure and explain how, first, it can be used for purposes other than running queries, and, second, if part of it doesn't work well in a particular case, a replacement part can be substituted in for that particular purpose without much impact on the surrounding code.