Re: [PATCHES] [HACKERS] HOT WIP Patch - version 2

2007-02-20 Thread Tom Lane
Bruce Momjian [EMAIL PROTECTED] writes:
 Pavan Deolasee wrote:
 When following a HOT-update chain from the index fetch, if we notice that
 the root tuple is dead and it is HOT-updated, we try to prune the chain to
 the smallest possible length. To do that, the share lock is upgraded to an
 exclusive lock and the tuple chain is followed till we find a
 live/recently-dead
 tuple. At that point, the root t_ctid is made point to that tuple. In order

 I assume you meant recently-dead here, rather than live/recently-dead,
 because we aren't going to change live ctids, right?

Recently dead means still live to somebody, so those tids better not
change either.  But I don't think that's what he meant.  I'm more
worried about the deadlock possibilities inherent in trying to upgrade a
buffer lock.  We do not have deadlock detection for LWLocks.

regards, tom lane

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [PATCHES] [HACKERS] HOT WIP Patch - version 2

2007-02-20 Thread Bruce Momjian
Tom Lane wrote:
 Bruce Momjian [EMAIL PROTECTED] writes:
  Pavan Deolasee wrote:
  When following a HOT-update chain from the index fetch, if we notice that
  the root tuple is dead and it is HOT-updated, we try to prune the chain to
  the smallest possible length. To do that, the share lock is upgraded to an
  exclusive lock and the tuple chain is followed till we find a
  live/recently-dead
  tuple. At that point, the root t_ctid is made point to that tuple. In order
 
  I assume you meant recently-dead here, rather than live/recently-dead,
  because we aren't going to change live ctids, right?
 
 Recently dead means still live to somebody, so those tids better not
 change either.  But I don't think that's what he meant.  I'm more
 worried about the deadlock possibilities inherent in trying to upgrade a
 buffer lock.  We do not have deadlock detection for LWLocks.

I am guessing he is going to have to release the lock, then ask for an
exclusive one.

-- 
  Bruce Momjian  [EMAIL PROTECTED]  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly


Re: [PATCHES] [HACKERS] HOT WIP Patch - version 2

2007-02-20 Thread Pavan Deolasee

On 2/20/07, Bruce Momjian [EMAIL PROTECTED] wrote:


Tom Lane wrote:

 Recently dead means still live to somebody, so those tids better not
 change either.  But I don't think that's what he meant.  I'm more
 worried about the deadlock possibilities inherent in trying to upgrade a
 buffer lock.  We do not have deadlock detection for LWLocks.

I am guessing he is going to have to release the lock, then ask for an
exclusive one.



Yes, thats what is done. Since we try to prune the HOT-update chain
even in the SELECT path, we upgrade the lock only if we are sure
that there is atleast one tuple that can be removed from the chain
or the root needs to be fixed (broken ctid chain for some reason).

Thanks,
Pavan

--

EnterpriseDB http://www.enterprisedb.com