Re: When/if to Reindex

Поиск
Список
Период
Сортировка
От Steven Flatt
Тема Re: When/if to Reindex
Дата
Msg-id 357fa7590708240956k18e3ba7dv735cdaa99a667312@mail.gmail.com
обсуждение исходный текст
Ответ на Re: When/if to Reindex  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: When/if to Reindex
Список pgsql-performance
On 8/24/07, Tom Lane <tgl@sss.pgh.pa.us> wrote:
"Steven Flatt" <steven.flatt@gmail.com> writes:
> Why do we even need to consider calling RelationGetNumberOfBlocks or looking
> at the pg_class.relpages entry?  My understanding of the expected behaviour
> is that while a reindex is happening, all queries run against the parent
> table are planned as though the index isn't there (i.e. it's unusable).

Where in the world did you get that idea?
 
Maybe that's what I was *hoping* the behaviour would be. :)
 
From the docs:
"REINDEX locks out writes but not reads of the index's parent table."
"It also takes an exclusive lock on the specific index being processed..."
 
I believe those two statements imply that reads of the parent table don't take any lock whatsoever on the index being processed, i.e. they ignore it.

If we had a REINDEX CONCURRENTLY it might work that way.  A normal
REINDEX cannot "mark" anything because it runs within a single
transaction; there is no way that it can emit any catalog changes
that will be visible before it's over.
... but I understand this difficulty.
 
So, can we simply trust what's in pg_class.relpages and ignore looking directly at the index?  This is a fairly serious concern for us, that reindex is blocking all readers of the parent table.
 
Thanks,
Steve
 

В списке pgsql-performance по дате отправления:

Предыдущее
От: "Luke Lonergan"
Дата:
Сообщение: Re: partitioned table and ORDER BY indexed_field DESC LIMIT 1
Следующее
От: Tom Lane
Дата:
Сообщение: Re: When/if to Reindex