The open source PostgreSQL database is about to get query parallelisation, starting with just a few processes, and is looking for crash-test dummies to give it a whirl.
Developer Robert Haas blogs that he worked with Amit Kapila over “several years” to get the feature working, and if things go well, he hopes to see the feature included in production code in PostgreSQL 9.6.
Parallelisation works with a “gather” node that supervises (in Haas' demonstration) four workers. He continues:
“Those workers all execute the subplan in parallel. Because the subplan is a Parallel Seq Scan rather than an ordinary Seq Scan, the workers coordinate with each other so that each block in the relation is scanned just once. Each worker therefore produces on a subset of the final result set, and the Gather node collects all of those results.”
Since it's early days, there are limitations that Haas hopes to get fixed before the PostgreSQL 9.6 release cycle: Gather nodes don't work for inheritance hierarchies, and you can't push joins down to workers.
Even a handful of nodes, Haas says, improves performance “quite a bit”, but he would also like more improvement's to the scheme's scalability.
Other credits-where-they're-due from Haas include Noah Misch and his employer, EnterpriseDB.
PostgreSQL's site says the 9.6 release schedule is set for feature freeze in April 2016, followed by a beta in June. ®