Subject | Re: SELECT WITH LOCK, WAIT transaction, deadlock |
---|---|
Author | Dmitry Yemanov |
Post date | 2016-04-29T14:57:03Z |
29.04.2016 12:38, Gabor Boros wrote:
no-record-version + wait transactions, but WITH LOCK is implemented in a
more clever way and works around this issue by refetching the last
committed version and posting its dummy update on top. So update
conflicts should not be possible there.
Did you see the same issue on v2.5 or only on v3.0? Maybe it's a
regression introduced in the new version. I'm checking the code now,
will report back if anything useful is found.
Dmitry
>> This is true for two concurrent transactions but may fail for three orApparently, I was wrong. My statement is correct for updates inside
>> more concurrent transactions.
>
> Your words shocked me. Firebird cannot handle more than two concurrent
> transactions? What is the purpose of WITH LOCK if see deadlock with and
> without it?
no-record-version + wait transactions, but WITH LOCK is implemented in a
more clever way and works around this issue by refetching the last
committed version and posting its dummy update on top. So update
conflicts should not be possible there.
Did you see the same issue on v2.5 or only on v3.0? Maybe it's a
regression introduced in the new version. I'm checking the code now,
will report back if anything useful is found.
Dmitry