Re: Reducing relation locking overhead

From: "Jim C(dot) Nasby" <jim(at)nasby(dot)net>
To: Hannu Krosing <hannu(at)skype(dot)net>
Cc: Greg Stark <gsstark(at)mit(dot)edu>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Gregory Maxwell <gmaxwell(at)gmail(dot)com>, Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Reducing relation locking overhead
Date: 2005-12-08 07:08:10
Message-ID: 20051208070810.GM16053@nasby.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Dec 08, 2005 at 08:57:42AM +0200, Hannu Krosing wrote:
> ??hel kenal p??eval, N, 2005-12-08 kell 00:16, kirjutas Jim C. Nasby:
> > On Sat, Dec 03, 2005 at 10:15:25AM -0500, Greg Stark wrote:
> > > Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
> > > > What's worse, once you have excluded writes you have to rescan the entire
> > > > table to be sure you haven't missed anything. So in the scenarios where this
> > > > whole thing is actually interesting, ie enormous tables, you're still
> > > > talking about a fairly long interval with writes locked out. Maybe not as
> > > > long as a complete REINDEX, but long.
> > >
> > > I was thinking you would set a flag to disable use of the FSM for
> > > inserts/updates while the reindex was running. So you would know where to find
> > > the new tuples, at the end of the table after the last tuple you read.
> >
> > What about keeping a seperate list of new tuples? Obviously we'd only do
> > this when an index was being built on a table.
>
> The problem with separate list is that it can be huge. For example on a
> table with 200 inserts/updates per second an index build lasting 6 hours
> would accumulate total on 6*3600*200 = 4320000 new tuples.

Sure, but it's unlikely that such a table would be very wide, so 4.3M
tuples would probably only amount to a few hundred MB of data. It's also
possible that this list could be vacuumed by whatever the regular vacuum
process is for the table.
--
Jim C. Nasby, Sr. Engineering Consultant jnasby(at)pervasive(dot)com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jim C. Nasby 2005-12-08 07:13:15 Re: [GENERAL] 8.1, OID's and plpgsql
Previous Message Hannu Krosing 2005-12-08 06:57:42 Re: Reducing relation locking overhead