Gokulakannan Somasundaram wrote:
On 11/5/07, Heikki Linnakangas <[EMAIL PROTECTED]> wrote:
AFAICS, pointer-swinging would be exactly the same on cross-page HOT
chains as same-page chains.

When i read pointer-swinging, it talks a lot about in-page updates, pointing
to the latest tuple instead of oldest tuple and circular pointers etc.
Maybe, if i am missing the post, which you are referring to, please correct
me on the steps i am talking about.

It talks about in-page updates etc, because we are only doing HOT updates within page. The pointer-swinging would still work across page boundaries, AFAICS.

This scheme, if implemented would avoid the use of HOT stub and avoids the
need to go to index, even if some other indexes are getting updated/ even if
the updated new tuple goes into a new page

You'd still have the HOT stubs until the next VACUUM.

a) Whenever we update, we will update only those indexes whose attributes
are updated. So the index will point to the top of the HOT chain.

I don't see how pointer-swinging would solve the problem with updating just some indexes. On vacuum, you'd have to know which indexes were updated, and remove the old pointers in the ones that were updated, and pointer-swing others. You could store that information in the heap tuple, but that means more bloat in the heap, and more complexity.

We did talk about that back in spring as well, but all the suggestions were quite complex. Besides, as soon as you insert at least one new index pointer, you no longer can remove the dead HOT updated tuple without scanning at least that one index.

b) Whenever we Vacuum the index, we take a list of tids and check whether
there are any index tuples pointing to it. If the Vacuumed tuple is a start
of the HOT chain, then we will carry the next in-line HOT tuple when we goto
Vacuum the index. If the next in-line also satisfies the Vacuum, it will
carry with it the next in-line HOT tuple-id.

Sorry, I didn't understand that. But the way you described it earlier, it's exactly the same thing as the pointer-swinging we talked about in spring. Is it the same or not?

This will remove the in-page pruning exercises, but as i said already the
cost of updates will go down a lot with normal indexes.

We don't want to get rid of the in-page pruning. It allows us to reclaim dead space without having to VACUUM. That's a major point of HOT.

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

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to