Re: [HACKERS] MVCC works in serialized mode!

Bruce Momjian <maillist@candle.pha.pa.us>

From: Bruce Momjian <maillist@candle.pha.pa.us>
To: vadim@krs.ru (Vadim Mikheev)
Cc: hackers@postgreSQL.org
Date: 1998-12-18T19:49:40Z
Lists: pgsql-hackers

Attachments

> Bruce Momjian wrote:
> > 
> > > 6. I'm not happy with current deadlock detection code!
> > >    It seems that backend does DeadLockCheck each time
> > >    when timer expired - shouldn't this be done _once_,
> > >    before backend is going to sleep ?!
> > 
> > Not sure.  Now that I think of it, it makes sense that if I go to sleep,
> > a deadlock is not sudenly going to appear while I am asleep.  If a new
> > process causes a deadlock, the new process that causes it will see it.
> > 
> > I did not check when I went to sleep because I thought it may be too
> > cpu-intensive to do checking on every sleep, but now that I remember it,
> > it may be very trivial in cpu time to do the check on every sleep.
> > 
> > I recommend changing it to do it just before every sleep.  Let me know
> > if you want me to make the change.
> 
> May be we could just reduce first sleep time (60 sec is too long),
> do DeadLockCheck _only once_, after first SIGALARM, and after that
> just sleep forever ?
> Why do DeadLockCheck many times ?
> 
> Let's think more...
> 
> And please consider when lock conflict occures:
> 
> 1. One process tries update row being updated by other.
> 2. When reading/writing hashes (I hope to change btrees to
>    use new buffer context lock code, as heap access methods
>    do, - this is short term locking without deadlocks and so -
>    without using lockmanager).
> 
> Vadim
> 

I have applied the following patch.  It causes only one deadlock check
after a sleep of one second.  Applied only to the CURRENT tree.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026