home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.databases
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!rpi!batcomputer!cornell!fafnir!rcbc
- From: rcbc@fafnir.cs.cornell.edu (Robert Cooper)
- Subject: Re: Hot Standby DBMS's
- In-Reply-To: dhepner@cup.hp.com's message of Mon, 24 Aug 1992 18:49:29 GMT
- Message-ID: <RCBC.92Aug26125402@fafnir.cs.cornell.edu>
- Sender: rcbc@cs.cornell.edu (Robert Cooper)
- Reply-To: rcbc@cs.cornell.edu
- Organization: Cornell Univ. CS Dept, Ithaca NY 14853
- References: <RCBC.92Aug24122743@fafnir.cs.cornell.edu> <BtI4AH.D81@cup.hp.com>
- Date: Wed, 26 Aug 1992 17:54:02 GMT
- Lines: 63
-
- > >The latter approach has a number of tricky problems that people have
- > >pointed out. The main one is ensuring that concurrency control is
- > >coordinated between the replicated data managers so that exactly the same
- > >order of data updates and accesses occurs on both replicas.
- >
- > Fine, but "coordination of concurrency control" is not required to
- > achieve that goal if you use distributed transactions. "Coordination
- > of the input streams" may however be required to prevent deadlock
- > causing race conditions.
-
- Let's say we are updating bank account A at the primary and backup.
- I was envisaging something like this:
-
- top-level-trans
- parallel begin
- sub-trans-1
- update A on server 1
- end
- sub-trans-2
- update A on server 2
- end
- end
- end
-
- In which case we could not guarantee (without knowledge of the scheduling
- and concurrency control internal to server 1 and server 2) whether
- the updates to A would be serialized identically at the two servers, given
- that other transactions might be simultaneously updating those account
- records, etc. We'd want to ensure that both subtransactions claimed the
- same locks in the same order with respect to competing transactions.
-
- Instead we could do this:
-
- top-level-trans
- serial-begin
- sub-trans-1
- update A on server 1
- end
-
- sub-trans-2
- apply results from sub-trans-1 to A on server 2
- end
- end
- end
-
- In this case we perform the logical operation on A at server 1, record the
- modified data items and apply those updates to server 2. Basically what
- this code is just a roundabout way of reading the journal from server 1 and
- applying the updates it records to server 2.
-
- I presume this is Dan Hepner's point, and he's right. Distributed nested
- transaction systems look like they will allow people to program this
- solution. My only comment would be that this doesn't look much easier than
- the solutions people are coming up with using Isis and non-distributed
- transactions.
-
- Has anyone actually implemented a primary-backup database using distributed
- transactions in this way? Are nested transactions (or at least some
- conditional commit mechanism) part of Tuxedo, Encina, etc?
-
- -- Robert
- --
- --
-