On 3/29/07, Gregory Stark <[EMAIL PROTECTED]> wrote:

Besides, it seems if people are
happy to have indexes take a long time to build they could just do a
concurrent build.

I think we discussed this earlier. One of the down-side of CIC is that
it needs two complete heap scans. Apart from that CIC itself needs
to wait for all existing transactions to finish and more than one
instance of CIC can not be run on a table.

Earlier we were talking about not inserting any HOT tuples until the index
became valid. The goal of having an xid on the index was so we would know
we could start doing HOT updates again. That seems like a much lesser cost
than not being able to use the index until all live transactions exit.

What I am proposing is to keep index unusable for existing transactions.
The index is available for all new transactions even if there are unfinished
existing transactions. Is that a big problem ? Well, I still need buy-in and
review from Tom and others on the design, but it seems workable to me.



EnterpriseDB     http://www.enterprisedb.com

Reply via email to