On 2/22/07, Zeugswetter Andreas ADI SD <[EMAIL PROTECTED]> wrote:
> > Yes, thats one option. Though given a choice I would waste > four bytes in the heap-page than inserting a new index entry. No question about that. My point was, that it would mean wasting the 2 (2 must be enough for a slot pointer) bytes on every heap tuple, hot or not. And then the decision is not so obvious anymore. If you don't have the room for the back pointer on every slot, there is no room to add one later.
Oh yes, I agree. I was referring to the idea of line pointer redirection which would waste four bytes (for the root line pointer) per hot-update chain. That occurs only when a tuple is hot-updated. So there is no overhead for normal tuples. Also, since its outside the tuple header, we don't have issues of additional space wastage because of alignment. We would need to teach the code to ignore all such pointers which don't point to a real tuple, but only redirects us to another line pointer. We arrive at this line pointer from the index and then get redirected to another line pointer on the same page. Vacuum would need to delay freeing this line pointer until the hot-update chain is dead. I am waiting for feedback on this since I would like to work on this next. Anybody sees any issue with this approach ? Comments please. Thanks, Pavan -- EnterpriseDB http://www.enterprisedb.com