Обсуждение: Requesting clarification on Vacuuming/Freezing behaviour
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>)
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 Heikki. I misunderstood things. Especially the comment in log_heap_freeze misled me.
--
Thanks,
Gokul.
CertoSQL Project,
Allied Solution Group.
(www.alliedgroups.com)
On Dec 17, 2007 1:39 PM, Heikki Linnakangas <heikki@enterprisedb.com > wrote:
Gokulakannan Somasundaram wrote:Umm, no we don't. In log_heap_freeze, we log an array of offsets, of
> 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.
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)