Re: computational model of transactions

From: Cimode <cimode_at_hotmail.com>
Date: 1 Aug 2006 11:10:50 -0700
Message-ID: <1154455849.983539.35810_at_b28g2000cwb.googlegroups.com>


Marshall wrote:
> I've been thinking about concurrency and transactions. It occurs to me
> that much of the difficulty lies with the fact that multiple concurrent
> transactions may operate on the same data. I begin to recall some
> conversations from years past about "multiple assignment".
Transaction concurrency is an independent problem from integrity and should be dealt with *separately*..However preserving integrity is superior interest...

> It seems to me that much or maybe all of the difficulty with multiple
> concurrent transactions operating on the same data would be
> eliminated if it wasn't possible for a transaction to read back
> the results of its own writes.
A ridiculous assumption...

This kind of claim is equivalent to state that DBMS's should not be supporting versionning to work better. A total breach of data independence...How can integrity be preserved then? . A read access should ALWAYS access to the last committed version of the data written not just the data written on a just-in-time basis else you take a huge risk at corrupting your data.

Last week I had the example of an application opening 2500 UPDATE/SELECT (update on Table1 based on a selects on Table1) transactions in 5 minutes. Among the 2500 transactions 1500 were committed and 1000 were rolled back after 1 hour...Do you have any idea of how the data would look like on Table1 if the SELECT's were not made on a committed version of the data?

> In other words, consider the model in which transactions can only
> observe the database state that was current at the time the
> transaction started.
Much more complex than that. Impossible to handle by using SQL DBMS.

> So, how much of a burden, at the *logical* level, would this be?
Burden is not the least of problems if you trade integrity fro concurrency...It's a loose/loose choice...

> Clearly it is not the same as with SQL transactions. Does it
> matter? Is there a use case I'm not thinking of that makes this
> problematic? I will admit there have been times where I've
> opened up an interactive SQL session, started a transaction,
> and typed a whole series of DML, and observed the results
> along the way, but I don't think I've ever written *code* that
> does anything like that.
Don't. A pure waste of time.

> Your experiences and thoughts are appreciated.
Few pointers...
Check articles about *Read Consistency* (Oracle), *versionning* (general) and *READ_COMMITED_SNAPSHOT* (SQL Server)

> Marshall
Received on Tue Aug 01 2006 - 20:10:50 CEST

Original text of this message