Re: Parallel Seq Scan vs kernel read ahead
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Ranier Vilela <ranier.vf@gmail.com>,
Amit Kapila <amit.kapila16@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-05-21T22:27:15Z
Lists: pgsql-hackers
On Fri, May 22, 2020 at 10:00 AM David Rowley <dgrowleyml@gmail.com> wrote: > On Thu, 21 May 2020 at 17:06, David Rowley <dgrowleyml@gmail.com> wrote: > > For the patch. I know you just put it together quickly, but I don't > > think you can do that ramp up the way you have. It looks like there's > > a risk of torn reads and torn writes and I'm unsure how much that > > could affect the test results here. > > Oops. On closer inspection, I see that memory is per worker, not > global to the scan. Right, I think it's safe. I think you were probably right that ramp-up isn't actually useful though, it's only the end of the scan that requires special treatment so we don't get unfair allocation as the work runs out, due to course grain. I suppose that even if you have a scheme that falls back to fine grained allocation for the final N pages, it's still possible that a highly distracted process (most likely the leader given its double duties) can finish up sitting on a large range of pages and eventually have to process them all at the end after the other workers have already knocked off and gone for a pint.
Commits
-
Allocate consecutive blocks during parallel seqscans
- 56788d2156fc 14.0 landed