Re: Phantom Inserts
Date: Wed, 01 Mar 1995 23:49:00 -0500
Message-ID: <yuKLl0iA$9CH065yn_at_login.dknet.dk>
In article <finkel.212.0036CAE6_at_links.com>, Richard Finkelstein wrote:
> Read-only transactions can use MVRC effectively. The whole transaction can be
> set to read-only and then the transaction would only see a consistent version
> of the result set at a point in time. Your point concerning the construction
> of the MVRC result set is a good one. There is assuredly some overhead
> associated with reading rollback segments (especially if they are the long
> rollback segments) when try to find the correct version of a record. This
> problem would be most acute when accessing a database that is being heavilty
> updated. Another side-effect is that it is possible that Oracle cannot
> construct the consistent result set - i.e., the correct version of the record
> is no longer on the rollback segment because it has been overwritten. This is
> most likely to occur when a MVRC transaction has been executing for a long
> time and there is a high volume of update transaction. In this case the MVRC
> will abort.
>
> Hope this helps a bit.
This was pretty much what the Concepts Manual said. I especially don't like the idea of the possibility of getting an ORA-1555 message: Snapshot too old (rollback segment too small).
I am planning to make my very simple database package transactional and perhaps put SQL on top of it. I used to think that designing and implementing the actual parsing, optimization and execution of SQL would be a difficult task, but now that all seem like nothing compared to the problems involved in providing ACID properties.
I have read "Transaction Processing: Concepts and Techniques" by Andreas Reuter and Jim Gray, which I can highly recommend to anyone interested in the subject. But I am now looking for a similiar book about implementing SQL which hopefully addresses some of these problems.
Thomas Pedersen
-- ____________ ___ ____ _ _ _ _ |_ | _/| _ | _ | _/| | | | \| | zeppelin_at_login.dknet.dk / /| _>| _| _| _>| |_| | | /___|___\|_| |_| |___\|___|_|_|\_|Received on Thu Mar 02 1995 - 05:49:00 CET