Re: GSoC - Materialized Views - is stale or fresh?

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: GSoC - Materialized Views - is stale or fresh?
Дата
Msg-id 4C15C399.4010209@enterprisedb.com
обсуждение исходный текст
Ответ на GSoC - Materialized Views - is stale or fresh?  (Pavel Baros <baros.p@seznam.cz>)
Ответы Re: GSoC - Materialized Views - is stale or fresh?  (Pavel Baroš <baros.p@seznam.cz>)
Список pgsql-hackers
On 12/06/10 17:18, Pavel Baros wrote:
> I am curious how could I solve the problem:
>
> During refreshing I would like to know, if MV is stale or fresh? And I
> had an idea:
>
> In fact, MV need to know if its last refresh (transaction id) is older
> than any INSERT, UPDATE, DELETE transaction launched against source
> tables. So if MV has information about last (highest) xmin in source
> tables, it could simply compare its own xmin to xmins (xmax for deleted
> rows) from source tables and decide, if is stale or fresh.
>
> Whole realization could look like this:
> 1. Make new column in pg_class (or somewhere in pg_stat* ?):
> pg_class.rellastxid (of type xid)
>
> 2. After each INSERT, UPDATE, DELETE statement (transaction)
> pg_class.rellastxid would be updated. That should not be time- or
> memory- consuming (not so much) since pg_class is cached, I guess.

rellastxid would have to be updated at every insert/update/delete. It 
would become a big bottleneck. That's not going to work.

Why do you need to know if a MV is stale?

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


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

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: visibility map
Следующее
От: Greg Smith
Дата:
Сообщение: Re: GSoC - Materialized Views - is stale or fresh?