CA2119221C - Method for synchronizing transaction processing in a distributed heterogeneous system - Google Patents

Method for synchronizing transaction processing in a distributed heterogeneous system

Info

Publication number
CA2119221C
CA2119221C CA002119221A CA2119221A CA2119221C CA 2119221 C CA2119221 C CA 2119221C CA 002119221 A CA002119221 A CA 002119221A CA 2119221 A CA2119221 A CA 2119221A CA 2119221 C CA2119221 C CA 2119221C
Authority
CA
Canada
Prior art keywords
transaction
resource
phase
sites
commit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA002119221A
Other languages
French (fr)
Other versions
CA2119221A1 (en
Inventor
Robert Alan Gilles
Robert Joseph Grafe
Robert Dean Jackson
Roger Alan Reinsch
Richard Rolland Sanders
Jacob Slonim
Melvin Richard Zimowski
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CA2119221A1 publication Critical patent/CA2119221A1/en
Application granted granted Critical
Publication of CA2119221C publication Critical patent/CA2119221C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

The invention provides transaction synchronization in the form of COMMIT processing in a distributed, heterogeneous database system wherein some resources are synchronized to a transaction by a single-phase commit procedures while other resources synchronize by multi-phase commit procedures. The invention invests an application requestor at an application site with authority to represent all single-phase commit resources in multi-phase commit processing.

Description

:
:

:
METIIOI> FOR ~SYN(~III~()I~II;~IN(i 'I'RANSACl ION l'ROCESSING
IN A l)lSI 1~1131~11~,1) 111~ l IlRO<Jli,Nr-lOlJS SYS IPM

TECEINICAL I~IELD
The invention relates to distrihutcd, transaclion-oricntc(l datahase systcms, and more pa~ ly~
those systems which must coordinatc ~ransactiol1 proccssh1g at a Illurality of sitcs some, but not all, of which, -. -support a multi-phase transaction syncl1roni7.ation procc(lure.

~ ~ BACKGROUND OF TlIE~ INVI~ N I I()N
-~; As pointed out by ( .J. I)ale in V~n Inlro(lucliol1 lo l~alllhasc Systcms", Vol. 2, Addison-Wesley rublishing Company, 1983, thc purrosc Of a databasc syslcm is to carry oul transactions. A Llal1sà~liol1 is a unit of work tl1at consists of tl1e exccution of an ar)rlication-spccirlcd scqucnce of Opcrations initiated with i a BI~GIN transaction operation, includ ing one or more I J l'I)A I G and/or REA 1~ database access opw al;ons, and ending with cither a COMMI I or 13/~(~KOll I opcratiol1. A COMMI I opcration signals successful : ~ .trtmin~ion of lla~ aclion; while a 13A( K(~ IJ l opcmliol1 dcl1olcs unsuccessful lermil1ation of a transaction . due to abnorrnal circumstances.
The COMMIT and 1:3ACKOIJI opcrations arc cmployed to cnsurc the atomic property for lransacliol~s. Retatedly, a transaction either succccds or fails. In succeeding, llle results of the tlall5~lcIiOIl i; are made p~lllld~ (committcd); h1 failing, all eflccts of tllc unsuccessful transaction are rcmoved (backed out).
~: ~Tlall~acl;OIl oriented systcl11s inclu(lc a recovcry manilgcr, or cquivalent, which is typically a plu~dul~; or set of p~u~tJul~ that opcralc to mainlail1 thc atomic nature of'transactions and to re-establish . ~system operation after failure. Ihe rccovcry manaKcr maintains atomicity by means of a ~ a~li , ~ yll~Lu~ ioll pl~ .dUI~:. Such proce(lurcs arc commonly callcd ~commit" procedurcs.
; ~In a llal1.~ lion-oriel1ted syslcm whicl1 illCIlldCs eithcr a singlc site whcre Ilal1~a~liOI1 ope,iiliolls are executed or which permits such operatiol1s to hc cxcculc(l at only one site during any transaction, transaction atomicity is enforced by a single-phase syncl1roni7.aliol1 orcntliom In this rcgard, when the ~ Sa. I;on is ' con~pL,ted, the recovery manager requcsts tl1at lhc sitc make 1~ l<ul~ll all changes to thc database occurring .~,, , ~- - .
-- during the tl~s~l~ liom In rcsponse, tlle site, in a singlc phasc, citl1cr commits or backs out the changes and reports the commit or backoul to the rccovery managcr.
~ c In distributed database Systcl11s cncompassil1g a multiltlicity of sitcs, cach of whicl1 may include a ~, database, a transaction may causc ('l1al1gCS lo hc m<l<lc to morc thal1 Ol1C database. In such a system, - atomicity can be guarantccd ol1ly if all of thc sitcs involvcd in thc tral1sacliol1 agree on its outcome. As --~ described by l-I.F. Korth, et al in ~l~al.al-asc Systcm (lol1ccrts", McCiraw-llill 13Ook Company, Copyright ;~ 1986, d;;,l~it,tll~ d database systems can usc a transactiol1 syllcllr.,ni~.dtion procedurc called two-phase commit protocol to guarantee atomicity. In this rcgard, assume that a transaction ends successfully at an execution .~ .
sitc and a recovery managcr requcsts tl1.ll all d.ltabasc sitcs commit databasc acccss opcrations involved in the ~lansa~ liol1. In the filrst phase of lhc protocol, all involvcd dalabase sitcs are requcsted to prepare to cornrnit. In response, thc sites individually decide, hascd urol1 local conditiol1s, whctller to commit or baçk :~
, :
; 2119221 out thcir operations l'he deci~iolls alc comlnllllic.llcd lo a syncllrollixation location wllere thc voles~r are counted In the second phasc irall silcs volc lo commi~ .I rcqucsl to commil is issucd in response to whicll all of the sites commit their operaliolls ()n thc olllcr hclll(l if any site voles to h<lck out its operation all sites are instructed to back out their opcratiolls~
Ihcre may be distrihuled d.l(:ll-asc Syslcllls cml-r~cillg a l?lurllity of silcs in wllich some sites may employ a two-phase commit protoc(ll Wllilc olllcr silcs clrc ollly capable Or con(lucling a single-phase operation In the Dcscription whicll follows sucll syslcltls arc callcd distrihulcd helerogcncous database systems A distulct peril in dislribuLe(l hclerogcncous d.llahasc syslcms is poscd by a transaction which may update at more than onc site If a firsl updale si~c surrorls only a singlc-pll.lse commit protocol v~hile a second site supports a two-phase pro~ocol commil mclll al cilhcr sitc cannot hc ulldolle ir it precedcs backout at the other One solution is to li-nil ~ransaclions ~o ul?d;l~itlg ollly a singlc silc in all cases Ilowever this sacrifices the speed and flcxibilily inllcrclll in a distril u~cd S)'S~CIll.
Ac old,l~ thcre is manircsl llCCd hl distrillulc(l hclerogclleous clatabase systems to ensure ~ _r transaction atotnicity by providing cooldillalioll I C~WC~Il singlc-phasc ancl multi-phase commit processillg in :
order to preservc the ability lo ul-dalc al mullirlc si~cs wi~holll h:lvillg lo incur tllc expense to upgrade all sites to two-phasc operation~

l l-IE INVliNTION
It is the object or this inventioll lo l-mvidc a mctllod for syncllrol1ixillg Irallsaclion proccssing in a distributed l,~ eous dalab.lsc syslclll wi~ ?hll'.llit)' Or silcs~ ll is a rel lLccl objecl k~ havc the method ulilize a constrainl in which ir mullirlc rcsourcc silcs arc n01 bcing updatc(l in ~hc tral1sactiol1 lllel1 update privileges are limited to the first rcsourcc Illal urd~lcs in lllc lral1saclion or i rmul liple resource sites are being updated irt the transaction tllcl1 upd.lfc rrivilcgcs :nc grlll~cd ollly lo tllosc rcsource siLes that arc supponed ~:~
- - by multi-phase commit proccssing~
. ~ . .
l he invention is practiccd Oll I disll ihute(l llc~crogcncous database syslcln wilh a plurality of sites , .....
wherein the system includes at leasl OllC al-plica~ioll silc wilh a proccssor for exccuLillg an application program which executes ~ sa~lions~ and an arrlicalioll rcqucstol rroccdurc fol forwaldillg application l~n~a~ lio requests and receiving responscs lo trallslclion rcqucsts~ 'I'llC syslcm furtl1cr includes a plurality of resource sites includingatleastol1erlrstrcsollrccsilcl1avillg.ld.ll:ll-llsc adatabascmal1lg-"lcntsystcmforp~ir""~ g databasc access op~ ti~ s in respol1se to tralls.lctioll rccluests undcr control of a single phase tla~lsa~lion synchluni~dlioll pl~C dul~; and n scrver for rccciving ltal1sacliot1 requcsts alld forwarding rcsponses to transaction requests and at least a SCCOIl(l rcsourcc SitC includitlg a d alclbasc a database Ir n~gPrnent system for p~lrO~ g database access opcratiolls in rcspollsc lo tr:lllsactioll rcquests under control of a nnulti-phase tl<.n~a.liotl coordination procedllre and a scrvcr ror rccciving trallsaclioll rcqucsts and fol~arJil~g responses to lla..5d~liOI~ requests and a comlllllllicalioll facilily conncclillg all sites Or the plurality of sites for UlllJllUlliCaLiOll th~" ht;~
In such a system context tllc mclllo(l inclllclcs tllc slcps Or cxecuting a tl ansaction at an appL~ dtion sile the transaction including at Icasl OllC dalahasc ~cccss orcralion at a rcsourcc site; issuing a ~lall~a. lion s~ ,.. hn)lli~alion request from tlle apl-lica~ioll sitc an(l c ommul1icatil1g tllc transaction synchroni7.ation request -i ~,' f' ' ,ff(~.
. .
211922~

~ 4.~
~' to the applieation requestor; detennillillg at tlle applieation reqlleslor whether ally of the first resouree sites performed database aeeess operatiolls durillg the t!.lllsaetioll; and, (a) if only fitst resouree sites performed :~ database aeeess operatiolls durhlg the trallsactioll, ~ullllluni~dtillg trallsaetioll eommit requests from the appiieation requestor to all suell firsl resouree si~es, con(llletillg single-pllase tlallsaction sy~l~l.rn~u,.atioll p~ ,Cdul~ at all sueh fill st sites hl r espollse to tlle I r;7lls.letiOn eommit r cquests, an(l eommunieating the results ~;: of sueh single-phase transaetioll syncllrolli~ ioll procedures lo Ille appliealion site; otllerwise, (h) ir the first ~ . resouree sites and seeond resouree siles pelform dalai7ase ;7.ccc5s operations during the transaetion: first, - eoll.~lulli~ating ttansael iOIl COlllmil l'C(lUCSLC l.o all suell secoll(l resouree sites and to the application requestor, and coll~ ,. hlg a multi-phase I rallsac~ioll ~yl Icl l l ~ a~ioll pr~J~.-I u l ~; ineluding all sueh seeond resouree sites I ~ and the <.~JIJI;cdlioll requestor, eommunieatillg trallsnetioll s)~nclll.,lli~.atioll requesls from thc ~plJli~dtio -~ requestor to all such first resouree si~cs, colllluc~illg sillgle-rh;lse trallsaetioll proeedures at all sueh first resouree sites, and eommunieatillg resuil~ orsueh shlgle-pll;lse transaetioll syncllroni7alion plv~eJ~m;~ to the applieation site; followed by, eoml71eling the multi-rllase transaetion syncllrolli7~tioll proeedure, and eommunieating results of the mul~i-rll;lse ll;llls.lc~ioll syllcllroni~.a~ioll pro(edllle ~o ~he applieation site; and, either eommitting or baeking OUt tlle ll;llls.lctioll in resrollse lo resulls Of tlle trallsaetion Syl~ hron;~lio rrocedures~
- The method is exeeuted aeeordillg to Iwo constraillts:
Constraint 1: if the applicalioll is not updatinK multiplc resource s;tes in a tl ansaction, then the Grst resouree site that updates in a transactioll is givcn sole upd~ltr privileges.
Constraint 2: if the applicatioll is updalillg multil71e resollrces in a tmllsclctioll~ then only resourees that are eapable of ~ollJu~tillg mul~i-pll.7se commil processillg ate giVCIl upda~.e privileges.

BRIEI~ DE~SCRII'I ION Ol 11111 I)R/~WlN(i~
igure I is a bloek diagram illustratillu a first emhodiment of distrihuted hete,~,g~ neou~ database j~. system in which the invention is prael.icc(l.
Y- l~igure 2 is a bloek di.lgram illusll-;7.~ 711 ;ll~em.lle disllil7uled, hetcrogencous datahase system in 1' - whieh the invention may be praetiecd.
.. ,~ Figure3isahlockdiagramilluslratillglllclogic;l1;1lcllitcclurcofadistribute(1~1lctcl~ usdatàbase ~: system in whieh the invention is practiccd.
igure 4 shows in more del..lil ~lle logic;ll eompollcllts alld eonnee~iolls of an applieation site.
igure 5 is a flow diagram wllich dcpicts tlle imposition Or two eonstlaillts on the method of the ~'' ' .,','' invention.
Figure 6 depiets the flow of eontrol rrom All al-l-lieation proeess to a Iransaetion b~ hl~n~tio process in a d;~ ul~J, heterogcncous d;llahasc syslcm ;IccordillK to the inventioll.

~. .
. ~ DF,SCRIrTlON OF Tlll~ I'Rl Fl RRI D IIM13()1)1MIIN I
In Figure 1, the genelal ouflillc of l-hysical archilcclllrc in which the invcntion is illlpl~ .ltc~ is illustrated. In Figure 1, the system is a distril-utcd dat;lhasc syslcm comprising four sites. At an applicdlio site 10 a Il~ fi~.le computer of thc Illltcrpl isc .~Systclll/9()()(P~ S/90()01M) type running a multiple vir ual -~ r; . ~ ~.

r. .. ~
:, ........................................... .
~'' -..
'~
SA9-93-003 4 ,~
. .

storage (MVS) operating systern exec~ltes a L- s based ~ ;o ~ prograrn that accesses a database on a direct access storage device (DASD) by way of a database _ system (DBMS) such as the well-known DB2TM product available from the assignee of this invention. The application site lO is enabled to c~ , with similarly-cunv~ u.,~d resource sites 12, 14, 16by way of a data c .~ ;f~nc (DC) facility coupled to Cull ~ uundi~lg DC facilities at the resource sites through a c (CO~S) structure 18. The transaction-based application program executing at the application site 10 is enabled to acccss databases at the resource sites 12,14,16 through a standard system interface such as the weU-known Systems Application AI, ' ' ..~ (SAA~) or systems network au ~h tv~lul rv (SNA) by peer-to-peer protocols . ' ~ in, for example, the well-known LU6.2~Y~,Lil~lul~i extension.
Figure 2 iUustrates an alternative physical al~ for practicing the invention. Herein, the application site 20 may comprise, for example, PS/2(i~ personal computers which include OS/2~ operating systems. The personal col.lpul~l,22,23,24 are linked together in a conventional token ring ~,LiLe~.~ule. A transaction-based appli~;f~l-program executes in the personal computer 22, which is also configured with a conven~ional database managcr (DBM) 21. The personal computer 23 functions as an dl)pliCaLIUII server to the arplif a~ifnn program executing in the personal computer 22, while personal computer 24ûperates as a gateway device which includes distributed data CullllC~ lion services (DDCS)25 for c~ g database access requests to, and receiving responses from, resource sites 27,28,29 through a CO~S facility 30.E~,Illpl~y product architectures for the resource sites include, for example, at the resource site 27 an Enterprise System/9000 series ~ hlL ~nt computer operating under a MVS operating system and executing a DBMS such as DB2 for accessing a database on a DASD. Peer-to-peer c~ ionc are conducted between the DDSS
25 and a data service (DC) at resource site 27. The resource site 28 can comprise, for example, a mid-range computer of the OS/400 type operating under an OS/400(1D operating system which includes a DBMS and which may include an SQL/400B) ;JI~UIIIP;I~I for apyli~ ~;OA d~ ~vlu~,...e.l; and queue lllallGg~ These products are all available from the assignee of this invention. Peer-to-peer co.. ...: -l;un.~ are provided between the a~JliCdtiOII site 20 and the resource site 28 by the DDCS25 and DC services at the resource site 28. The resource site 29 can include, for exatnple, an Ertterprise System/9000-type l.l~llrl il llC computer operating under the well-known virtual machine (VM) operating system and executing a DBMS such as the SQL/VS available from the assignee. Peer-to-peer data collllll..llicalions between the application site 20 and tbe resource site 29 are provided by way of tbe DDCS25 a data C ~ io ~ (DC) service at Ihe resource site 29.
In Figure 3, a general view of the system logical ~ ~ L;t~tu. ~ in which the invention is illlpl~ 'c 1 is illustrated.
Herein, at an ~l'P~ A site 300, a ~ lsa~vliùll-bavsed ~pp!ir~ n process 302 executes in COnjullCIlOn with a database language interface (DBL IF) 303 for conventional ~ lv~liun based database opaations. The arplir~ion program 302 and DBL IP 303 are served by an application requestor 304 which acts on their behalf in ro,~dillg requests to, and receiving responses from, distributed database resources. A network c-. ~ ';on service 305 provides a data - interface with resource sites of the distributed database system. Preferably, the network c ' ~r~n service 305 provides logical connections ("sessions") between logic unit (LU) peers. The ap,ulicdtiull site 300 also includes as a part of the operating services a ~yncllr,vlliLdtion point (v~n~ t) manager (SPM) 306 which has logical interfaces 308 and 309 . .'. ~ ~ 1 _ ,, :''' ':

.~

-,,t~ ~ ~

, ,. ' ' ~
. . , "
SA9-93-003 s ~ 2 ~
., ~ , . .
.",~ .
~,The logical intaface 308 is between ~he SPM 306 and the ,l)p~ ';o~ program 302 and between the SPM 306 and the inn requestor 304 when the application requestor acts on behalf of the application program 302. The interface 309 is an SPM-to-resource manager (RM) interface which operates between the SPM 306 on the one hand and the --- requestor 304 and network cn ~ : ~';ons server 305 on the other hand.
, ~h ':
- ~ The ~-p'i~ requestor 304 is a procedure which executes in a processor with the al~pl~ ;ml program 302 and is treated as a resource manager (RM). The SPM 306 (which also may be called a recovery manager) is a c ~ .n ~. ~
t of the op~ating C.l-vuu u~ that could ' commit and backout operations among various distributed resources by means of the two-phase commit procedure described above. The presence of the SPM 306 makes any resource on that site that uses an SPM-RM interface a protected resource, while resources having no access to an SPM are "Ull,UI IJt~tcd .
The SPM 306 CO~Illll ' with peer logical units. In the invention, the peers of the SPM 306 are other SPMs, the application requestor, and any other resource manager that can conduct a session with the SPM 306.
The system of E:igure 3 is a distributed hct~. ogv..cvus database system in that thc resourcc sites 320 and 330 are ullulu~G~,Led, while the sites 340 and 350 are protected. The logical f,. Litc. ~ul~,D of the ~lny~u~c~eLed sites are essentially equivalent and include an applica~ion server, a databa~se r~ ",~".l system (DBMS), and network c~
:~ j services. E~ach of the DBMSs 322 and 332 is capable of con~ ting database access operations in response to tl f~ls,~Lu - requests issued by the ~ I;Oll program 302 and Dylll Ll o~ ., those operations with (. lnsf~liun activity by a single-phase commit protocol. The protected resource sites 340 and 350 have essentially equivalent ,~. ~hite. tUl eD which include an application server, a DBMS, a nctwork ~,, ...., .. . i~ ~ :- .n service, and an SPM. Interfaces are provided between the SPM
and resource managers including the network c~ service and the DBMS, and between the SPM and the application server. A co..- ~ l;on facility ~COMMS) 360 ~ oArn~D the applica~ion site and the resource sites in D - ~ a cullv. - ,~. ~ such as wide area network (WAN) or local area network (LAN) for c.,~ between , . ~.-~:~ the ~ ,- ;. ,1l site and the resource sites.
- For an ~ ' . g of distributed databa~se systems which are not necessarily het~. og~.leuus, reference is given x ~
'- . to the following IBM~ ~ - for greater detail:
I . Systems Application Architecture - Cornmon r, U~l fulllldllg Interface Resource Recovery Reference, SC31 -. . 6821-00, Copyright 1991;
~s ~ ~ 2. Distributed D,~ta Library - Distributed Relational Database Architecture Reference, SC26-4651 -00, Copyright ~ ~ 1991; and 3. Systems Network Architecture - LU6.2 Reference: Peer Protocols, SC31 -4~0~, Copyright I 991.
, ~, .
Figure4illustrates,inmoredetail,thelogicalstructureofthe,t.p1;c~l;ollsite300anditsint~,..o~ncctin with ..
protected and u~ lot~ted resource sites 320,330, 340, 350. The ?ppli~f ~tinn requestor 304 is presumed to include all requestor r~ 1 ~, found in currently-available products that implement the Distributed Relational Database . - - Architecture described in the above-referenced IBM document SC26-46S I -00. In addition, to implf m~nt the invention, ~u the ~I'P~ ;o requestor 304 includcs a monitor process 304a, a commit process 304b, and a resource table 304c. The interface 304d between the ?pplic~inn requestor 304 and the application program 302 receives from the ~ulic~tion : program an indication (MULTI-UPDATES) of whether multiple resource sites may be upda~ed during a transaction. The application 302 ~, .

~:
,.~

:

and tbe applicatioll rcqucstor 3()4 collduct intcr-ploccss commullicatioll by a call/response protocol.
Similarly, intcr-process call/responsc commullicalioll is provi(led bctwecn the application 302 and the SPM
306, between the Sl'M 306 and r-rotcctc(l rcsourcc sites .~4() an(l 350 by way of protected COnv~l~atiOIlS
provided by thc network commullic;lliolls sclvicc ~ , bCtWCCI1 IhC Sl'M 3n~ alld tl1C applic,lliol~ requeslor 304 through the interface 309, an(l I~CIWCCI1 tllc arr)lical;0l1 rcqucsIor 3()4 and thc unrroIccted resource sites 320 and 330. In addition, thc apl-lica~ioll rcqucsIor .~()4 may issuc a call to tllc Sl'M 3n~ on bchalf of the arplication program 302 througll thc in~clracc l()X

MONITOR PROCrSS
'I'hc monitor proccss 3(~4a Or ~hc aprlicaliol1 rcclucs~or 3()4 scts up an(l monitors the e,lvh~
of the distributed heterogencous da~ah.lsc systcm l-y hnrlcmclllillg constraintS ~hat limit which resources are allowed to conduct Ul'D~ l openatiot1s an(l wllicll arc rcs~riclcd to I~I IA I~ opcrations only. Tlle conbt.~;~t~
are as follows:
Constraint 1: if the applicatioll rrogr,lm is nol ur(latillg mull.irlc rcsourccs in the transaction (MIJLl'I-UPDA'T'Ei,S nOt set), thcll thc rirsI rcsourcc sitc lllat updaIcs in tllc transaction is given e~clusive updating privileges.
Constraint 2: if the applica~ion is up(l;ltillg multiple rcsourccs (MUI,'I'I-lJl'l)Al'ES set) in the lralls.lctioll, then only protected resourccs arc giVCIl urdatc privilcges.
Thus, the condition of thc 1\,1111;1'1-~JPI~A'I'1 S indication given lo thc application requestor 304 , ~
enables the appli~ion requestor to ~Iprly ~hc corrc(~ cons~raint. In thc l-rclcrrc(l cml odiment, Constraint I applies when a transaction is nOt ull(lcr Sl'M colllrol. 'I'hc tralls;lcIiol1 subjcct to this constraillt can allow m ' only one resource to update in any givcn Irallsac~ioll 'I'his rCSlliCtioll is rcquirc(l to guaralltee thc atomicity :; ' of the transaction. ConsIraitlt 2 is ror tl;llui:lcIiolls ~h:lt arc un(lcr .~il'M conIrol in whicll multiple resourccs : ~ .
are allowed to update. Implicit in ~his collstl;lint is tllc rcstriclioll that lllc only rcsourcc sites allowed to updatc must havc and usc Sl'M sul-rol1 ,~\11 o~ r rCS(~IIICC si~Cs al~C rCSIr;CIC(I tO rC;I(I-OnIY OPerat;OnS.
Whethcr an application is ur(l:l~illg mllll;rlc rcsolllcc sil(c or n(7I is nOt dermc(l by this invcntion.
l'he invention requires only tllat tlliS inlorm;ltioll I-C plovi(lc(l hy somc cnvilollmclltal source, such as the application ptogratn, to tlle applicatioll rcqucstor. SillCC IhC appliCalioll rcqucslor rcprCsCllts the dppliCaliOII
- ~ program for distributed transactiolls an(l SillCC all distlibutc(l transaction rcqucs~s go through the requestor, the requestor is responsible in this hlvclltion ~o moni~or thc cnviromncllt hl tcmls or cnsuring that the ' ' ; ~ transaction can properly synchroni~.c its manirokl orcmliolls~
,. i ~ ~ ~ l'he a~plic.ltioll requcstor is cnablcd to monitor thc envirollment by provision or a distributed reply ~ ~ ~ nnessage in which any resource site respo ndillg to a trans<lctioll rcq ucst hlforms thc application requestor when ~~, !$~ it receives its first rcquest for an updatc and again any time in the transaction that it receives a request to ' perforrn an update. l'he application rcqucstor collecLs tlle i,lfOI,nàIioll inlo the rcsouree table 304c, keeping ' track of which resource sites are allowc(l upd;lIes, all(l I acks oul Ihc transa( Iion if an update occurs that ~'' would prevent a reliable synchroni~.c(l commit across all rcsource sites.
~,; . i l'ables 1~ illustrale tlle m(!llilor process ull(lcr ('olls~rainI 1. 'I'hcsc tahles are a succession of - instantiatiohs of the resource tal-lc ~()4c; thc filsl follr ~ablc COItllllnS arc of intcrcst to Ille monitor process.

, , ~ - ~ ~ 'r ~: ~

~- SA9-93-003 7 ~ :, -;
Initially in table IA as a resourcc sitc is cngagc(l in 117C l~nnsactiOn~ it will be idcnliftcd in the first column.
When a resclurce si ~ S) rcsponds to an initi?l tMIlsaction rcquest it will also provide an indication of whether it is protected or not. l'hus in tlle sccond columtl of tablcs IA-II) thc three involved resource sites are unprotected. l'he tllird a~lumn or tllC. ~ablcs logs update mcssages rcceived from resource sites. In this regard each time a resourcc sile receives an u~-datc il will rcspond to thc application requestor Witll an url~Al r?, RE,QIJrls~rrl) mcss;lgc. l llc r~rSl of ~hcsc mc~esagcs is rcceivcd frolll RS2 and is entcred into the third column ('rablc IB) Immcdia~cly Illc fourlll column valucs are changed lo permit RS2 to urdate and to indicate that R~ l and RS3 arc no~ pc~ cd to ur(l;llc Now ir tllc applicatioll rcquestor rcceives an IJI'I~Al E REQUI S'I'I I) mcssagc l;om ci~llcr R~ 1 ot R~3 it will initi.l~c backout ortlle entirc llnllDdCtiOrl~.
On the otller harld whcll a ( OMMI I comtn;ltl(l is iesuc(l lor ~hc transacîion successful commit p~ ~5~
will result in the transitions of lhe thit(l atld four~h columns of thc resource tahlc as indicatcd in tables IC and Il) rl'his COMMI'I' processin~ is cxl-laincd in n~Otc dctail bclow l'he states of the resource tal-lc ut)(lcr ('onsll;lillt 2 arc illus~ratc(l in ~ablcs IIA and llr3 In thesc tables only the two protectcd rcsourcc eilcs R~3 all(l R~4 alc pcrmitlcd ~o updatc Ihey may update c(n1. ~u~ lly as irnplied by tablc 111~ 'I'ahlc 11~' illuelr;tlcs a srecial casc whicll systcm design and operation coilsid~ dtiO ls may demand Rclatedly thc arrlic;llion rcqucstor upon rcceiving an IJPDA'rE
REQUE~STEI) message from an unptotcclcd reeolltcc (R~l) disablcs all other resource sites including the protected resource sites from updaling 'I'his will prcscrvc atomicily by prcvenling simultaneous occurrence of single- and multi-phase transactiotl synchroni~ation proccllltres Pigure S i5 a flow ~hart illusfl;~ling Ihc monilor l-roccss as conductc(l ill the application requestor according to the invention Inili.llly Illc con(lilion Or ;l MIJI ~ lJI'I~/~'l'r ~ signal is obscrvcd in decision sno. If the signal is no~ sc~ thc ncKalivc exit is ~akcn liom tllc dccision and up(latc rcqucsts are monitored under ('onstrain~ I as dcscribcd abov( 'I ht~ mcssa~ce arc monilorcd by mcans Or thc rcsource table in 5tCp ,-501 and the firs~ updaler is miarkc(l in Ihc l;lI-lc in st(r Sf)2 ~cp 5()3 monitots database access OpCldtiOI-5 ' with reference to the resource tablc dutinu l)IO~S~ Or thc tratlsQcliotl ~ssutning normal operation in which no other resourcc siles i55UC IJPI)/\ I 1', Rl ',(~)IJP,~; I P,l) mcssages thc process loors through decisions ~' 503 and 504 until the command is issucd to comtnit IllC tratlsactioll 'I'ransacliotl synchroni7ation plUC~
- ' ~ is conducted in step 506 In thc cvcnt ~h;tt a rcsourcc si~c wllicll h;lS bccn rorbid(lell to update uldicates that it has received an updale rcqucst ~llc nl-l-lic31ion rcquc~or ~I)4 ~akcs thc posilivc cxit from dccision 503 and issues a I~ACKOU'I' requcst 5()7 whicll l-cgins tr;lllsnctioll synclltoni7atiotl rroccssitlg Icading to a backout ~: - at step 506 - - ~ ' When multiplc updates arc pctll1i~tc(1 Illc positivc cxil is takcn rrom dccision 500. Cmtries are made in the resource table in step 5013 as Illc tr.n~s~eti(>tl unfolds lJI'I)~'I'I RI~Qlll ~T messages are marked in stcp 509 and detection of an attetnrlc(l u~ tc l-y nll utll)rolcctc~l rcsollrce si~c in dccision 510 results in a ~' positive exit to the BACKOU'r' rcqllcsl nt stcr 5()7 /~scutninL~ orcratiotl pcrlnitted hy Constraint 2 Ihe appli~alioll requestor loops thtougll 51~ nn(l 511 ut~til n comn1.lll(1 is issucd to commit the transaction. At - ' this point positive exit is takcn rrom dccision 51 1 and trintlsaction syncl)rol1i7~cltioll proccssing is undertaken t step 506 ro~n t he standpoil1t of thc apr-lic;l~iol- scrvcrs or II-c r csourcc sitcs as cach servcr rcceives a database ';.
:,, .
.,:

~ S

. .. , ~

:-: SA9-93-003 8 2 2 ~ ~i ~ access operation request from the ~plit.ali~ site, it processes the request, buffers the results, and if the access operation results in an update, the se~ver buffers an update indication if a prior update indication was not returned for this ~l.pli and transmits the bulfer to the application requestor.
"
~'' _, , : -.
~, ~, ,.' -', . ~
' .-,.,,,,,-~ ?~ ':
~= ~
~ , ~

, ' ~' ~' ~',:

_, :,-,,. ,~
-''~
~ -~
, j ., . :

~ ! f ~
. ~ . .
~, ;. . ,."
~ .

~ SAg-93-003 9 ., TABLE IA
' ~ ALLRBSOURCBSUNPRC)~ L~

Resource ID Resource Protected Update Message Allowed to Commit Accepted Update State RSI No No Yes N/A
:
:~ RS2 No No Yes N/A
RS3 No No Yes N/A

- TABLE IB

RSI No No No U~ t~d RS2 No Yes Yes U.,~ d RS3 No No No U,lco~ d ' :-TAI~Le IC

RSI No No No Commit RS2 No Yes Yes U, ~ d : ~ RS3 No No NoCommit ~::
' ,'";~
s:~
TABLE ID

- RSI No No Yes Commit RS2 No No Yes Commit :-- RS3 No No Yes Commit ~, :~-~, ' :~ ' , - ,~
~ '" ,~' 3 . . '~

~ 2119221 ~:~ f SA9-93-003 10 ~:
'. . 'I'A131,E IIA
RO'I EC'I'ET~ Rl~ JRCr~,S ANI~ lJNl'R()'l'rC'l'GV RESOIJRCES

Resource ID Resource Urdatcd Message Allowed lo CornrnitI'rotected Acceptcd Update State RSI No No Yes N/A
.',.~: : RS2 No No Ycs N/A
~, :,, ,~
.' RS3 Yes No Yes N/A ~, RS4 Ycs No Ycs N/A

'I'A131,P, 1113 ,~ .
:. ~,j,;~ :
~: RSI No No No N/A
.~ .
~ 1~, i RS2 No No No N/A
.~,. :.
;~ '' RS3 Yes Ycs Yes N/A
',; ~ RS4 Yes Ycs Yes N/A

:, ~-' . -I A 131,1~, I l( '~-.
', ~ RSI No Ycs Yes N/A
~'' RS2 No No No N/A
,~'.' RS3 Ycs No No N/A
J, ~, RS4 Ycs No No N/A

~ ,' .:;
COMMIT PROCESS

; ~ The commit process .~04h Or the .Irplicaliotl tcqucstor 304 implcmcnts protocols to conduct . .. ~ transaction ~yll~,hlu~ dtion proccssing by mcans of (,()M M 1'1' and 13ACK() ~I r sequencing in a distributed ht;lel~"~ lc~,u~ database system. 'I he proLocols cmt~racc a scqucnce Or actiotls that must take place. The exact sequence is dt;l~ellde~l On tllc tarL~ct of ~m initial ('OMMIT or 13A('KOU'r ~olllIllalld from the ~; apF,licdlion program. l'here are thrcc possihlc titrgcls for ~hc initial COMMI I' or nACKOUT colllJIlàlld ~' 1. the SrM of the applica~ion silc;
: ;'.: 2. the àppli~atioll requestor; and ~ .
~: ''': 3. one of the resource silcs.
r' If the target is the apl~ alioll sile SrM, thc Sl'M coordi~ tes lhe transaction ~y~l~h~ni~alion p~uceJu-e ~, involving ah of the protected resourcc si~cs, ~llc arrlica~ioll rcqucstor, and any o~her resource Illana~Lr - .,.-, , ::

~.--'-'"; SA9-93-003 11 peer witll whom lhc SIlM has dcal~ during ~hc tlatlsactic~m Rclatcdly the applicatioM rcquestor is identified :' to the SPM as a resource mal1agcl- inlclcslci'i in thc transactioll so that it is c~ngaged during a two-phase commit process.
If the target of a COMMI'I' 0r BACK()U'I' rcqucsl is thc applic.l~ioll reclucstor the appl,~atio -~ requestor acting on bchalf of ~'he application l-rogram may alntacl the SI~M tO begin two-phase cornrnit plo~ g. The applice liOtl rcqucs~or only contacls thc ~I'M if thc transactioll is under syll~L~o;llt control, as when the monitor process is implemcnlillg ('onstrainl 2.. 'I'he Sl'M will then engage lhe appl'i~tio - ~ requestor to participate in thc two-plmse commit rroccss. '~
- If the target of a COMMIT or 13ACK()U'I' rcqllcsl ic a resource sile Ihe rcsource site does not initiate transaction synchloni7alioll proccssillg; inslcacl il inromls tllc apr)licalion rcqucslor tllat a COMMIT
or BACKOUl' has been requcstcd in ~llc lonn (!l <l "('()MMI'I' RB~Qlll1~8'1'1~il)'V or a ~13ACKOUT
i ~ - RrQUE~S'T'ED~ messagc. l'lle aprlica~ioll rc(lucsiol Illc n follows lhc samc l-rocedrlre as if it had been the target of the requested action.
~'he hlvenlioll is based UpO11 1 l~c illVCntCll'~' ('I il i('.ll ol-.ccrvatioll lhat thc trallsaclioll synchronization operations of singlc-phase (unrl(lleclc(l) ICS(lUl'CC silc5 ~all hc illtCgratC.d ill a distribulctd helerogeneous database system with two-phasc comlllil l-roccsSil1U il' tllc arrlic;llioll rcqucslor is cnabled lo represent all of the unprotected rcsource sites in IhC ~\VO-I~haSC l~rOCC~S. I~CI:IlCCIIYI wllen two-l-h.lsc commit p.~J~es ;n~ is initiated the application requestor dul ing phacc I asks all unprolcclcd rcsourcc sitcs to commit and votes in lhe two-phase process accorcling to tllc rcs ~onscs rroln Illosc rcsollrce silcs. If all commit the a~ atio requestor votes to commil in pllasc l; ir any utlrrolcclc(l rcs(llllcc sitc backs ou~ the application requestor ~otcs to back out in the first pllasc. I In(lcr Illc nrcfcl-rccl modc Or ( onstraillt 2 cliscusscd above nolle of the unprolected resource sites will be pcrlni~cd lo urclalc. ('onscquclltly irthe arplicalion requestor votes to a comrnit in the first pllasc and One of Ihc protcclcd rcsolllcc sitcs votcs lo hack c~ut no unprotr.cted resource -:~. site will be faccd with the requirctncnl 1(- hack c~ut a cotnmittcd up(latc.
' ~ 13elow are listed a set Or sequcllccs. 'l'llc scqu~llccs dcccrihc the stcps to COMM IT ~md BA('KOUT
a tr~-~act;oll, d. p~ilC]~ llt upon tlle larL~cl Or tllc ( ()MMI'I' or llA( K()tJ'I' cc~llltll:llld from the appli~tiolt program. l'here are ten se~uc"~cs as- follows:
1. COMMIT targcted tn tllc arplicatiotl cilc ~;I'M;
2. COMMIT targeted to a rcsourcc .cilc umlcr thc condition thal Constrailll 2 obtains;
3. COMMI'I' targeted lo a rccourcc sitc ull(lcr ('onstlailll l;
4. COMMI'I' targelcd to tllc at-rlication rcclllcslor un(ler ('onstr:lilll 2;
~"~ ~ 5. COMMIT targetcd to tllc arplicatioll rcqucstor ullclcr Constlaillt l;
~- 6. BACKOU'I' targctcd (o thc arrlic:l~ioll silc ~I'M;
i:
~- 7. BACKOU'I' targclcd ~o a resourcc silc ull(lcr ('onstrailll 2;
8. B~CKOU'l targelc(l lo a rcsoulcc sile ull(lcr ( onslrailll I;
9. 13ACKOU I' largelerJ lo the ~rrlicalioll rcqucslol- un(ler ('onsllaillt 2; and ~; 10 B~CKOUI targeted to the arrlicatioll requeslor under Cotlstrailll 1.
~ .;, Thesequencesarepresc,llledill(lc/:~ cl(lw. I~ollowingcachscqucnccare~o~ tsthatcoll~ olld _ ~ to the ellu"klal~d steps in lhe sequcncc reriod. I llc sequenees are normal llow sequenees and assurne no w,~ ,, _, ..
, ~ . .

2 1 1 9 2 2 ~

-., SA9-93-003 12 ~ " .. : .

n errorsoccurlllatpreventtran~a~ionsynchlo~ tiollrroccs~ingfromoccurrillg~ 'I'heitlvention~locsaccount ~-;- for condition~ that result in a 13ACK()IJ I comm~n(l l'hc action~ Or tlle Sl M are conv~n~ional and are not :. ~ :
'~~; described in detail. For conv~nicllcc Illc applicalion rcqIlc~or i~ rcferred to as ~Rcquestor~ resource sites . :
- are call~d resources~ the application plo~ram is callc(l the ~arplica~ion~; and lw(l-pllase processing is ~lenote~
' as ~synchpoint proce~sing~. I;(lr two-pll~c cotntni~ ~llc no~c to cotnmit is callc(l ~requcsl commit commit completion is called ~committed~ ~n(l h Iclcout complctioll is called hacked out~.
, : .

.- ~, 1. Commit targeted to the application site SPM:

~-' 1. Application asks the SPM to commit 2. SPM asks the requestor to prepare to commit : SPM asks all protected resources to prepare to commit 3. Requestor asks all unprotected resources to commit All unprotected resources commit and reply to the requestor 4. Requestor replies to the SPM with a request commit ~- All protected resources reply to the SPM with a request commit 5. SPM asks the requestor to commit - SPM asks all protected resources to commit 6. Requestor replies to the SPM with a committed - All protected resources reply to the SPM with a committed -~ 7. SPM returns an OK to the application Comments 1. The application aslcs the SPM to commit the transaction.

2.Syncpoint processing begins. During phase one of the two phase commit protocol, the SPM asks all resources that are registered for this transaction to prepare to commit the transaction. The requestor is registered for the - transaction so it is contacted. The requestor represents the unprotected ; resources. The SPM may ask the resources and requestor in whatever order it - - requires. For example, the SPM may ask the protected resources prior to the - -- requestor. The order in which an SPM registers resources and contacts the r~ ' registered resources is not part of the invention.

3.The requestor receives the prepare and uses resource specific protocol to commit the unprotected resources. Each unprotected resource commits and replies to the requestor with the status of the transaction at that resource.

~- 4.The requestor receives the replies from the unprotected resources and if all resources committed the transactlon, the requestor replies to the SPM with a request to commit the transaction. Otherwlse, the requestor requests a backout. The SPM also receives replies from the protected resources.

: ~ 5.During phase two of the two phase commit protocol, the SPM asks the protected resources and tlle requestor to commit.

6.The requestor responds to the SPM indicating the transaction is committed. The SPM also receives replies from the protected resources.

' 7.When syncpoint processing is complete, the SPM returns the results to the application.

2. Commit targeted to a resource under Constraint 2:

~; l.Application asks a resource to commit - ~ 2. Resource replies to the requestor with an indication of commit ~ requested '~ 3. Requestor asks the SPM to Commit See steps 2 through 6 in sequence 1 ~r 9~ SPM replies to the requestor with an OK

"~ lO.Requestor replies to the application with the status of the transaction .
Co~ments .,"~: .

', ,~ J
:: ~. , ,~ ~.r,,~

~._ :

, ~ l.The application aslcs one of the resources to commit the transaction.
- 2.The resource does not commit. It returns a commit requested indication ~- to the requestor.
- 3.The requestor receives the commit requested indication and acting on ~- behalf of the application, aslcs the SPM to commit the transaction.
See steps 2 through 6 in the comments to sequence 1.
9.When syncpoint processing is complete, the SPM returns the results to the requestor.
lO.The requcstor returns the results to the application.
3. Commit targeted to a resource under Constraint 1:
l.Application asks a resource to commit 2. Resource replies to the requestor with an indication of commit requested 3. Requestor asks all unprotected read only resources to commit 4. All unprotected read only resources commit and reply to the requestor 5. Requestor asks the unprotected update resource to commit 6. The unprotected update resource commits and replies to the requestor 7.Requestor replies to the application with the status of the transaction Comments l.The application asks one of the resources to commit the transaction.
2.The resource does not commit. It returns a commit requested indication - ~ to the requestor.
,' 3.The requestor uses resource specific protocol to ask all unprotected read ' only resources to commit. The read only resources commit and reply to the requestor with the status of the transact1on at that resource.
~- ~ 4.The requestor aslcs the unprotected update resource to commit. The update resource replies to the requestor.
S.The requestor returns the results to the application.
-: -:
'"~ ' 4. Commit targeted to the requestor under Constraint 2:
' l.Application asks the requestor to commit 2 Requestor asks the SPM to commit See steps 2 through 6 in sequence 1 8. SPM replies to the requestor with an OK to the initial commit 9.Requestor replies to the application with the status of the transaction : :
Comments l.The application asks the requestor to commit the transaction.
2.The requestor acting on behalf of the application asks the SPM to commit.
See steps 2 through 6 in the comments to sequence 1.
- 8.When syncpoint processing is complete, the SPM returns the results to the ~,-' requestor.
9.The requestor returns the results to the application.
" ~ 5. Commit targeted to the requestor under Constraint 1:
; t'' l.Application asks the requestor to commit 2. Requestor asks all unprotected read only resources to commit ; All un~rotected read onl~ resources commit and reply to the requestor -- 3. Requestor asks the unprotected update resource to commlt The unprotected update resource commits and replies to the requestor ~-~- . -.. , :
'' :

~ ~ 7 .~ ~ : , ~ r.

, 2119221 . , .
~. SA9-93-003 14 . , .
4. Requestor replies to the application with the status of the transaction Comments l.The application asks the requestor to commit the transaction.
2.The requestor uses resource specific protocol to ask all unprotected read only resources to commit. The read only resources commit and reply to the requestor with the status of the transact1on at that resource.
3.The requestor asks the update resource to commit. The update resource replies to the requestor.
- 4.The requestor returns the results to the application.
6. Backout targe~ed to the application site SPM:
l.Application aslcs the SPM to backout 2. SPM asks the requestor to backout SPM asks all protected resources to backout 3.Requestor asks all unprotected resources to backout all unprotected resources backout and reply to the requestor 4. Requestor replies to the SPM with a backed out All protected resources replY to the SPM with a backed out 5.5PM returns an OK to trle application Comments l.The application asks the SPM to backout the transaction.
2.Backout processing begins. The SPM asks all resources that are registered for this transaction to backout. The requestor is registered for thetransaction so it is contacted. The requestor represents the unprotected resources. The SPM may ask the resources and requestor in whatever order it -- requires. For example, the SPM may ask the protected resources prior to the requestor. The order m which an SPM contacts the registered resources is not ~- part of the invention.
3.The requestor receives the backout and uses resource specific protocol ~-- to backout the unprotected resources. The unprotected resources backout and reply to the requestor witll the status of the transaction at that resource.
4.The requestor receives the replies from the unprotected resources and replies - ~ to the SPM with a backed out. The SPM also receives replies from the protected resources.
- 5.~hen syncpoint processing is complete, the SPM returns the results to the - application.
7. Backout targeted to a resource under Constraint 2:
l.Application asks a resource to backout 2. Resource replies to the requestor with an indication of backout requested ~ 3. Requestor asks the SPM to backout -~ See steps 2 through 4 in sequence 6 7. SPM replies to the requestor with an OK to the backout 8.Requestor replies to the application with the status of the transaction Comments l.The application asks one of the resources to backout the transaction.
2.The resource does not backout. It returns a backout requested indication to the requestor.
3.The requestor receives the backout requested indication and asks the SPM
to backout the transaction.
~' See steps 2 through 4 in the comments to sequence 6 ;~,'.-: ,'.
' '- ' 'J~ i ~ ~ ~
r~.~ .., '-~

~ ~"

SA9-93-003 15 ~ J
. .
.
7.When backout processing is complete, the SPM returns 0~ to the requestor .
,.,, i : 8.The requestor returns the results to the application.
~ ~' , 8. Backout targeted to a resouree under Constraint 1:
. l.Applieation asks a resouree to baekout 1- 2. Resource replies to the requestor with an indication of backou t ~- requested 3. Requestor asks all unprotected resources to backout, unprotected all resources backout and reply to the requestor 4.Requestor replies to the application with the status of the transaetion .~ ~ " - ~.
~ Comments .
l.The applieation asks one of the resourees to baekout the transaetion.
2.The reson--ce does not backout. It returns a backout requested indieatio n ~ to the request~r.
- - 3.The requestor receives the baekout requested indieation and uses resoure e speeiflc protocol to backout the unprotected resources. The unprotecte d resources backout and reply to the requestor with the status of the transaction at that resource.
4.The requestor returns the results to the application.
. 9. Backout targeted to the requestor under Constraint 2:
~ l.Application asks the requestor to backout sl 2. Requestor asks the SPM to backout -, see steps 2 through 4 in sequence 6 6. SPM replies to the requer~tor wlth an OK to the backout call - ~ 7.Requestor replles to the appllcation with the status of the transaetlon -.-, ~"..
~- Comments l.The applieation asks the requestor to backout the transaction.
2.The requestor asks the SPM to backout.
See steps 2 through 4 in the comments to sequence 6 ;,... .
6.When backout processing is eomplete, the SPM returns the results to the ~-- requestor.

: 7.The requestor returns the results to the application.
10. Backout targeted to the requestor under Constraint 1:
l.Applieation asks the requestor to backout -~ 2. Requestor asks all unprotected resources to backout ~: All unprotected resources baekout and reply to the request 3.Requestor replies to th e application with the status of the transaction Comments l.The application asks the requestor to backout the transaction.
-,. 2.The requestor uses resource speclfic protocol to backout the unproteeted - ' resources. The unprotected resources backout and reply to the requestor wi th the status of the transaction at that resource.
3.The requestor returns the results to the application.
, ~ . .;
., .
Anytimethe r r ~ ~ onrequestorconduc~s~.s~lio~ h.~ dtionprocessingunderConstraintl,ituses theresource~bletodeterminetheorderin whichtheresourcesilesarecommi~tedorbackedout.
'',,1 '"

2 ~ ~

As Tables IC and ID indicate, and as is laid out in the above-described sequences, the read only resource sites are requested to commit before the update resource site. This order guarantees that, if an update must be backed out, the COI15; lt~ l.Cr of the databases will be - ~ before and after tbe ltallSa~,~iun is backed out because the read only - databases have not been changed by the transaction.
,. , Referring to l;igure 6, the pluccdu.c6 for ;...j~ ,,."I;ng the commit process performed by the ~pp~
requestor are set forth.
The arp!iro~lnn process 601 includes any ~l~PJ k ~ program which can execute on any of the physical and logical all,Lit ,~ lu. c o described herein and, in executing, initiate ll al~oa~ liùll-based database access operations conducted at one or more separate, distributed databases with II~lO~liun s.~...l.luni~ation under the control of COMMIT and BACKOUT procedures, or their eq~ . ' The application process 601 is logically coupled to its arp~;r2tinn requestor, which includes the requestor procedure 602 as set forth in Table III The ~rp~irotion process 601 is also logically coupled to the SPM process 6u3, which is cu..v. Illiunàl and has the structures and functions of the above-described o~
manager or an equivalent recovery manager capable of cn~ a multi-phase commit procedure. The al~p~
servers at the protected resource sites, which are peers of the ~rp~;cs'i-)n requestor, have, in addition to cùn~ liunally available functions for applicàtiOIl servers that execute in co..ju---,l;on with an SPM, the funclions .u,u.~ ..tcd by the protected procedure block 604, as set forth in Table IV. Similarly, the ~rp~;rotinn servers at UU~,UI~l: ' ' resource sites have, in addition to cu..~ ionàl fuu."liullalily, the functions ~~- c ' by the llnp. utc.,tcd procedure block 605, as set forth in Table V. Together, the processes ll~,UI, ' ' by the blocks 602, 604, and 605 implement the commit process sequences described above.
The arplinotir~n process 601 calls the SPM process 603, the requestor procedure 602, and the protected and u~plut~lcd p~uccdu~o 604 and 60S. The rcquestor procedure calls 603 and 605. The SPM process 603 calls 602 and 604. The protected procedurc 604 calls 602. Thc unpi utcclcd procedure 605 calls 602.
The requestor proccdurc in TABI.E 111 rcceives calls and routes them to application requestor pluccdu~ set forth in Tables IIla-llIc. The procedure ResCall 602a, set forth in Table Illa, assumes that all calls targeted to resource sitcs are passed through the a~pli. àtiun rcqucslor to the resource site via their application servers. The call elici~s a reply from the application server at the resource site, with the reply being directed to the application requestor, where it is analyzed, processed if neccssary, and scnt to their intended recipients and the initial call is processed by the application requestor.
The R qr~ proccdure 602b is set forth in Table IIlb and is invoked when the application requestor is callëd ,: , :
: ~ : to cornmit a 1, à~ a~liOII The ReqBackout procedure 602c, set forth in Table IIlc, is invoked in response to a call to the ~~ ' application requestor to backout a transaction. The Prepare, Cnn~m;~ t and Backout pl occdul ~ 602d, 602e, and 602f (sct forlh in, .~ O,U~ti~ ly~ Tablcs Illd-lllf) arc conducted by the arplirotinn requestor in rcsponse to the rust (Preparej . .~ and second (Commit or Backout) phases of a two-phase commit 1. allSa_liull syllcll.uni~ ion procedure conducted by - ~ SPM.
The Protected procedure 604 routcs calls which are made to an application server at a protected resource site from ~ ~ various sources to the apu.upl procedures in Table IV. The Prepare, Commit, and Backout pi occdul'uO of block 604a, 604b, and 604c are called during two-phase transaction s~ll.,LIuniL~tioll ~ , - :-" '' ' , .
~-, ',' ~ 2 1 1 9 2 2 1 - ; :

The procedures ResCommit and Rc~13ackou~ Or hlock 6(14d and 604~ reptescnt dynarnic calls that may be . made from the appIicdli( n rrograln whicll llas no knowlc(lgc Or thcm at thc time i~ was compiled. 13ach :~ - elicits a rcquest d;rectcd to ~llc arrlicalioll scrvcr. rhc invcntion con~cmplaLes that COMMIT and - ~ 13ACKOUT calls originated at ~he aprlication rcqueslor and dirccled to protectcd resource sites violate the protocols of this invention an(l accordin~ly rclurll colllmand violation indications.
l he calls made from thc ullrro~cclcd rrocc(lurc hl~ck 6~)5 return a Rl QUL1S I ED message to the appli~aliol~ requcstor if tlley origi~ c ~rom ~hc arrlication progr~m (hlock 6()5a and 605b). In response tvo ( OMMIT and B~( KOU I calls ~rom tllc ~prlicatioll rcqclcstor ll1e unproleclcd IJI~J~ UI~; 605 makes calls lo the p-v~c~ s rcrrcsenlc(l hy l-lock~ c an(l ~ o commit Or hackoul llnl~roleclcd rcsourccs.
~ ~ .
- TABLE III
Procedure Re-uestor (calltype) If cal_type = Resource call ~: ~' ~hen ~all ResCall-If cal-type= Requestor commit , then call ReqCommit-- If calltype = 2equestor backout -~- then cal ReqBackout;
- ~ If calltype = ~PM Prepare --~ then cal_ Prepare;
c If calltype = SPM Committed - then call Committed, If calltype = SPM Backout then call Backout;
Return Response to Caller;
- - TABLE IIIA
-~ -Procedure ResCall Resource targeted call is passed tllrough the requestor to the resource;
If multi-resource update and the reply from the resource is commit Then call the SPM to commit the transaction;
If multi-resource update and the reply from the resource is backout Then call the SPM to baclcout the transaction;
~ If not multi-resource update and the reply from the resource is commit t Repeat for all read only resources or until baclcout occurs Send commit command to read only resource;
~ If response is backout - Then - Repeat for all read only resources - ~ Send backout command to read only resource;
~ End Repeat;
;_- End then-End Repeat;
If the read only resources backed out Then send backout to update resource ~;- Else ' Send commit to update resource - If update resource backs out ~- ~ ~ Then Repeat for all read only resources ~- ' Send baclcout command to resource;
.' - End Repeat '~ End then;
End else;
,!.;'' End then-If not multi-resource update and the reply from the resource is backout ~ Then - '~ Repeat for all resources --~ Send backout command to resource;
~ ~ End Repeat;
:', ':

r~ f~r~f~ ~

2~9221 : '".
~ ~ i. SA9-93-003 1~3 . .
' ~, .
End then;
; ~ Return status of transaction--End Procedure ResCall;
TABLE IIIB
- -Procedure ReqCommit - If multi-resource update Then Call the SPM to commit the transaction-If not multi-resource update Then Repeat for all read only resources or until backout occurs Send commit command to read only resource;
If response is backout Then Repeat for all read only resources Send backout command to read only resource;
End Repeat;
End then;
~ End Repeat-- ~- If the read only resources backed out Then send backout to update rèsource Else - Send commit to update resource If upd.te resource backs out Then ~-~ Repeat for all read only resources Send backout command to read only resource;
End Repeat-End then;
- End else;
End then--- Return status of transaction;
- -~nd Procedure ReqCommit;
TABLE IIIC
, -Procedure ReqBackout If multi--esource update Then ca_l the SPM to backout the transaction;
If not mu:.ti-resource update Repeat or all resources Send backout command to resource;
End Repeat-: Return status of transaction-~ -End Procedure ReqBackout;
:
~- TABLE IIID
-Procedure Prepare Repeat for a~1 unprotected resources or until backout occurs -~ Send commit command to resource;
, ' If response is backout ~ ~ Then -; Repeat for all unprotected resources ~'- f Send backout command to unprotected resource;
' "~r I End Repeat;
~- ~ End, then -~ End Repeat;
If the resources backed out ~' Then return Backed Out - - Else return Request Commit;
, ~ ~ ~ -End Procedure Prepare - TABLE IIIE
-Procedure Commit Return Committed to the SPM;
-End Procedure Commit;

'-'"
' ~, ., ;~
c ~
~'~. 2119221 : -~s ~ :', SA9-93-003 19 ~, '. ~
,"'1, : r: -;, TABLE IIIF
:~ -Procedure Backout ~: - ~ Repeat for all unprotected resources Send backout command to resource;
:~:. . ; End Repeat;
.~ Return OK--End Procedure Backout;
- ~ End Procedure Requestor;
- - , . ~, .
TABLE IV
-~ Procedure Protected (calltype) -: If calltype = SPM Prepare :~ ' Then call Procedure Prepare;
If calltype = SPM Commit - Then call Procedure Commit;
~ : If calltype = SPM Backout -. ; Then call Procedure Backout;
:: If calltype = Resource Commit ; : Then call Procedure ResCommit;
: , - If calltype = Resource Backout . Then ca~l Procedure ResBackout;
If calltype = Requestor Commit Then call Procedure ReqCommit;
::: If calltype = Requestor Backout :~' Then call Procedure ReqBackout;
:- Return 1~sponse to caller;
-Procedure Prepare Perform first phase processing-- Return results of first phase processing;
~ : -End Procedure Prepare-: -Procedure Commit ~:: Perform second phase processing;
Return results of second phase processing;
-End Procedure Commit ~ -Procedure Backout -: . Perform backout processing;
Return results of backout processing;
: -End Procedure Backout;
-Procedure ResCommit Return Request to commit;
~ -End Procedure ResCommit;
I : -Procedure ResBackout : Return request to backout;
-End Procedure ResBackout;
-Procedure ReqCommit Return command violation -~ -End Procedure ReqCommit;
-::: -Procedure ReqBackout .r~,: Return command violation -End Procedure ReqBackout;
End Procedure Protected;

'- TABLE V
: Procedure Unprotected (calltype) : If calltype = Resource Commit : Then call Procedure ResCommit;
; If calltype - Resource Backout - Then call Procedure Res8ackout;
- If calltype = Requestor Commit Then call Procedure ReqCommit;
: If calltype = Requestor Backout '\ ~ Then Call Procedure ReqBackout;
~. Return response to caller;
: - ~ -Procedure ResCommit Return requested to commit;
-- -End Procedure ResCommit;
-Procedure ResRollback ... ~Return requested to rollback;
-End Procedure ResRollback;

':
.;, ~ 2119221 SA9-93-003 2() ~".~
:~ :.,, . -Procedure ReqCommit Commit the local resource;
.: Return status of transaction at resource;
- -End Procedure ReqCommit:
~:- -Procedure ReqBackout Rollback the local resource;
. Return status of transaction at resource;
-End Procedure ReqBackout, :- . End Procedure Unprotected;

While onty certain prcfcrrc~l rc.lturcs or this invcntion llavc hccn shown by way of illustration, many -~ changes and modifications will occur to 1hosc skillcd in thc art. /~,G~)Idillgl~, it is to be wld~ tuod that the :~ , . . d appended ctalms are mtcndcd to COVCr all sucll modlllcatlons mld cllallges as fall wlthln the true spmt an scope of the invcntion.
.
~,:
: ,...
., -: '.

: - , : "
--:
, -'::' ' ..
: .::

~ ,,,-~-~'s,', ~.

~,~,': - ' ~ O;.j7 ''i ' ;" '

Claims (13)

1. A method for synchronizing transaction processing in a distributed database system with a plurality of sites, the system having at least one application site with a processor for executing an application program and an application requestor procedure, and a plurality of resource sites, each resource site including a server with a database and a data management processor, the method including the processor-executed steps of:
operating at least one first resource site of the plurality of resource sites under control of a single-phase transaction synchronization procedure;
operating at least one second resource site of the plurality of resource sites under control of a multi-phase transaction synchronization procedure;
executing a transaction at the at least one application site, the transaction including at least one request for a database access operation at a resource site;
issuing a transaction synchronization request from the application site and communicating the transaction synchronization request to the application requestor at the application site;
determining at the application requestor whether any first resource sites performed database access operations during the transaction; and (a) if only one or more first resource sites performed database access operations during the transaction, communicating transaction commit requests from the application requestor to all such first resource sites, conducting single-phase transaction synchronization procedures at all such first resource sites in response to the transaction commit requests, and communicating results of such single-phase transaction synchronization procedures to the application site; otherwise, (b) if one or more first resource sites and one or more second resource sites performed database access operations during the transaction:
first, communicating transaction commit requests to all such second resource sites and to the application requestor and commencing a multi-phase transaction synchronization procedure including all such second resource sites and the application requestor, communicating transaction synchronization requests from the application requestor to all such first resource sites, conducting single-phase transaction synchronization procedures at all such first resource sites in response to the transaction synchronization requests, and communicating results of such single-phase transaction synchronization procedures to the application site;
followed by, completing the multi-phase transaction synchronization procedure and communicating results of the multi-phase transaction synchronization procedure to the application site; and either committing or backing out the transaction in response to results of transaction synchronization procedures communicated to the application site.
2. The method of claim 1, further including:
if the transaction requires a database update operation at a first resource site;
generating a transaction backout request at the application requestor if the transaction requires a database update operation at any other resource site and providing the transaction backout request to the application program; and backing out the transaction.
3. The method of claim 2, wherein step (a) includes:
if any first resource site performed a database update operation during the transaction;
first, communicating transaction commit requests from the application requestor to all first resource sites which conducted database read operations during the transaction, conducting single-phase transaction synchronization procedures at all such first resource sites, and communication results of such single phase transaction procedures to the application requestor; and followed by, communicating a transaction commit request from the application requestor to the first resource site which performed the database update transaction, conducting a single-phase transaction synchronization procedure at the first resource site which performed the database update transaction, and communicating the result of the single-phase transaction synchronization procedure to the application requestor.
4. In a distributed, heterogeneous database system including at least one application processor at which a transaction-based application program executes, a plurality of resource processors at which database access operations are performed and a communication facility linking all processors together, a method for transaction COMMIT processing, the method including the steps of:
executing database access operations at at least one first resource processor under control of a single-phase transaction synchronization procedure;
executing database access operations at at least one second resource processor under control of a multi-phase transaction synchronization procedure;
executing a transaction at the application processor, the transaction including a plurality of database access operation requests;
conducting database access operations in response to the database access operation requests at one or more resource processors;
issuing a request from the application to COMMIT the transaction;
first, commencing a multi-phase COMMIT procedure including all second resource processors which executed database access operations during the transaction and the application processor;
next, conducting single-phase COMMIT procedures at all first resource sites which executed database access operations during the transaction and communicating results of such single-phase COMMIT procedures to the application processor;
followed by, completing the multi-phase COMMIT procedure and communicating results of the multi-phase COMMIT procedure to the application processor; and either committing or backing out the transaction in response to results of the COMMIT
procedures communicated to the application processor.
5. The method of claim 4, further including:
if the database access operation requests include an UPDATE request performed at a first resource processor;
generating a transaction backout request if any other UPDATE requests are directed to any other resource processors, and backing out the transaction.
6. A method for synchronizing transaction processing in a system with a plurality of distributed sites at which transaction operations may be performed, the plurality of distributed sites having at least one application site with a processor for executing an application program and an application requestor procedure, and a plurality of resource sites, each resource site including a server with a database and a data management processor, the method including the processor-executed steps of:
operating at least one first resource site of the plurality of resource sites under control of a single-phase transaction synchronization procedure;
operating at least one second resource site of the plurality of resource sites under control of a multi-phase transaction synchronization procedure;
executing a transaction at at least one application processor, the transaction including at least one request for a transaction resource operation conducted at a resource processor;
issuing a transaction synchronization request from the application processor at the at least one application processor and communicating the transaction synchronization request to the requestor means and to all second resource processors which conducted transaction resource operations;
determining at the requestor means whether any first resource processors performed transaction resource operations during the transaction; and (a) if only one or more first resource processors performed transaction resource operations during the transaction, communicating transaction commit requests from the application processor to all such first resource processors, conducting single-phase transaction synchronization procedures at all such first resource processors in response to the transaction commit requests, and communicating results of such single-phase transaction synchronization procedures to the requestor means, otherwise, (b) if one or more first resource processors and one or more second resource processors performed transaction resource operations during the transaction:
first, communicating transaction commit requests to all such resource processors and to the requestor means, conducting a multi-phase synchronization procedure including the requestor means and all such second resource processors, during a first phase of the multi-phase transaction synchronization procedure, communicating commit requests from the application processor to all such first resource processors, conducting single-phase transaction synchronization procedures at all such first resource processors in response to the transaction commit requests, and communicating results of such single-phase transaction synchronization procedures to the requestor means;
followed by, conducting all remaining phases of the multi-phase transaction synchronization procedure and communicating results of the multi-phase transaction synchronization procedure to the application processor; and either committing or backing out the transaction in response to results of the multi-phase transaction synchronization procedure communicated to the application processor.
7. The method of claim 6, wherein the multi-phase transaction synchronization procedure is a two-phase transaction synchronization procedure in which the requestor means and all such second resource processors vote to commit or backout the transaction in a first phase, and the transaction is either committed or backed out in a second phase in response to votes made in the first phase, wherein:
during the first phase, the steps of communicating transaction commit requests to the first resource processors, conducting single-phase transaction synchronization procedures, and communicating results of such single-phase transaction synchronization procedures are performed during the first phase of the two-phase transaction synchronization procedure; and the requestor means votes to commit the transaction during the first phase of the multi-phase transaction synchronization procedure if all such first resource sites commit, or to back out if any such first resource site backs out.
8. A resource manager for synchronizing transactions in a distributed, heterogeneous database with a plurality of resource sites, the resource manager including:
application interface means for receiving requests from a transaction to a plurality of resource sites for access to database resources at one or more of the plurality of resource sites, the requests including requests to unprotected resource sites controlled by single-phase synchronization point management and requests to protected resource sites controlled by multi-phase synchronization point management, monitor means coupled to the application interface means for granting updating privileges exclusively to a single resource site if the transaction does not request updating at multiple resource sites, and for granting update privileges to a plurality of protected resource sites if the transaction requests updating at more than one resource site; and commit means for committing the transaction by:
(a) if the transaction accessed database resources only at unprotected resource sites, initiating single-phase transaction synchronization procedures at all such unprotected resource sites; otherwise (b) if the transaction accessed database resources at unprotected resource sites and protected resource sites, first, communicating transaction commit requests to all such protected resource sites, conducting a multi-phase transaction synchronization procedure including all such protected resource sites and the resource manager, communicating transaction synchronization requests to all such unprotected resource sites, followed by, completing the multi-phase transaction synchronization procedure by either committing or backing out the transaction in response to results of the transaction synchronization procedures.
9. The resource manager of claim 8, wherein the commit means includes means for generating a transaction backout request if the transaction first updates database resources at an unprotected resource site and then requests that database resources be updated at any other resource site.
10. The resource manager of claim 9, wherein the commit means commits the transaction under condition 10(a) and further by:
if the transaction updated database resources at a first unprotected resource site;
first, conducting single-phase transaction synchronization procedures with all unprotected resource sites where the transaction read database resources; and followed by, conducting a single-phase transaction synchronization procedure with the first unprotected resource site.
11. A resource manager program product for synchronizing transactions in a distributed, heterogeneous database system including a plurality of resource sites, the resource manager program product including:

application interface means for receiving requests from a transaction to a plurality of resource sites for access to database resources at one or more of the plurality of resource sites, the requests including requests to unprotected resource sites controlled by single-phase synchronization point management and requests to protected resource sites controlled by multi-phase synchronization point management;
monitor process means coupled to the application interface means for granting updating privileges exclusively to a single resource site if the transaction does not request updating at multiple resource sites, and for granting update privileges to a plurality of protected resource sites if the transaction requests updating at more than one resource site; and commit process means for committing the transaction by:
(a) if the transaction accessed database resources only at unprotected resource sites, initiating single-phase transaction synchronization procedures at all such unprotected resource sites; otherwise (b) if the transaction accessed database resources at unprotected resource sites and protected resource sites, first, communicating transaction commit requests to all such protected resource sites, conducting a multi-phase transaction synchronization procedure including all such protected resource sites and the resource manager, communicating transaction synchronization requests to all such unprotected resource sites, followed by, completing the multi-phase transaction synchronization procedure by either committing or backing out the transaction in response to results of the transaction synchronization procedures.
12. The resource manager program product of claim 11, wherein the commit process means includes means for generating a transaction backout request if the transaction first updates database resources at an unprotected resource site and then requests that database resources be updated at any other resource site.
13. The resource manager program product of claim 12, wherein the commit process means commits the transaction under condition 28(a) and further by:
if the transaction updated database resources at a first unprotected resource site;
first, conducting single-phase transaction synchronization procedures with all unprotected resource sites where the transaction read database resources; and followed by, conducting a single-phase transaction synchronization procedure with the first unprotected resource site.
CA002119221A 1993-03-16 1994-03-16 Method for synchronizing transaction processing in a distributed heterogeneous system Expired - Fee Related CA2119221C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/031,774 US5455944A (en) 1993-03-16 1993-03-16 Method for managing logging and locking of page free space information in a transaction processing system
US031,774 1993-03-16

Publications (2)

Publication Number Publication Date
CA2119221A1 CA2119221A1 (en) 1994-09-17
CA2119221C true CA2119221C (en) 1998-09-15

Family

ID=21861317

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002119221A Expired - Fee Related CA2119221C (en) 1993-03-16 1994-03-16 Method for synchronizing transaction processing in a distributed heterogeneous system

Country Status (2)

Country Link
US (1) US5455944A (en)
CA (1) CA2119221C (en)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07143170A (en) * 1993-11-19 1995-06-02 Fujitsu Ltd Information delivery system
JPH07175700A (en) * 1993-12-20 1995-07-14 Fujitsu Ltd Database management system
CA2211013A1 (en) * 1995-01-23 1996-08-01 Thomas M. Eastep System for maintenance of database integrity
US6647510B1 (en) * 1996-03-19 2003-11-11 Oracle International Corporation Method and apparatus for making available data that was locked by a dead transaction before rolling back the entire dead transaction
US5857204A (en) * 1996-07-02 1999-01-05 Ab Initio Software Corporation Restoring the state of a set of files
US5974425A (en) * 1996-12-17 1999-10-26 Oracle Corporation Method and apparatus for reapplying changes to a database
US5832516A (en) * 1997-01-21 1998-11-03 Oracle Corporation Caching data in recoverable objects
US5790851A (en) * 1997-04-15 1998-08-04 Oracle Corporation Method of sequencing lock call requests to an O/S to avoid spinlock contention within a multi-processor environment
US5951695A (en) * 1997-07-25 1999-09-14 Hewlett-Packard Company Fast database failover
JP3113841B2 (en) * 1997-07-30 2000-12-04 インターナショナル・ビジネス・マシーンズ・コーポレ−ション Parallel transaction processing system
US6185699B1 (en) 1998-01-05 2001-02-06 International Business Machines Corporation Method and apparatus providing system availability during DBMS restart recovery
US6119128A (en) * 1998-03-30 2000-09-12 International Business Machines Corporation Recovering different types of objects with one pass of the log
US6161109A (en) * 1998-04-16 2000-12-12 International Business Machines Corporation Accumulating changes in a database management system by copying the data object to the image copy if the data object identifier of the data object is greater than the image identifier of the image copy
US6334134B1 (en) 1998-08-18 2001-12-25 International Business Machines Corporation Insert performance on a multi-system transaction environment
US6363389B1 (en) 1998-09-24 2002-03-26 International Business Machines Corporation Technique for creating a unique quasi-random row identifier
US6343286B1 (en) 1998-09-24 2002-01-29 International Business Machines Corporation Efficient technique to defer large object access with intermediate results
US6144970A (en) * 1998-09-24 2000-11-07 International Business Machines Corporation Technique for inplace reorganization of a LOB table space
US6694340B1 (en) 1998-09-24 2004-02-17 International Business Machines Corporation Technique for determining the age of the oldest reading transaction with a database object
US6470359B1 (en) 1998-09-24 2002-10-22 International Business Machines Corporation Fast technique for recovering an index on an auxiliary table
US6606617B1 (en) 1998-09-24 2003-08-12 International Business Machines Corporation Optimized technique for prefetching LOB table space pages
JP3004008B1 (en) * 1998-10-20 2000-01-31 三菱電機株式会社 Update history management device and update history management method
US6631366B1 (en) * 1998-10-20 2003-10-07 Sybase, Inc. Database system providing methodology for optimizing latching/copying costs in index scans on data-only locked tables
US6470330B1 (en) * 1998-11-05 2002-10-22 Sybase, Inc. Database system with methods for estimation and usage of index page cluster ratio (IPCR) and data page cluster ratio (DPCR)
US6411964B1 (en) * 1998-12-23 2002-06-25 International Business Machines Corporation Methods for in-place online reorganization of a database
US6370528B1 (en) * 1999-05-28 2002-04-09 Unisys Corporation High speed method for flushing data buffers and updating database structure control information
JP4237354B2 (en) * 1999-09-29 2009-03-11 株式会社東芝 Transaction processing method and transaction processing system
US6553466B1 (en) * 1999-10-01 2003-04-22 Infraworks Corporation Shared memory blocking method and system
CA2306968C (en) * 2000-04-28 2004-11-30 Ibm Canada Limited-Ibm Canada Limitee Efficient index-data fetch via callback for a table data
US6598041B1 (en) * 2000-09-07 2003-07-22 International Business Machines Corporation Method, system, and program for processing modifications to data in tables in a database system
US6633884B2 (en) * 2001-04-03 2003-10-14 Bmc Software, Inc. System and method for analyzing a database for on-line reorganization
US6807541B2 (en) * 2002-02-28 2004-10-19 International Business Machines Corporation Weak record locks in database query read processing
US7058664B1 (en) * 2002-04-29 2006-06-06 Sprint Communications Company L.P. Method and system for data recovery
US7484216B2 (en) * 2002-06-18 2009-01-27 Microsoft Corporation System and method for decoupling space reservation in transactional logging systems
US6842825B2 (en) 2002-08-07 2005-01-11 International Business Machines Corporation Adjusting timestamps to preserve update timing information for cached data objects
US7003695B2 (en) * 2002-10-03 2006-02-21 Seiko Epson Corporation Undo/redo algorithm for a computer program
CA2422176C (en) * 2003-03-14 2009-07-21 Ibm Canada Limited - Ibm Canada Limitee Method and apparatus for interrupting updates to a database to provide read-only access
US7032090B2 (en) * 2003-04-08 2006-04-18 International Business Machines Corporation Method, system, and apparatus for releasing storage in a fast replication environment
US7069402B2 (en) * 2003-06-02 2006-06-27 International Business Machines Corporation Host-independent incremental backup method, apparatus, and system
CA2433254A1 (en) 2003-06-25 2004-12-25 Ibm Canada Limited - Ibm Canada Limitee System and method for warm shutdown and restart of a buffer pool
US7047379B2 (en) * 2003-07-11 2006-05-16 International Business Machines Corporation Autonomic link optimization through elimination of unnecessary transfers
GB2405228B8 (en) * 2003-08-19 2007-09-13 Ibm A method, apparatus and computer program for verifying the order of a queue of work items
CA2438366A1 (en) * 2003-08-26 2005-02-26 Ibm Canada Limited - Ibm Canada Limitee System and method for starting a buffer pool
US7631010B2 (en) * 2004-04-16 2009-12-08 Microsoft Corporation Systems and methods in support of data base page synchronization
US7707195B2 (en) * 2004-06-29 2010-04-27 Microsoft Corporation Allocation locks and their use
US20060095685A1 (en) * 2004-11-03 2006-05-04 Bonola Thomas J System and method to coordinate access to a sharable data structure using deferred cycles
US7617180B1 (en) * 2005-06-06 2009-11-10 Infoblox Inc. Efficient lock management
US7865684B2 (en) * 2005-06-27 2011-01-04 Ab Initio Technology Llc Managing message queues
US7673105B2 (en) * 2005-06-27 2010-03-02 Ab Inition Technology LLC Managing memory pages
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US20070005874A1 (en) * 2005-07-01 2007-01-04 Dan Dodge File system storing transaction records in flash-like media
US8959125B2 (en) * 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7707480B2 (en) * 2005-07-01 2010-04-27 Qnx Software Systems Gmbh & Co. Kg System employing data verification operations of differing computational costs
US7698495B2 (en) * 2005-07-01 2010-04-13 QNZ Software Systems GmbH & Co. KG Computer system having logically ordered cache management
US7873683B2 (en) * 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7636829B2 (en) * 2006-05-02 2009-12-22 Intel Corporation System and method for allocating and deallocating memory within transactional code
US7599972B2 (en) * 2006-08-25 2009-10-06 Qnx Software Systems Gmbh & Co. Kg File system having variable logical storage block size
US8566503B2 (en) * 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US7908276B2 (en) * 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US8548942B2 (en) 2006-10-04 2013-10-01 Salesforce.Com, Inc. Methods and systems for recursive saving of hierarchical objects to a database
US8682863B2 (en) 2006-10-04 2014-03-25 Salesforce.Com, Inc. Methods and systems for bulk row save logic in an object relational mapping layer and application framework
US8161010B2 (en) 2006-10-04 2012-04-17 Salesforce.Com, Inc. Methods and systems for providing fault recovery to side effects occurring during data processing
US8589357B2 (en) * 2006-10-20 2013-11-19 Oracle International Corporation Techniques for automatically tracking and archiving transactional data changes
JP2008146574A (en) * 2006-12-13 2008-06-26 Hitachi Ltd Storage controller and storage control method
US20080243966A1 (en) * 2007-04-02 2008-10-02 Croisettier Ramanakumari M System and method for managing temporary storage space of a database management system
US9672237B2 (en) * 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
US9558229B2 (en) * 2013-11-26 2017-01-31 Sap Se Transaction private log buffering for high performance of transaction processing
US20150222679A1 (en) * 2014-01-31 2015-08-06 Wal-Mart Stores, Inc. Data streaming framework from database to multiple targets by leveraging cached database connections and cursors
US10303806B2 (en) * 2014-08-20 2019-05-28 Sachin Sinha Method and system for providing concurrent buffer pool and page cache
FR3046267B1 (en) * 2015-12-28 2018-02-16 Proton World International N.V. STORING DATA IN A FLASH MEMORY
US10749921B2 (en) * 2016-06-01 2020-08-18 Netflix, Inc. Techniques for warming up a node in a distributed data store
US10565070B2 (en) * 2017-11-29 2020-02-18 Bmc Software, Inc. Systems and methods for recovery of consistent database indexes

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4507751A (en) * 1982-06-21 1985-03-26 International Business Machines Corporation Method and apparatus for logging journal data using a log write ahead data set
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
EP0357768B1 (en) * 1988-03-14 1994-03-09 Unisys Corporation Record lock processor for multiprocessing data system
US4961134A (en) * 1988-07-15 1990-10-02 International Business Machines Corporation Method for minimizing locking and reading in a segmented storage space
US5193162A (en) * 1989-11-06 1993-03-09 Unisys Corporation Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities
US5222235A (en) * 1990-02-01 1993-06-22 Bmc Software, Inc. Databases system for permitting concurrent indexing and reloading of data by early simulating the reload process to determine final locations of the data
US5247672A (en) * 1990-02-15 1993-09-21 International Business Machines Corporation Transaction processing system and method with reduced locking
US5280612A (en) * 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system

Also Published As

Publication number Publication date
CA2119221A1 (en) 1994-09-17
US5455944A (en) 1995-10-03

Similar Documents

Publication Publication Date Title
CA2119221C (en) Method for synchronizing transaction processing in a distributed heterogeneous system
US5561797A (en) Method for synchronizing transaction processing in a distributed heterogeneous system
Gligor et al. Transaction management in distributed heterogeneous database management systems
US5553234A (en) System and method for including stored procedures, user-defined functions, and trigger processing in an existing unit of work
EP0618532B1 (en) Deadlock detecting device
US6421686B1 (en) Method of replicating data records
Duchamp Analysis of transaction management performance
Newman-Wolfe et al. MACE: a fine grained concurrent editor
Mehrotra et al. Ensuring transaction atomicity in multidatabase systems
Batra et al. A Decentralized Deadlock-Free Concurrency Control Method for Multidatabase Transactions.
KR100403659B1 (en) An apparatus, method and computer program product for client/server computing with intelligent location of transaction objects
Jing et al. Maintaining consistency of replicated data in multidatabase systems
Hsu et al. Partitioned two-phase locking
Reinsch Distributed database for SAA
Blackman IMS celebrates thirty years as an IBM product
Sherman Distributed transaction processing with encina
EP0616284A2 (en) Transaction processing
US6236995B1 (en) Distributed object system with deadlock prevention
Yadav et al. A distributed architecture for transactions synchronization in distributed database systems
POPESCU-ZELETIN TRANSACTION MANAGEMENT IN DISTRIBUTED HETEROGENEOUS DATABASE MANAGEMENT SYSTEMS
Tang Using dummy reads to maintain consistency in heterogeneous database systems
Hope Enterprise transaction processing on Windows NT
Gupta HP Encina/9000: Middleware for Constructing Transaction Processing Applications
Kawaguchi et al. A Performance Study of Divergence Control Algorithms
JPH06187217A (en) System for synchronization between data base and normal file

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed