throbber
Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 1 of 16
`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 1 of 16
`
`
`
`
`
`
`
`EXHIBIT 1
`
`
`EXHIBIT 1
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 2 of 16
`I IIIII IIIIIIII Ill lllll lllll lllll lllll lllll lllll lllll lllll 111111111111111111
`US007177886B2
`
`c12) United States Patent
`Pruet, III
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 7,177,886 B2
`Feb.13,2007
`
`(54) APPARATUS AND METHOD FOR
`COORDINATING LOGICAL DATA
`REPLICATION WITH HIGHLY AVAILABLE
`DATA REPLICATION
`
`(75)
`
`Inventor: Clarence Madison Pruet, III, Flower
`Mound, TX (US)
`
`(73) Assignee: International Business Machines
`Corporation, Armonk, NY (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 534 days.
`
`(21) Appl. No.: 10/360,403
`
`(22) Filed:
`
`Feb. 7, 2003
`
`(65)
`
`Prior Publication Data
`
`US 2004/0158588 Al
`
`Aug. 12, 2004
`
`(51)
`
`Int. Cl.
`G06F 17/30
`(2006.01)
`(52) U.S. Cl. ...................... 707/204; 707/202; 707/203;
`707/1; 709/203; 370/389
`(58) Field of Classification Search ........ 707/202-204,
`707 /1; 370/389; 709/203
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,594,900 A
`5,640,561 A
`5,842,222 A
`6,148,412 A
`6,199,069 Bl
`6,199,074 Bl
`
`1/1997 Cohn et al.
`6/1997 Satoh et al.
`11/1998 Lin et al.
`11/2000 Cannon et al.
`3/2001 Dettinger et al.
`3/2001 Kern et al.
`
`6/2001 Bogantz et al.
`6,243,715 Bl
`7/2001 Smith
`6,269,432 Bl
`9/2001 Parker
`6,289,357 Bl
`9/2001 Wallach et al.
`6,292,905 Bl
`6,304,882 Bl * 10/2001 Strellis et al.
`.............. 707/202
`6,324,693 Bl
`11/2001 Brodersen et al.
`6,405,220 Bl
`6/2002 Brodersen et al.
`6/2002 Hart
`6,408,310 Bl
`6,421,688 Bl
`7/2002 Song
`
`(Continued)
`
`OTHER PUBLICATIONS
`
`"Efficient Logging of Transactions on Persistent Information in
`General and Databases in Particular", IBM Technical Disclosure
`Bulletin, vol. 40, No. 11, Nov. 1997, pp. 117-120.
`
`(Continued)
`
`Primary Examiner-Sathyanarayan Pannala
`(74)Attorney, Agent, or Firm-Fay, Sharpe, Fagan, Minnich
`& McKee, LLP
`
`(57)
`
`ABSTRACT
`
`In a database apparatus (10), a critical database server (12)
`includes a primary server (20) supporting a primary database
`instance and a secondary server (22) supporting a secondary
`database instance that mirrors the primary database instance.
`The secondary server (22) generates an acknowledgment
`signal (60) indicating that a selected critical database trans(cid:173)
`action ( 42) is mirrored at the secondary database instance. A
`plurality of other servers (14, 16, 18) each support a data(cid:173)
`base. A data replicator (30) communicates with the critical
`database server (12) and the other servers (14, 16, 18) to
`replicate the selected critical database transaction ( 42) on at
`least one of said plurality of other servers (14, 16, 18)
`responsive to the acknowledgment signal (60).
`
`10 Claims, 6 Drawing Sheets
`
`12 r -
`~
`1
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`~ Ccnt_Serv _Sec
`~ n
`R-1
`
`I
`
`I
`1
`
`;
`34
`................... ~ ....... ,
`
`~--------1 -------i---------------- I
`C::::
`=::::>
`
`Dat_Replic
`
`.1Q
`
`/
`10
`
`Rmt_l
`14
`
`Rmt_2
`16_
`
`Rmt_3
`.lli
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 3 of 16
`
`US 7,177,886 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`2005/0114285 Al*
`
`5/2005 Cincotta ........................ 707/1
`
`9/2002
`6,446,075 Bl
`6,654,891 Bl* 11/2003
`6,671,757 Bl* 12/2003
`7,065,541 B2
`6/2006
`2002/0116457 Al*
`8/2002
`2002/0163910 Al * 11/2002
`
`Velasco
`Borsato et al. ................ 726/6
`Multer et al. ............... 710/100
`Gupta et al.
`.......... 709/203
`Eshleman et al.
`Wisner et al.
`.............. 370/389
`
`OTHER PUBLICATIONS
`
`Abstracted Patent No. JP200259473 of Shibata Hirohito, Entitled:
`Database Management System, Publication Date Sep. 22, 2000.
`IBM Technical Disclosure Bulletin, vol. 30, No. 4, Sep. 1987, pp.
`1738-1740 - Database Recovery Using A Transaction Log File.
`
`* cited by examiner
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 4 of 16
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`,
`
`I Cent_Serv _Sec I :
`I Cent_Serv _Prim I .,_.
`. . . • . .
`............. .?.~.~ ...... .l L ~
`~-------~~-----~------------------(cid:173)
`. . .
`
`12 r -
`~
`1
`I
`
`R-1
`32
`
`20
`
`:
`
`22
`
`R-1
`
`. I
`
`I
`I
`
`/
`10
`
`R-1
`32'
`
`Dat_Replic 30
`
`Rmt 1
`14
`
`Rmt 2
`16
`
`Rmt_3
`18
`
`FIG 1
`
`e •
`
`00
`•
`~
`~
`~
`
`~ = ~
`
`"f'j
`
`~ ....
`
`~
`"'
`N
`0
`0
`-....J
`
`rJJ =(cid:173)
`('D a ....
`0 ....
`
`O'I
`
`d
`rJl.
`"'-.....l
`"""'
`-.....l
`-.....l
`00
`00
`
`O', = N
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 5 of 16
`
`e •
`
`00
`•
`~
`~
`~
`
`~ = ~
`
`.
`34
`:
`. . .
`•..••..•••.•••.•••• ~ •••.... !
`~--------~---------~-~-~----------(cid:173)
`. . . . . •
`
`R-1
`
`"f'j
`
`~ ....
`
`~
`"'
`N
`0
`0
`-....J
`
`Dat_Replic 30
`
`rJJ =(cid:173)
`('D a
`0 ....
`
`N
`
`O'I
`
`/
`10
`
`Rmt_l
`14
`
`Rmt_2
`16
`
`Rmt_3
`18
`
`R-1
`32'
`
`R-1
`32'
`
`R-1
`32'
`
`FIG2
`
`d r.,;_
`"'-.....l
`"""'
`-.....l
`-.....l
`00
`00
`
`O', = N
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 6 of 16
`
`········································································-···················~·-·······································
`
`~ _ J Transaction on primary ~ - - - - - -
`' l
`I
`42
`Logs ship to HDR
`secondary 52
`
`I
`
`Dat_Rep Snooping
`44
`
`Reconstruct transaction
`46
`
`Send Queue 48
`
`40
`
`Transactions applied and
`logged on secondary 54
`
`Secondary transmits
`acknowledgment 56
`
`....
`
`Clear send queue 66
`
`•
`
`-
`
`•
`
`-
`
`;;>
`
`.,1 Remote servers
`14, 1§, _IB
`
`I
`
`64
`I
`~
`. FIG 3
`
`60
`t__J
`
`..
`
`e •
`
`00
`•
`~
`~
`~
`
`~ = ~
`
`"f'j
`('D
`
`?' ....
`
`~
`"'
`N
`0
`0
`-....J
`
`('D
`('D
`
`~
`
`rJJ =(cid:173)
`.....
`0 ....
`
`O'I
`
`d r.,;_
`"'-.....l
`"""'
`-.....l
`-.....l
`00
`00
`
`O', = N
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 7 of 16
`
`Log_Buf
`72
`
`P_HDR_Buf
`74
`
`10 -
`
`11 -12 -Ll
`
`6 -7 -8 -2
`
`P _log file
`70
`
`6 -7 -8 -9 -
`
`HDR_Cont_Struct
`86
`
`I Last Ack=9 I
`i
`I Send Queue :Hi I
`
`Cent_Serv _Prim
`20
`
`App_Comp
`82
`
`S_HDR_Buf
`
`80 -6 -1
`8 -9 -
`
`6 -7 -8 -
`s;nt_Serv_Sec FIG 4
`
`2
`
`e •
`
`00
`•
`~
`~
`~
`
`~ = ~
`
`"f'j
`('D
`?'
`....
`
`~
`"'
`N
`0
`0
`-....J
`
`('D
`('D
`
`.i;...
`
`rJJ =(cid:173)
`.....
`0 ....
`
`O'I
`
`d r.,;_
`"'-.....l
`"""'
`-.....l
`-.....l
`00
`00
`
`O', = N
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 8 of 16
`
`Replication transaction is applied and logged at the primary server 90
`
`+
`
`Post Dat_Rep acknowledgment indexed to current primary log position 92
`-------~-----~--------------------------------------------------------------------------------------------
`Retrieve most recently
`backed up log pos lQ2
`
`r" •
`
`100
`V"'\:
`
`Create dummy
`transaction 110
`
`1
`I
`I
`I
`
`I
`I
`I
`I
`
`e •
`
`00
`•
`~
`~
`~
`
`~ = ~
`
`"f'j
`('D
`
`?' ....
`
`~
`"'
`N
`0
`0
`-....J
`
`: _....._
`
`I
`
`•
`
`,....
`
`i . .._.( Posted Dat_Rep
`ack list 94
`
`Send 106
`
`No
`
`Flush log buffers 112
`
`('D
`('D
`
`rJJ =(cid:173)
`......
`Ul
`0 ....
`
`O'I
`
`64-F'f

`i
`Clear send queue 66 ------------------------------------
`
`I Post an error alert .116 ~--~~--
`
`---
`
`1 Q 5
`Fl
`
`d r.,;_
`"'-.....l
`"""'
`-.....l
`-.....l
`00
`00
`
`O', = N
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 9 of 16
`
`/120
`Ji.
`
`152
`
`/
`
`-170
`
`'> ~
`
`170
`
`156./ 110-f vo
`
`150
`
`_c..
`
`177
`
`lnl
`
`\
`
`'\ ("-.,, 170
`
`IEJ
`
`...-
`El I
`
`1 -1 1-,
`
`1.-Wnl
`
`I
`

`
`)\,,,,,tr:::;--
`
`130
`
`132
`
`FIG 6 134
`
`136
`
`e •
`
`00
`•
`~
`~
`~
`
`~ = ~
`
`"f'j
`('D
`
`?' ....
`
`"'~
`N
`0
`0
`-....J
`
`162
`
`('D
`
`rJJ =-('D
`.....
`O'I
`0 ....
`
`O'I
`
`d r.,;_
`
`"'-.....l
`"""'
`-.....l
`-.....l
`00
`00
`
`O', = N
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 10 of 16
`
`US 7,177,886 B2
`
`1
`APPARATUS AND METHOD FOR
`COORDINATING LOGICAL DATA
`REPLICATION WITH HIGHLY AVAILABLE
`DATA REPLICATION
`
`BACKGROUND OF THE INVENTION
`
`The present invention relates to the information arts. In
`finds particular application in relational database systems
`that distribute data across a plurality of computers, servers, 10
`or other platforms, and will be described with particular
`reference thereto. However, the invention also finds appli(cid:173)
`cation in many other systems including distributed informa(cid:173)
`tion systems, in information backup systems, and the like.
`Relational database systems are widely used in business, 15
`govermnent, and other organizations to record, store, pro(cid:173)
`cess, share, and otherwise manipulate information. Because
`such organizations are commonly regional, national, or
`global in scope, the relational database is preferably acces(cid:173)
`sible from regionally, nationally, or globally distributed 20
`computers, terminals, or other devices across local area
`networks, Internet links, wireless links, and other commu(cid:173)
`nication pathways. For example, worldwide offices of a
`corporation preferably access a single corporate database or
`selected portions thereof.
`A problem arises in that accessing a single database by a
`large number of remote computer systems creates substan(cid:173)
`tial communication and data processing bottlenecks that
`limits database speed. To overcome such bottlenecks, a
`distributed database system is used, in which database 30
`information is shared or distributed among a plurality of
`database servers that are distributed across the communica(cid:173)
`tion network.
`A distributed database system typically includes a central
`database and various remote databases that are synchronized
`with the central database using various techniques. The
`remote databases can contain substantially the entire central
`database contents, or selected portions thereof. Moreover,
`transactions can be generated at the central database server
`or at one of the remote servers. In a commercial enterprise,
`for example, remote database servers at sales offices receive
`and generate purchase order transactions that propagate by
`data distribution to the central database server and in some
`cases to other database servers. Similarly, remote servers at
`billing centers generate sales invoice transactions that propa(cid:173)
`gate through the distributed database system, and so forth.
`The central database server provides a repository for all
`database contents, and its contents are preferably highly
`robust against server failures.
`To provide for recovery in the event that the central
`database fails, the central database can include primary and
`secondary database instances. The secondary database
`instance mirrors the primary database instance and acts as a
`hot backup providing failover recovery in the event of a
`primary database failure. Mirroring is maintained by ship- 55
`ping logical log files of the primary database instance to the
`secondary instance as they are being copied to disk or other
`non-volatile storage on the primary instance. The secondary
`instance remains in recovery mode as it is receiving and
`processing the shipped logical log files. Since all log records 60
`are processed at the secondary instance, the secondary
`instance provides a mirror image backup of the primary
`database instance, except for recent transactions that may
`not have been copied to the secondary instance yet. The
`primary and secondary database instances are in some cases 65
`configured such that a transaction commit is not completed
`at the primary until the log of that transaction is shipped to
`
`25
`
`2
`the secondary instance. Such a central database is robust
`against primary database failure and provides a fail-safe
`solution for high availability. However, it is limited in
`functionality, supporting only a single or limited number of
`5 synchronized secondary instances, which must be substan(cid:173)
`tially compatible. For example, the primary log records
`should be interpretable by the secondary server without
`introducing substantial translation processing overhead.
`Remote databases which store some or all information
`contained in the central database are typically maintained by
`synchronous or asynchronous data replication. In synchro(cid:173)
`nous replication, a transaction updates data on each target
`remote database before completing the transaction. Synchro(cid:173)
`nous replication provides a high degree of reliability and
`substantially reduced latency. However, synchronous repli(cid:173)
`cation introduces substantial delays into data processing,
`because the replication occurs as part of the user transaction.
`This increases the cost of the transaction, and can make the
`transaction too expensive. Moreover, a problem at a single
`database can result in an overall system failure. Hence,
`synchronous replication is usually not preferred except for
`certain financial transactions and other types of transactions
`which require a very high degree of robustness against
`database failure.
`Asynchronous replication is preferred for most data dis(cid:173)
`tribution applications. In asynchronous replication, transac(cid:173)
`tion logs of the various database servers are monitored for
`new transactions. When a new transaction is identified, a
`replicator rebuilds the transaction from the log record and
`distributes it to other database instances, each of which
`apply and commit the transaction at that instance. Such
`replicators have a high degree of functionality, and readily
`support multiple targets, bi-directional transmission of rep(cid:173)
`licated data, replication to dissimilar machine types, and the
`35 like. However, asynchronous replicators have a substantial
`latency between database updates, sometimes up to a few
`hours for full update propagation across the distributed
`database system, which can lead to database inconsistencies
`in the event of a failure of the central database server. Hence,
`40 asynchronous replicators are generally not considered to be
`fail-safe solutions for high data availability.
`Therefore, there remains a need in the art for a method and
`apparatus for fail-safe data replication in a distributed data(cid:173)
`base system, which provides for reliable fail-safe recovery
`45 and retains the high degree of functionality of asynchronous
`replication. Such a method and/or apparatus should be
`robust against a failure at a critical node within the replica(cid:173)
`tion domain, and should ensure the integrity of transaction
`replications to other servers within the replication domain in
`50 the face of such a critical node failure.
`The present invention contemplates an improved method
`and apparatus which overcomes these limitations and others.
`
`SUMMARY OF THE INVENTION
`
`In accordance with one aspect, a database apparatus
`includes a critical database server having a primary server
`supporting a primary database instance and a secondary
`server supporting a secondary database instance that mirrors
`the primary database instance. The secondary server gener(cid:173)
`ates an acknowledgment signal indicating that a selected
`critical database transaction is mirrored at the secondary
`database instance. A plurality of other servers each support
`a database. A data replicator communicates with the critical
`database server and the other servers to replicate the selected
`critical database transaction on at least one of said plurality
`of other servers responsive to the ackuowledgment signal.
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 11 of 16
`
`US 7,177,886 B2
`
`4
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`3
`In accordance with another aspect, a method is provided
`for integrating a high availability replication system that
`produces at least one mirror of a critical database node, with
`The invention may take form in various components and
`a data distribution replication system that selectively repli(cid:173)
`arrangements of components, and in various process opera(cid:173)
`cates data at least from the critical database node to one or 5
`tions and arrangements of process operations. The drawings
`more remote databases. In the data distribution replication
`are only for the purposes of illustrating preferred embodi(cid:173)
`system, an object at the critical database node targeted for
`ments and are not to be construed as limiting the invention.
`replication is identified. In the high availability replication
`FIG. 1 is a block diagram showing a distributed relational
`system, objects including the identified object are replicated
`database system including a central database server with a
`at the mirror and a mirror acknowledgment indicative of
`primary database server and a hot-backnp secondary data(cid:173)
`completion of replication of the identified object at the
`base server, a highly available data replication component
`mirror is generated. In the data distribution replication
`for maintaining the hot-backnp secondary database, and a
`system, the identified object is replicated responsive to the
`logical data replication component for selectively distribut-
`mirror acknowledgment.
`15 ing data amongst remote servers and the central database.
`In accordance with another aspect, a method is provided
`FIG. 2 is a block diagram showing the distributed rela(cid:173)
`for coordinating data replication to distributed database
`tional database system of FIG. 1 after the primary server of
`servers with a hot-backup instance of a database. Database
`the central database server has failed and failover recovery
`transactions are backed up at the hot-backnp instance. A
`control has passed to the secondary database server.
`backup indicator is maintained that identifies database trans(cid:173)
`FIG. 3 is a flowchart showing a preferred method for
`actions backed up at the hot-backup source. Data replication 20
`synchronizing logical data replication with highly available
`of a database transaction is delayed until the backup indi(cid:173)
`data replication.
`cator identifies the database transaction as having been
`backed up at the hot-backup source.
`FIG. 4 is a block diagram showing a preferred embodi(cid:173)
`In accordance with yet another aspect, an article of
`ment of the highly available data replication component that
`manufacture includes a program storage medium readable
`25 includes communication of a synchronizing acknowledg(cid:173)
`by a computer and embodying one or more instructions
`ment signal to a send queue of the logical data replication
`executable by the computer to perform process operations
`component.
`for executing a command to perform a database operation on
`FIG. 5 is a flowchart showing a modification of the
`a relational database connected to the computer. A transac(cid:173)
`process of FIG. 3 for providing robust synchronization of
`tion performed in the relational database is identified. The 30
`logical data replication with highly available data replication
`identified transaction is replicated responsive to an indica(cid:173)
`in a case where the logical data replicator sends a replication
`tion that the identified transaction has been backed up at the
`transaction to the primary server.
`relational database.
`FIG. 6 is a block diagram showing another distributed
`In accordance with still yet another aspect, an apparatus
`relational database system, which has a tree topology with
`for supporting a distributed relational database includes
`three critical nodes, each critical node having a highly
`primary and secondary servers. The primary server supports
`available data replication pair including a primary database
`a primary database instance that includes a primary database
`server and a hot-backup secondary database server, and a
`instance log file. The secondary server supports a secondary
`logical data replication component for selectively distribut-
`database instance that includes a secondary instance log file.
`A plurality of other servers each support a database instance. 40 ing data amongst servers of the tree topology.
`A highly available data replication component communi(cid:173)
`DETAILED DESCRIPTION OF THE
`cates with the primary and secondary servers to transfer
`PREFERRED EMBODIMENTS
`primary database instance log file entries from the primary
`server to the secondary server. The secondary server pro(cid:173)
`duces an acknowledgment indicating that the transferred log 45
`file entries have been received. A logical data replication
`component communicates with the primary server and the
`other servers to identify a log record in the primary database
`instance log file, construct a replication transaction corre(cid:173)
`sponding to the identified log record, and, responsive to the 50
`highly available data replication component indicating that
`the identified log record has been received at the secondary
`server, cause one or more of the other servers to perform the
`replication transaction.
`One advantage resides in avoiding data inconsistencies 55
`among remote servers in the event of a failure of the central
`database primary server.
`Another advantage resides providing asynchronous rep(cid:173)
`lication functionality that is robust with respect to primary
`database failure.
`Yet another advantage resides in providing for fail-safe
`recovery via a high availability replication system, while
`retaining the broad functionality of data distribution by
`asynchronous replication.
`Still further advantages and benefits will become apparent
`to those of ordinary skill in the art upon reading and
`understanding the following detailed description.
`
`10
`
`35
`
`With reference to FIG. 1, a distributed relational database
`system 10 of a spokes-and-hub topology includes a central
`database server 12 and a plurality of remote database servers
`14, 16, 18. The central database server 12 includes a primary
`server 20 and a secondary server 22 that mirrors the primary
`server 20. The mirroring is provided by a highly available
`data replication (HDR) component 26 that transfers log
`records of the central database primary server 20 to the
`secondary server 22. The log records are applied and logged
`at the secondary server 22. In this manner, the secondary
`server 22 is maintained as a mirror image of the primary
`server 20, except for a set of most recent primary server
`transactions which may not yet have been transferred by the
`highly available data replication component 26.
`Although the primary and secondary server components
`60 20, 22 of the central database 12 are shown together in FIG.
`1, the combination is a logical combination, and is not in
`general a physical combination. That is, the primary and
`secondary server components 20, 22 can be spatially remote
`from one another and in operative communication via a
`65 communication network, which may also include the remote
`servers 14, 16, 18. The servers 20, 22 are preferably logi(cid:173)
`cally compatible. For example, the log files of the primary
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 12 of 16
`
`US 7,177,886 B2
`
`5
`
`5
`server 20 are preferably readily interpretable by the second(cid:173)
`ary server 22 without computationally intensive translation
`processing.
`The distributed database 10 is of the spokes-and-hub
`topology, in which there is one critical node, namely the
`central database server 12, which serves as the hub. The
`plurality of remote database servers 14, 16, 18 are spokes
`that connect at the hub. The central database server 12 is a
`critical node because a failure of that server results in service
`interruption for a number of other servers, such as the
`remote database servers 14, 16, 18. Rather than a spokes(cid:173)
`and-hub topology, other topologies can be employed, such
`as a tree topology, in which there is more than one critical
`node. In topologies which include more than one critical
`node, each critical node is preferably supplied with its own
`highly available data replication (HDR) hot backup.
`Data distribution by asynchronous replication amongst
`the primary server 12 and the remote servers 14, 16, 18 of
`the database system 10 is performed by an asynchronous
`logical data replication component 30. The data replication
`component 30 produces computation threads that monitor
`transaction logs of the primary server 20 of the central
`database 12 and of the remote servers 14, 16, 18 to identify
`recent transactions. Advantageously, such log monitoring
`does not significantly slow operation of the servers 12, 14,
`16, 18. When a recently logged transaction is identified, the
`data replication component 30 constructs one or more rep(cid:173)
`lication transactions that effect replication of the logged
`transaction.
`Because replication transactions are generated by the data
`replication component 30, the replication transaction can be
`different in form but equivalent in function to the original
`transaction. This allows the central database server 12 and
`the various remote database servers 14, 16, 18 to be dis(cid:173)
`similar, for example with respect to operating system, com(cid:173)
`puter type, and the like. Replication to multiple targets,
`bi-directional transmission of replicated data, replication to
`dissimilar machine types, and the like are readily supported
`by the data replication component 30. Data replication can
`also be selective. That is, only certain data on the central 40
`database 12 or the remote servers 14, 16, 18 can be repli(cid:173)
`cated to selected remote servers 14, 16, 18. For example, if
`remote servers 14, 16, 18 are Eastern, Midwestern, and
`Western regional servers, then data is suitably regionally
`filtered and selectively distributed to
`the appropriate 45
`regional remote server 14, 16, 18 by the data replication
`component 30.
`In FIG. 1, an exemplary row insertion "R-1" transaction
`32 is performed at the primary server 20 of the central
`database 12. Although an exemplary row insertion transac- 50
`tion is described herein for purposes of illustrating a pre(cid:173)
`ferred embodiment, substantially any type of relational
`database transaction can be similarly processed. The row
`insertion transaction 32 is logged at the primary database,
`identified by the data replication component 30, and a 55
`replication transaction 32' is generated. However, the repli(cid:173)
`cation transaction 32' is not immediately sent to the remote
`servers 14, 16, 18. Rather, the data replication component 30
`initially waits for an indication that the transaction 32 has
`been backed up at the secondary server 22 of the central 60
`database 12 before sending it to the remote servers 14, 16,
`18.
`Specifically, in the embodiment of FIG. 1 the highly
`available data replication component 26 transfers recent log
`records of the primary server 20, including a log record of
`the row insertion transaction 32, to the secondary server 22.
`At the secondary server 22, the transferred log records are
`
`6
`applied and logged, including a row insertion transaction
`32" that mirrors the row insertion transaction 32 which was
`performed at the primary server 20. The secondary server 22
`generates an acknowledgment indicating that the row inser-
`tion transaction 32" is applied and logged.
`In response to this acknowledgment, the highly available
`data replication component 26 produces a mirror acknowl(cid:173)
`edgment 34 indicating that the transaction 32 of the primary
`server 20 is mirrored at the secondary server 22. Responsive
`10 to the mirror acknowledgment 34, the data replication com(cid:173)
`ponent 30 begins sending the replication transaction 32' to
`the remote servers 14, 16, 18.
`With continuing reference to FIG. 1 and with further
`reference to FIG. 2, a significant advantage of delaying
`15 transmission of the replication transaction 32' to the remote
`servers 14, 16, 18 until receipt of the mirror acknowledg(cid:173)
`ment 34 is described. In FIG. 2, the primary server 20 of the
`central database 12 is shown by its absence in FIG. 2 as
`having failed after the transaction 32' has been transmitted to
`20 the remote server 14, but before the transaction 32' has been
`transmitted to the remote servers 16, 18. Because the data
`replication component 30 delayed sending the transaction
`32' until after receipt of the mirror acknowledgment 34, it is
`assured that the transaction 32 is mirrored at the secondary
`25 server 22 by the mirror transaction 32" before the replication
`transaction is distributed. Moreover, the replication transac(cid:173)
`tion 32' remains queued for sending at the data replication
`component 30, which continues to forward the replication
`transaction 32' to the remaining remote servers 16, 18 so that
`30 all remote servers 14, 16, 18 scheduled for receipt of the
`replication transaction 32' actually receive the transaction.
`As a result, there are no data inconsistencies between the
`central database server 12 and the remote servers 14, 16, 18.
`In contrast, in a conventional arrangement in which there
`35 are no delays, replication transactions are transmitted as
`soon as they are reconstructed. As a result, none, some, or all
`of the remote servers may or may not receive the replication
`transaction in the event of a failure of the central database
`primary server. Furthermore, the transaction being repli(cid:173)
`cated may or may not have been copied to the secondary
`server prior to failover. Thus, data inconsistencies may result
`between the remote servers, and between remote servers and
`the central database server, in the event of a failure of the
`central database primary server.
`In addition to the highly available data replication com(cid:173)
`ponent 26 providing the synchronizing mirror acknowledg(cid:173)
`ment 34, to ensure data consistency in the event of a fail over
`recovery, the data replicator 30 preferably generates trans(cid:173)
`action replication threads that communicate only with the
`primary server 20, and not with the secondary server 22. In
`its preferred form, this is accomplished during replication
`thread generation by checking whether a server of the
`replication thread is acting as a secondary server of a highly
`available data replication component. If it is, then the thread
`is canceled or a suitable error indicator generated. Prefer(cid:173)
`ably, the distributed database 10 is configured so that the
`central server 12 appears as a single logical entity to the data
`replicator 30.
`With continuing reference to FIG. 1 and with further
`reference to FIG. 3, the preferred data replication method 40
`executed by the relational database system 10 is described.
`A transaction 42 occurs on the primary server 20 of the
`central database 12. The data replicator 30 monitors, or
`snoops 44, the log files of the primary server 20 and
`65 identifies a log record corresponding to the transaction 42.
`The data replicator 30 reconstructs 46 the transaction 42
`based on the identified transaction log record to generate a
`
`

`

`Case 6:20-cv-01152-ADA Document 1-1 Filed 12/16/20 Page 13 of 16
`
`US 7,177,886 B2
`
`7
`replication transaction that is placed in a send queue 48.
`However, the replication transaction is not immediately sent.
`The highly available data replication component 26 also
`processes the transaction 42, by shipping 52 log files includ(cid:173)
`ing a log of the transaction 42 to the secondary server 22.
`The transaction logs are applied and logged 54 at the
`secondary server 22, and the secondary sever 22 transmits
`56 an acknowledgment 60 to the primary server 20.
`Responsive to the acknowledgment 60, a transmit gate 62
`transmits the corresponding replication transaction in the
`send queue 48 to the remote servers 14, 16, 18. Each remote
`server receives, applies, and logs the replication transaction,
`and generates a replication acknowledgment 64. Responsive
`to the replication acknowledgment 64, the data replicator 30
`clears 66 the corresponding replication transaction from the
`send queue 48.
`With reference to FIG. 4, the preferred configuration of
`the highly available data replication component 26 is
`described. The component 26 generates a gating signal for
`synchronizing the data replicator 30 with the highly avail(cid:173)
`able data replication component 26. The primary server 20
`maintains a primary server log file 70. Recent transactions
`are stored in a primary server log buffer 72. The contents of
`the log buffer 72 are from time to time flushed and written
`to the primary server log file 70 which is stored on a
`magnetic disk or other non-volat

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket