Subject Re: [firebird-support] Re: what is the most fastest isolation level ?
Author Benno
Hi,

just curious, but how many database connections do you use in your application?

If I recall correct, the client libraries (at least in Delphi) in the past were not thread safe. Don't know about current status, but perhaps that is part of your problem.

Benno

----- Original Message -----
From: nathanelrick
To: firebird-support@yahoogroups.com
Sent: Thursday, March 01, 2012 7:31 PM
Subject: [firebird-support] Re: what is the most fastest isolation level ?



> 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.

hello ann,

i just make some try (reading one of your article where you write beleave the code, not the comments) and this is my test

2 threads

isc_tpb_write
isc_tpb_read_committed
isc_tpb_no_rec_version
isc_tpb_wait

1rt thread Start a massive update that take 10 min to finish (update tableA set fieldA = 'xxx'); that let me the time to start thread2

So i launch a second thread that do some insert/delete/update in last reccord in the tableA (that are not yet processed by the massive update)

If i not commit the modification in the 2nd thread, then when the 1rt thread will arrive on the reccord updated/inserted/deleted by the 2nd thread it's will wait a commit/roolback. if in the 2nd thread i commit, then First thread will finish peacefully without any error

so i no understand how it's possible to have any deadlock ?





[Non-text portions of this message have been removed]