|Subject||Re: [Firebird-Architect] Read Committed No Wait transactions|
On 23 Sep 2004 at 13:49, Ann W. Harrison wrote:
> At 05:29 AM 9/22/2004, Pavel Cisar wrote:
> >About NOWAIT option, it has it's use especially on write-only
> >transactions to detect collisions between concurrent updates more
> >quickly. Because all transactions normally end as committed, it's
> >pointless to wait on outcome of blocking one.
> With the caveat that in a contentious environment waiting
> for the commit/rollback can avoid live lock.
Yes, definitely when the reaction to the collision is an instant retry.
But it's a problem only in specific scenario. When row was deleted, then
there is nothing you can retry. If it's updated, you have to consult with
user the possibility of lost updates first before retry. Instant retry is
possible only on inserts, but they may collide only on poorly designed
transactions / systems where insert is tied together with update (for
example update to the last ID in ID generating table or update of total
amount on some row). This may of course happen on linked updates too, but
they are not so inclined to instant retry.