Re: WIP patch for parallel pg_dump - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: WIP patch for parallel pg_dump
Date
Msg-id 4CF854EF.3080100@dunslane.net
Whole thread Raw
In response to Re: WIP patch for parallel pg_dump  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: WIP patch for parallel pg_dump  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers

On 12/02/2010 09:09 PM, Tom Lane wrote:
> Andrew Dunstan<andrew@dunslane.net>  writes:
>> On 12/02/2010 05:32 PM, Tom Lane wrote:
>>> (I'm not actually convinced that snapshot cloning is the only problem
>>> here; locking could be an issue too, if there are concurrent processes
>>> trying to take locks that will conflict with pg_dump's.  But the
>>> snapshot issue is definitely a showstopper.)
>> Why is that more an issue with parallel pg_dump?
> The scenario that bothers me is
>
> 1. pg_dump parent process AccessShareLocks everything to be dumped.
>
> 2. somebody else tries to acquire AccessExclusiveLock on table foo.
> hmm.
> 3. pg_dump child process is told to dump foo, tries to acquire
> AccessShareLock.
>
> Now, process 3 is blocked behind process 2 is blocked behind process 1
> which is waiting for 3 to complete.  Can you say "undetectable deadlock"?
>
>             

Hmm. Yeah. Maybe we could get around it if we prefork the workers and 
they all acquire locks on everything to be dumped up front in nowait 
mode, right after the parent, and if they can't the whole dump fails. Or 
something along those lines.

cheers

andrew



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: WIP patch for parallel pg_dump
Next
From: Tom Lane
Date:
Subject: Re: WIP patch for parallel pg_dump