[postgis-devel] Parallel Support

Paul Ramsey pramsey at cleverelephant.ca
Fri Mar 25 12:20:55 PDT 2016


FYI, I have a parallel query/aggregate branch going here

https://github.com/pramsey/postgis/tree/parallel

I've marked most of the functions as PARALLEL SAFE, for better or worse.

Aggregates are frustrating, the one that we probably want to
parallelize the most, ST_Union, is quite tricky to do. Basically, we
need to get parallelism into the transfn stage, since by the time you
get to the combinefn or finalfn the result has already been returned
to the master. In order to get some work done in the transfn I think
we basically need to run a union every N records, which means a bad
magic number in there, as well as washing out the benefits of cascaded
union.

You can still test a parallel union aggregate though, the ST_MemUnion
aggregate is trivial to parallelize, and I have done so. Also
ST_Extent. ST_Collect doesn't have any benefit to parallelizing (since
it's mostly about memory copying).

For testing you'll probably end up messing with the parallel gucs
which are described here:

https://gist.github.com/pramsey/ff7cbf70dbe581189565

P.



More information about the postgis-devel mailing list