On Thu, 2006-09-14 at 18:25 -0400, Tom Lane wrote:
> Jeff Davis <[EMAIL PROTECTED]> writes:
> > How would creating a new lock type avoid deadlocks when an ANALYZE is
> > accumulating the locks in random order?
> 
> In itself it wouldn't.  Josh Drake sketched the idea in more detail
> later: if there is a lock type used *only* for ANALYZE, then you can do
> ConditionalLockAcquire on it, and if you fail, skip the table on the
> assumption that someone else is already doing what you came to do.
> 
> The whole thing seems a bit too cute/complicated though; it'd open
> various corner cases such as: ANALYZE, run complex query, query takes a
> week because it's using out-of-date stats because previous ANALYZE-r
> hadn't committed yet.  I'd rather ANALYZE always analyzed than sometimes
> fell through without doing anything.
> 

Couldn't you just sort by the table names, and ANALYZE the tables in
that order? Would that effectively prevent the deadlocks?

Regards,
        Jeff Davis



---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to