On Thu, Jan 11, 2018 at 9:02 AM, Stephen Frost <sfrost@snowman.net> wrote:
> Parallel pg_dump is based on synchronized transactions though and we
> have a bunch of checks in ImportSnapshot() because a pg_dump parallel
> worker also can't really be quite the same as a normal backend. Perhaps
> we could add on more restrictions in ImportSnapshot() to match the
> restrictions for parallel-mode workers? If we think there's other users
> of SET TRANSACTION SNAPSHOT then we might need to extend that command
> for this case, but that seems relatively straight-forward. I don't know
> how reasonable the idea of taking a normally-started backend and making
> it close enough to a parallel worker when a SET TRANSACTION SNAPSHOT
> PARALLEL (or whatever) happens to allow it to skip the lock fairness is
> though.
It seems pretty tricky to me. I actually don't think this use case
has all that much in common with the parallel query case. Both can be
addressed by tweaking the lock manager, but I think this needs a
different set of tweaks than that did.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company