Subject | Read-committed was Read Only Transactions |
---|---|
Author | Ann W. Harrison |
Post date | 2006-09-06T16:16:30Z |
Guido Klapperich wrote:
Atomic - it succeed or fails as a unit
Consistent - when it executes the same query twice,
the only changes it sees are the changes it made
Isolated - actions of concurrent transactions do no
affect it
Durable - when it commits, its changes are part of
the database until another transaction changes the
data.
Most transaction modes relax those rules to a larger or smaller
extent. For databases that rely on record and predicate locks
for concurrency control, fully ACID behavior leads to a high
deadlock rate. Firebird uses versioning for concurrency control
and provides ACID (but not serializable) transactions without
inducing unacceptable levels of deadlocks or update conflicts.
Read-committed transactions see the changes made by concurrent
transactions - they're not consistent. Executing the same select
several times in a single transaction can get different results -
even if the transaction hasn't changed anything. And there's
no gain in concurrency.
Regards,
Ann
>> Read-committed mode violates the Isolation and ConsistencyA transaction is supposed to be ACID -
>> properties of transactions. I don't know why anybody uses
>> it - at least not anybody who cares about consistent results.
>
> Sorry, I don't understand that.
Atomic - it succeed or fails as a unit
Consistent - when it executes the same query twice,
the only changes it sees are the changes it made
Isolated - actions of concurrent transactions do no
affect it
Durable - when it commits, its changes are part of
the database until another transaction changes the
data.
Most transaction modes relax those rules to a larger or smaller
extent. For databases that rely on record and predicate locks
for concurrency control, fully ACID behavior leads to a high
deadlock rate. Firebird uses versioning for concurrency control
and provides ACID (but not serializable) transactions without
inducing unacceptable levels of deadlocks or update conflicts.
Read-committed transactions see the changes made by concurrent
transactions - they're not consistent. Executing the same select
several times in a single transaction can get different results -
even if the transaction hasn't changed anything. And there's
no gain in concurrency.
Regards,
Ann