Re: Vacuum now uses AccessShareLock for analyze - Mailing list pgsql-hackers

From The Hermit Hacker
Subject Re: Vacuum now uses AccessShareLock for analyze
Date
Msg-id Pine.BSF.4.21.0005291337330.608-100000@thelab.hub.org
Whole thread Raw
In response to Re: Vacuum now uses AccessShareLock for analyze  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: Vacuum now uses AccessShareLock for analyze
List pgsql-hackers
On Mon, 29 May 2000, Bruce Momjian wrote:

> > On Mon, 29 May 2000, Bruce Momjian wrote:
> > 
> > > I have changed vacuum so analyze now uses AccessShareLock.  (Is this the
> > > proper lock for analyze?)
> > > 
> > > The code will now vacuum all requested relations.  It will then analyze
> > > each relation.  This way, all the exclusive vacuum work is done first,
> > > then analyze can continue with shared locks.
> > 
> > hrmmm, here's a thought ... why not vacuum->analyze each relation in
> > order?  the 'exclusive lock' will prevent anyone from reading, so do a
> > relation, release the lock to analyze that relation and let ppl access the
> > database ... then do the next ... instead of doing an exclusive lock for
> > the duration of the whole database ...
> 
> No, each table is locked one at a time.  We do all the single-table
> locks first so the rest is all shared access.  Does that make sense?

its what I suspected, but my point was that if we did the ANALYZE for the
relation right after the VACUUM for it, there would be a period of time
where readers could come in and process ... think of it as a 'breather'
before the next VACUUM starts, vs just jumping into the next ...

Overall time for doing the vacuum shouldn't be any longer, but it would
give gaps where readers could get in and out ... we're a relational
database, so I imagine ppl are doing JOINs ... if RelationA is locked
while ReaderA is trying to doign a JOIN between RA and RB, ReaderA is
gonna be screwed ... if we did a quick ANALZE between RelationA and
RelationB, then ReaderA would have a chance to do its processing while the
ANALYZE is running, instead of having to wait for both RelationA and
RelationB to be finished ...



pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Vacuum now uses AccessShareLock for analyze
Next
From: Tom Lane
Date:
Subject: Re: Additional system indexes