timeout on lock feature

Поиск
Список
Период
Сортировка
От Henryk Szal
Тема timeout on lock feature
Дата
Msg-id 9as2j5$8la$1@news.tht.net
обсуждение исходный текст
Ответы Re: timeout on lock feature  (Bruce Momjian <pgman@candle.pha.pa.us>)
Re: timeout on lock feature  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Hi,

I implement additional server functionality. Currently (v7.0.3), executing
SQL update statement on the same
row from inside two different processess results in blocking second process
to the end of transaction in
the first one. In real OLTP application second process can't wait too long.
After few seconds server should
return to the application message:'lock timeout exceeded'. I modify postgres
lock manager source code to
obtain that functionality. I take advantage of deadlock detection mechanism.
Currently deadlock
detection routine initialy check for simple deadlock detection between two
processess, next insert lock
into lock queue and after DEADLOCK_CHECK_TIMER seconds run HandleDeadLock to
comprehensive deadlock detection.
To obtain 'timeout on lock' feature I do as follow:

1. Add new configure parameter. Currently I add #define statement in file
include/config.in   #define NO_WAIT_FOR_LOCK 1   In the future somebody can add new option to SQL SET command

2. Modify HandleDeadLock routine. In file backend/storage/lmgr/proc.c change
lines 866-870
   if (!DeadLockCheck(MyProc, MyProc->waitLock))   {       UnlockLockTable();       return;   }
   to
   if (!NO_WAIT_FOR_LOCK)   {       if (!DeadLockCheck(MyProc, MyProc->waitLock))       {           UnlockLockTable();
        return;       }   }
 

With this modyfication every conflicting lock wait DEADLOCK_CHECK_TIMER
seconds in queue and returns with error
'deadlock detect'.

Who can add this simply 'timeout on lock' implementation to the next
postgres server release?





В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Rod Taylor"
Дата:
Сообщение: Re: "--tuning" compile and runtime option (?)
Следующее
От: Justin Clift
Дата:
Сообщение: Re: "--tuning" compile and runtime option (?)