On 18 March 2016 at 10:13, James Sewell <james.sewell@lisasoft.com> wrote:
> This does bring up an interesting point I don't quite understand though. If I run parallel agg on a table with 4 rows
with2 workers will it run on two workers (2 rows each) or will the first one grab all 4 rows?
It works on a per page basis, workers just each grab the next page to
be scanned from a page counter that sits in shared memory, the worker
just increments the page number, releases the lock on the counter and
scans that page.
See heap_parallelscan_nextpage()
So the answer to your question is probably no. At least not unless the
the page only contained 2 rows.
-- David Rowley http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services