Tuesday, June 28, 2016

PostgreSQL: Parallel Aggregate

With PostgreSQL 9.6 looming on the horizon, I went out to sift through some of PostgreSQL's commitfests to find some interesting bits and pieces. This post is the start of a series covering commits of the next generation of the venerable database management system.
Outflow made parallel.
We all fancy performance improvements and concurrency especially in those days where servers tend to grow upper double-digit numbers of execution cores. As suspected earlier, we will now see a lot of movement in that direction as the foundation for parallel execution has been introduced. So, let's start with the following: Parallel Aggregate. See its key data below, from which you see that it's already been integrated successfully into the main branch of development:
Title parallel aggregate
Topic Server Features
Created 2016-02-29 00:15:35
Last modified 2016-03-21 13:36:54
Latest email 2016-03-22 05:47:25
Status 2016-03: Committed
Authors David Rowley, Haribabu Kommi
Reviewers Robert Haas (rhaas)
Committer Robert Haas (rhaas)
Robert Haas initially created an infrastructure for parallel execution in PostgreSQL (described in detail there) by adding a Gather node which spawns a number of workers to solve a parallelizable workload of an SQL execution plan. David Rowley and Haribabu Kommi extended this idea to aggregation which also allows parallel execution in certain situations.

First drafts can be found here. As noted there, the aggregate needs to indicate parallel support and to keep the implementation simple, they only implemented the most basic bits first. As such, most of the potential of parallelism still lies ahead of us. In the course of the review and the future development, some difficulties arose and some related issues needed to be handled. But in the end the commit went through and you can make use of it now.

This given, I just can say a huge "Thank You!" to the PostgreSQL team.


Best,
Sven

No comments:

Post a Comment