There is a problem with this approach
that may only become apparent at high
concurrency.

Since you are operating with two-phase
commits, you may come up against the case
where "writers block readers".

Your client issues a commit to both servers.
Each server get the PREPARE message,
and when both have responded, each gets
the COMMIT message.

Between the PREPARE and COMMIT,
any blocks updated in the transaction
cease to be available to ANY query
that started after the PREPARE arrived.

For the (hopefully) brief interval between
the prepare and commit, neither database
knows whether the transaction as a whole
has prepared or committed, so any process
that wants to see the current version of the
data has to wait until there is a known current
version.

In a high-concurrency system, a problem
that used to be "buffer busy waits" on updates
only can turn into enqueue waits on updates
and queries.

Regards

Jonathan Lewis
http://www.jlcomp.demon.co.uk

  The educated person is not the person
  who can answer the questions, but the
  person who can question the answers -- T. Schick Jr


One-day tutorials:
http://www.jlcomp.demon.co.uk/tutorial.html


Three-day seminar:
see http://www.jlcomp.demon.co.uk/seminar.html
____UK___November


The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html


----- Original Message ----- 
To: "Multiple recipients of list ORACLE-L" <[EMAIL PROTECTED]>
Sent: Saturday, December 13, 2003 8:19 PM


Yep, I also think so. I'm currently developing a small prototype for this
kind of transparent proxy, which I'll post here when it's stable...

Tanel.

> Tanel,
>
> I think this is a good solution, provided the application can handle
> two phased commit protocol across both the databases, else there
> could be orphan records on one or both these databases.
>

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Jonathan Lewis
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to