On Tue, Feb 28, 2012 at 2:31 AM, nathanelrick <[email protected]> wrote: > > by the way i use isc_tpb_read_committed + isc_tpb_no_rec_version + > isc_tpb_wait but i have all the time deadlock when i do massive update > (update on thousands rows) > > What can cause a deadlock when using isc_tpb_read_committed + > isc_tpb_no_rec_version + isc_tpb_wait ? because i was thinging that the > transaction simply wait (undefinitively?) that rec are committed instead of > raising a deadlock ...
The problem is that the read_committed transaction will fail if it tries to update a record version created by a concurrent transaction, even if that transaction has committed. It's kinda dumb, but that's the way it's implemented. Read-committed transactions follow the same update concurrency rules as consistent read transaction. Even though a read-committed transaction can read a record version that was created and committed by a concurrent transaction, it can can't update that version. I stand by my preference for concurrency as an isolation mode. Good luck, Ann
