Subject | Re: [Firebird-general] Snapshot Isolation in A Critique of ANSI SQL Isolation Levels |
---|---|
Author | Ann W. Harrison |
Post date | 2010-10-18T16:53:55Z |
On 10/16/2010 9:58 AM, Jonathan Bond-Caron wrote:
second concurrent update if that transaction is in their "serializable"
mode if the first updater commits, just as Firebird does. They have a
"read committed" mode that is closer to "write committed" where the
second updater waits and applies its update to the newly committed
version. That's what InnoDB, MySQL's transactional storage engine,
does. It gives the odd effect that SELECT and SELECT ... FOR UPDATE
can give different results.
Cheers,
Ann
> For example, some databases don't bother with write conflicts:Hmmm... I think that PostgreSQL will send a fatal error to the
>
> PostgreSQL in SERIALIZABLE isolation level will not block/wait if
> conflicting UPDATE statements happen.
>
> It provides a "read snapshot in isolation" but allows 'conflicting writes'
> to happen concurrently.
> This is somewhat ok since all reads by concurrent transaction are isolated.
second concurrent update if that transaction is in their "serializable"
mode if the first updater commits, just as Firebird does. They have a
"read committed" mode that is closer to "write committed" where the
second updater waits and applies its update to the newly committed
version. That's what InnoDB, MySQL's transactional storage engine,
does. It gives the odd effect that SELECT and SELECT ... FOR UPDATE
can give different results.
>That's what I like about open source.
>> A second, more general question is whether anyone knows of a database
>> in commercial use that tries to order transactions based on their
>> relative start time (as Reed does) rather than having each new
>> transaction note the state of other transactions at that instant?
>
> Good question, I think the commercial databases don't share enough their
> internals :)
Cheers,
Ann