home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.databases
- Path: sparky!uunet!gatech!darwin.sura.net!mips!mips!decwrl!deccrl!news.crl.dec.com!news!nntpd.lkg.dec.com!nntpd.lkg.dec.com!shah
- From: shah@tay1.dec.com (Amitabh Shah)
- Subject: Re: distributed transactions
- In-Reply-To: edwards@world.std.com's message of Fri, 21 Aug 1992 12:44:30 GMT
- Message-ID: <SHAH.92Aug25125615@santur.tay1.dec.com>
- Sender: usenet@nntpd.lkg.dec.com (USENET News System)
- Organization: Digital Equipment Corporation, TAY1, Littleton MA
- References: <9208210244.AA07031@hplwk.hpl.hp.com> <BtC3E7.9yx@world.std.com>
- Date: Tue, 25 Aug 1992 17:56:15 GMT
- Lines: 42
-
-
- On Fri, 21 Aug 1992 12:44:30 GMT, edwards@world.std.com (Jonathan Edwards) said:
-
- > In article <9208210244.AA07031@hplwk.hpl.hp.com> albert@HPLWK.HPL.HP.COM (Joseph Albert) writes:
- >>
- >>If a non-blocking commit protocol is used, any transaction started at
- >>a remote site which went down can be aborted, releasing its locks, and
- >>leaving the database in a transaction-consistent state.
- >>
- > Could you site some references or examples for this statement?
- > Certainly the conventional 2-phase commit protocol (which is what is
- > implemented by all commercial instances of distributed TP that I know of)
- > can easily leave you in a blocked-or-inconsistent state.
-
- A non-blocking commit protocol will have to be at least a 3-phase commit. It
- was shown by Dale Skeen ("Non-blocking Commit Protocols", I think it's in ACM
- SIGMOD proceedings, circa 1981). Skeen also proves that by inserting a third
- phase called "prepare to commit" (between the canonical "wait" and "commit"
- phases of the 2-phase commit), one can avoid blocking. Thus, 3-phase is a
- necessary and sufficient condition for non-blocking.
-
- Of course, you have to pay the penalty for the third phase (an extra round of
- communication between the coordinator and its cohorts); this can be
- substantial. One way of reducing this overhead is to have few sites (>2)
- execute the 3-phase protocol; the others can still execute 2-phase. As long as
- one of the first set is operational, this will be a non-blocking commit. This
- way one can have a non-blocking protocol with a very high probability.
-
- Most of this discussion has been academic: I don't know of any real
- (commercial) db product using 3-phase commit.
-
- -amitabh.
-
-
-
- --
- ______________________________________________________________________________
- Amitabh Shah shah@tay1.dec.com----(INTERNET)
- Digital Equipment Corporation santur::shah----------(EASYNET)
- Software Performance Group +1 508 952 4430---------(PHONE)
- 151 Taylor St. Littleton MA 01460 +1 508 952 4197-----------(FAX)
-
-