Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Solution for 01555

Solution for 01555

From: vlad <bulk_at_sfatcu.com>
Date: Tue, 21 Jan 2003 07:55:36 GMT
Message-ID: <Y17X9.74571$kH3.11417@sccrnsc03>


I've been reading up on Oracle lately and find their multi-version concurrency model very intruiging. One of the downsides of this model, though, seems to be the dreaded "01555 snapshot too old" error. It seems to me that this something Oracle should have handled this problem internally so that users never get that error. I would propose something like this:

Let's say we are about to overwrite some undo data. 1) Get the SCN of block whose data we're about to overwrite in the rollback segment.
2) Compare to SCN of oldest active transaction. 3) If smaller, OK to overwrite. Otherwise, cannot overwrite. Must expand rollback segment and continue writing there.

I would think that data needed for an active transaction's read consistent view should be just as holy as undo data that is need to rollback an uncommitted transaction. Don't touch it until you make sure no user will ever need it. Why couldn't something like this be done to avoid all the grief about "snapshot too old"? Received on Tue Jan 21 2003 - 01:55:36 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US