Re: Make CLUSTER MVCC-safe

Поиск
Список
Период
Сортировка
От Simon Riggs
Тема Re: Make CLUSTER MVCC-safe
Дата
Msg-id 1174506280.6069.69.camel@silverbirch.site
обсуждение исходный текст
Ответ на Make CLUSTER MVCC-safe  (Heikki Linnakangas <heikki@enterprisedb.com>)
Список pgsql-patches
On Tue, 2007-03-20 at 18:20 +0000, Heikki Linnakangas wrote:
> This patch makes CLUSTER MVCC-safe. Visibility information and update
> chains are preserved like in VACUUM FULL.

Sounds good.

> CLUSTER is currently the only user of the facility, but I'm envisioning
> we might have other users in the future. For example, a version of
> VACUUM FULL that rewrites the whole table.

I would be very much in favour of that, as discussed on -hackers.

There might be some requirement for the older VACUUM FULL behaviour, so
I'd like to suggest the syntax:

VACUUM FULL tablename [REPLACE | PRESERVE [STORAGE]];

where VACUUM FULL foo REPLACE STORAGE would be the new default, using
your new functions, and PRESERVE STORAGE would implement the old method.

> One complication in the implementation was the fact that heap_insert
> overwrites the visibility information, and it doesn't write the full
> tuple header to WAL. I ended up implementing a special-purpose
> raw_heap_insert function instead, which is optimized for bulk inserting
> a lot of tuples, knowing that we have exclusive access to the heap.
> raw_heap_insert keeps the current buffer locked over calls, until it
> gets full, and inserts the whole page to WAL as a single record using
> the existing XLOG_HEAP_NEWPAGE record type.

I submitted Fast CLUSTER patch earlier which avoided writing WAL in the
same way that has been done for COPY, CREATE INDEX and CTAS. Would you
like to update your patch to do this also, or would you like me to
re-write the patch to fit with yours?

--
  Simon Riggs
  EnterpriseDB   http://www.enterprisedb.com



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: patch adding new regexp functions
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Make CLUSTER MVCC-safe