Обсуждение: Requesting clarification on Vacuuming/Freezing behaviour

Поиск
Список
Период
Сортировка

Requesting clarification on Vacuuming/Freezing behaviour

От
"Gokulakannan Somasundaram"
Дата:
Hi,<br />    I got some time to relook at the index with the snapshot patch. Still i need to complete the freezing of
indextuples with the snapshot.<br />a) When i was looking at the code for freezing heap tuples, i found out the
following.While freezing we log the complete block(not just the tuples we froze). <br />b) Again after removing the
deadtuples and fragmentation, we log the complete block.<br /><br />As i understand, Vacuum is one atomic operation.
Whydo we need to make this extra protection for Freezing?<br />I think the fix should be very simple. Before logging
theFrozen block, we need to check whether there are any dead tuples removed from it.. <br /><br />Please clarify on
whetheri am missing something important..<br clear="all" /><br />-- <br />Thanks,<br />Gokul.<br />CertoSQL Project,<br
/>AlliedSolution Group.<br />(<a href="http://www.alliedgroups.com">www.alliedgroups.com </a>)  

Re: Requesting clarification on Vacuuming/Freezing behaviour

От
Heikki Linnakangas
Дата:
Gokulakannan Somasundaram wrote:
> a) When i was looking at the code for freezing heap tuples, i found out the
> following. While freezing we log the complete block(not just the tuples we
> froze).
> b) Again after removing the dead tuples and fragmentation, we log the
> complete block.

Umm, no we don't. In log_heap_freeze, we log an array of offsets, of 
those tuples that were frozen.

Perhaps you're been confused by full page writes? If a block hasn't been 
modified by last checkpoint, then we do log the whole page for any 
operation, including vacuuming and freezing. (except setting hint bits).

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


Re: Requesting clarification on Vacuuming/Freezing behaviour

От
"Gokulakannan Somasundaram"
Дата:
Thanks Heikki. I misunderstood things. Especially the comment in log_heap_freeze misled me.

On Dec 17, 2007 1:39 PM, Heikki Linnakangas <heikki@enterprisedb.com > wrote:
Gokulakannan Somasundaram wrote:
> a) When i was looking at the code for freezing heap tuples, i found out the
> following. While freezing we log the complete block(not just the tuples we
> froze).
> b) Again after removing the dead tuples and fragmentation, we log the
> complete block.

Umm, no we don't. In log_heap_freeze, we log an array of offsets, of
those tuples that were frozen.

Perhaps you're been confused by full page writes? If a block hasn't been
modified by last checkpoint, then we do log the whole page for any
operation, including vacuuming and freezing. (except setting hint bits).

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



--
Thanks,
Gokul.
CertoSQL Project,
Allied Solution Group.
(www.alliedgroups.com)