← Back to Patent Explorer
US5870761A Expired / Lapsed US ⏱️ 0.0 years remaining

Parallel queue propagation

Assignee: Oracle International Corp
•
Filing: 1996-12-19
•
Granted: 1999-02-09
•
Expires: 2016-12-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system are provided for duplicating at a destination site changes made to data at a source site. According to the method a plurality of streams are established between the source site and the destination site. The plurality of streams are used in parallel to propagate changes made at the source site to the destination site. A record of transactions that made changes that need to be propagated from the source site to the destination site is maintained at the source site. Before propagating changes made by a transaction to the destination site on a stream of the plurality of streams, the record of transactions is inspected to identify a set of transactions whose changes are not known to have been made permanent at the destination site. It is then determined whether the transaction could possibly depend on any transaction in the set of transactions. If the transaction could not possibly depend on any transaction in the set of transactions, then the changes made by the transaction are propagated to the destination site using one of the plurality of streams.

Inventors

  • 👤 Alan Demers
  • 👤 James Stamos
  • 👤 Sandeep Jain
  • 👤 Brian Oki
  • 👤 Roger J. Bamford

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 20:45
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/27; G06F16/275; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99937; Y10S707/99938; Y10S707/99941; Y10S707/99942; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 38
Claim 1
Independent Claim 182 words
A method for duplicating at a destination site changes made to data at a source site, the method comprising the steps of: A) establishing a plurality of streams between the source site and the destination site; B) using said plurality of streams in parallel to propagate changes made at said source site to said destination site by performing the steps of: (B1) maintaining a record of transactions whose changes must be propagated rom the source site to the destination site; (B2) before propagating changes made by a transaction to the destination site on a stream of said plurality of streams, performing the steps of: (a) identifying a set of transactions whose changes are not known to have been made permanent at the destination site by inspecting the record of transactions; and (b) determining whether the transaction could possibly depend on any transaction in said set of transactions; (B3) if said transaction could not possibly depend on any transaction in said set of transactions, then propagating the changes made by the transaction to the destination site using one of said plurality of streams.
Claim 2
Independent Claim 182 words
A method for duplicating at a destination site changes made to data at a source site, the method comprising the steps of: A) establishing a plurality of streams between the source site and the destination site; B) using said plurality of streams in parallel to propagate changes made at said source site to said destination site by performing the steps of: (B1) maintaining a record of transactions whose changes must be propagated rom the source site to the destination site; (B2) before propagating changes made by a transaction to the destination site on a stream of said plurality of streams, performing the steps of: (a) identifying a set of transactions whose changes are not known to have been made permanent at the destination site by inspecting the record of transactions; and (b) determining whether the transaction could possibly depend on any transaction in said set of transactions; (B3) if said transaction could not possibly depend on any transaction in said set of transactions, then propagating the changes made by the transaction to the destination site using one of said plurality of streams.
Claim 3
Dependent Claim 99 words
The method of claim 1 wherein if said transaction could possibly depend on any transaction in said set of transactions, then performing the steps of: determining whether all transactions in said set of transactions on which said transaction could possibly depend were propagated on the same stream of said plurality of streams; and if all transactions in said set of transactions on which said transaction could possibly depend were propagated on a particular stream of said plurality of streams, then propagating the changes made by said transaction from said source site to said destination site using said particular stream.
Claim 4
Dependent Claim 81 words
The method of claim 2 further comprising the step of waiting to propagate the changes made by said transaction until either: changes made by all transactions on which the transaction could possibly depend are known to have been made permanent at the destination site; or changes made by all transactions on which the transaction could possibly depend that are not known to have been made permanent at the destination site were sent over a single stream of said plurality of streams.
Claim 5
Dependent Claim 43 words
The method of claim 1 further comprising the step of waiting to propagate the changes made by said transaction until changes made by all transactions on which the transaction could possibly depend are known to have been made permanent at the destination site.
Claim 6
Dependent Claim 73 words
The method of claim 1 wherein the step of determining whether the transaction could possibly depend on any transaction in said set of transactions further comprises the steps of: maintaining a depends-on time for said transaction, wherein the depends-on time indicates a latest commit time of all transactions on which said transaction could depend; and comparing the depends-on time of the transaction with commit times of each transaction in said set of transactions.
Claim 7
Dependent Claim 85 words
The method of claim 1 wherein: said record includes a plurality of entries, where each entry of said plurality of entries corresponds to a transaction to be propagated to said destination site; the method further comprises the steps of adding an entry for said transaction to said plurality of entries; marking said entry to indicate that said transaction has not yet been sent to said destination site; after propagating changes made by said transaction, marking said entry to indicate that said transaction has been sent.
Claim 8
Independent Claim 128 words
A method for propagating changes from a source site to a destination site, the method comprising the steps of: adding to a set of records a record for each transaction that has made changes that must be propagated from the source site to the destination site; for each record in said set of records, performing the steps of: determining whether the transaction associated with the record could possibly depend on any transaction associated with any record in the set of records; if the transaction associated with the record could not possibly depend on any transaction associated with any record in the set of records, then propagating the changes made by the transaction on one of a plurality of streams established between the source site and the destination site.
Claim 9
Independent Claim 128 words
A method for propagating changes from a source site to a destination site, the method comprising the steps of: adding to a set of records a record for each transaction that has made changes that must be propagated from the source site to the destination site; for each record in said set of records, performing the steps of: determining whether the transaction associated with the record could possibly depend on any transaction associated with any record in the set of records; if the transaction associated with the record could not possibly depend on any transaction associated with any record in the set of records, then propagating the changes made by the transaction on one of a plurality of streams established between the source site and the destination site.
Claim 10
Dependent Claim 42 words
The method of claim 7 further comprising the step of removing records from the set of records when the source site is informed that the changes made by the transactions associated with the records have been made permanent at the destination site.
Claim 11
Dependent Claim 41 words
The method of claim 7 further including the step of marking the record with a value indicates that the transaction associated with the record has been sent to the destination site in response to propagating the changes made by the transaction.
Claim 12
Dependent Claim 80 words
The method of claim 7 wherein the step of determining whether the transaction associated with the record could possibly depend on any transaction associated with any record in said set of records comprises the steps of: determining a depends-on time for the transaction associated with the record, where the depends-on time indicates a commit time of a latest transaction on which the transaction depends; and comparing the depends-on time with commit times of transactions represented in said set of records.
Claim 13
Dependent Claim 70 words
The method of claim 7 wherein said step of adding to a set of records a record for each transaction that has made changes that must be propagated from the source site to the destination site includes the step of adding to a data structure stored in volatile memory an entry for each transaction that has made changes that must be propagated from the source site to the destination site.
Claim 14
Dependent Claim 142 words
A computer-readable medium having stored thereon sequences of instructions for propagating changes from a source site to a destination site, the sequences of instructions including sequences of instructions for performing the steps of: adding to a set of records a record for each transaction that has made changes that must be propagated from the source site to the destination site; for each record in said set of records, performing the steps of: determining whether the transaction associated with the record could possibly depend on any transaction associated with any record in the set of records; if the transaction associated with the record could not possibly depend on any transaction associated with any record in the set of records, then propagating the changes made by the transaction on one of a plurality of streams established between the source site and the destination site.
Claim 15
Dependent Claim 142 words
A computer-readable medium having stored thereon sequences of instructions for propagating changes from a source site to a destination site, the sequences of instructions including sequences of instructions for performing the steps of: adding to a set of records a record for each transaction that has made changes that must be propagated from the source site to the destination site; for each record in said set of records, performing the steps of: determining whether the transaction associated with the record could possibly depend on any transaction associated with any record in the set of records; if the transaction associated with the record could not possibly depend on any transaction associated with any record in the set of records, then propagating the changes made by the transaction on one of a plurality of streams established between the source site and the destination site.
Claim 16
Dependent Claim 48 words
The computer-readable medium of claim 12 further comprising sequences of instructions for performing the step of removing records from the set of records when the source site is informed that the changes made by the transactions associated with the records have been made permanent at the destination site.
Claim 17
Dependent Claim 47 words
The computer-readable medium of claim 12 further comprising sequences of instructions for performing the step of marking the record with a value indicates that the transaction associated with the record has been sent to the destination site in response to propagating the changes made by the transaction.
Claim 18
Dependent Claim 82 words
The computer-readable medium of claim 12 wherein the step of determining whether the transaction associated with the record could possibly depend on any transaction associated with any record in a second set of records comprises the steps of: determining a depends-on time for the transaction associated with the record, where the depends-on time indicates a commit time of a latest transaction on which the transaction depends; and comparing the depends-on time with commit times of transactions represented by said set of records.
Claim 19
Dependent Claim 71 words
The computer-readable medium of claim 12 wherein said step of adding to a set of records a record for each transaction that has made changes that must be propagated from the source site to the destination site includes the step of adding to a data structure stored in volatile memory an entry for each transaction that has made changes that must be propagated from the source site to the destination site.
Claim 20
Independent Claim 149 words
A method for duplicating at a destination site changes made to data at a source site, the method comprising the steps of: A) establishing a plurality of streams between the source site and the destination site; B) using said plurality of streams in parallel to propagate changes made at said source site to said destination site by performing the steps of: (B1) determining whether a transaction to be propagated to the destination site depends on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site; (B2) if said transaction could not possibly depend on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site, then propagating the changes made by the transaction to the destination site using one of said plurality of streams.
Claim 21
Independent Claim 149 words
A method for duplicating at a destination site changes made to data at a source site, the method comprising the steps of: A) establishing a plurality of streams between the source site and the destination site; B) using said plurality of streams in parallel to propagate changes made at said source site to said destination site by performing the steps of: (B1) determining whether a transaction to be propagated to the destination site depends on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site; (B2) if said transaction could not possibly depend on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site, then propagating the changes made by the transaction to the destination site using one of said plurality of streams.
Claim 22
Dependent Claim 119 words
The method of claim 17 wherein if said transaction could possibly depend on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site, then performing the steps of: determining whether all transactions to be propagated to the destination site on which said transaction could possibly depend were propagated on the same stream of said plurality of streams; and if all transactions to be propagated to the destination site on which said transaction could possibly depend were propagated on a particular stream of said plurality of streams, then propagating the changes made by said transaction from said source site to said destination site using said particular stream.
Claim 23
Dependent Claim 43 words
The method of claim 17 further comprising the step of waiting to propagate the changes made by said transaction until changes made by all transactions on which the transaction could possibly depend are known to have been made permanent at the destination site.
Claim 24
Dependent Claim 108 words
The method of claim 17 wherein the step of determining whether a transaction to be propagated to the destination site depends on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site further comprises the steps of: maintaining a depends-on time for said transaction, wherein the depends-on time indicates a latest commit time of all transactions on which said transaction could depend; and comparing the depends-on time of the transaction with commit times of transactions to be propagated to the destination site that are not known to have been made permanent at the destination site.
Claim 25
Dependent Claim 218 words
A computer-readable medium carrying one or more sequences of one or more instructions for duplicating at a destination site changes made to data at a source site, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: A) establishing a plurality of streams between the source site and the destination site; B) using said plurality of streams in parallel to propagate changes made at said source site to said destination site by performing the steps of: (B1) maintaining a record of transactions whose changes must be propagated from the source site to the destination site; (B2) before propagating changes made by a transaction to the destination site on a stream of said plurality of streams, performing the steps of: (a) identifying a set of transactions whose changes are not known to have been made permanent at the destination site by inspecting the record of transactions; and (b) determining whether the transaction could possibly depend on any transaction in said set of transactions; (B3) if said transaction could not possibly depend on any transaction in said set of transactions, then propagating the changes made by the transaction to the destination site using one of said plurality of streams.
Claim 26
Dependent Claim 218 words
A computer-readable medium carrying one or more sequences of one or more instructions for duplicating at a destination site changes made to data at a source site, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: A) establishing a plurality of streams between the source site and the destination site; B) using said plurality of streams in parallel to propagate changes made at said source site to said destination site by performing the steps of: (B1) maintaining a record of transactions whose changes must be propagated from the source site to the destination site; (B2) before propagating changes made by a transaction to the destination site on a stream of said plurality of streams, performing the steps of: (a) identifying a set of transactions whose changes are not known to have been made permanent at the destination site by inspecting the record of transactions; and (b) determining whether the transaction could possibly depend on any transaction in said set of transactions; (B3) if said transaction could not possibly depend on any transaction in said set of transactions, then propagating the changes made by the transaction to the destination site using one of said plurality of streams.
Claim 27
Dependent Claim 102 words
The computer-readable medium of claim 21, further comprising injections for performing the following steps if said transaction could possibly depend on any transaction in said set of transactions: determining whether all transactions in said set of transactions on which said transaction could possibly depend were propagated on the same stream of said plurality of streams; and if all transactions in said set of transactions on which said transaction could possibly depend were propagated on a particular stream of said plurality of streams, then propagating the changes made by said transaction from said source site to said destination site using said particular stream.
Claim 28
Dependent Claim 85 words
The computer-readable medium of claim 22 further comprising instructions for performing the step of waiting to propagate the changes made by said transaction until either: changes made by all transactions on which the transaction could possibly depend are known to have been made permanent at the destination site; or changes made by all transactions on which the transaction could possibly depend that are not know to have been made permanent at the destination site were sent over a single stream of said plurality of streams.
Claim 29
Dependent Claim 47 words
The computer-readable medium of claim 21 further comprising instructions for performing the step of waiting to propagate the changes made by said transaction until changes made by all transactions on which the transaction could possibly depend are known to have been made permanent at the destination site.
Claim 30
Dependent Claim 74 words
The computer-readable medium of claim 21 wherein the step of determining whether the transaction could possibly depend on any transaction in said set of transactions further comprises the steps of: maintaining a depends-on time for said transaction, wherein the depends-on time indicates a latest commit time of all transactions on which said transaction could depend; and comparing the depends-on time of the transaction with commit times of each transaction in said set of transactions.
Claim 31
Dependent Claim 90 words
The computer-readable medium of claim 21 wherein: said record includes a plurality of entries, where each entry of said plurality of entries corresponds to a transaction to be propagated to said destination site; the computer-readable medium further comprising instructions for performing the steps of adding an entry for said transaction to said plurality of entries; marking said entry to indicate that said transaction has not yet been sent to said destination site; after propagating changes made by said transaction, marking said entry to indicate that said transaction has been sent.
Claim 32
Dependent Claim 185 words
A computer-readable medium carrying one or more sequences of one or more instructions for duplicating at a destination site changes made to data at a source site, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: A) establishing a plurality of streams between the source site and the destination site; B) using said plurality of streams in parallel to propagate changes made at said source site to said destination site by performing the steps of: (B1) determining whether a transaction to be propagated to the destination site depends on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site; (B2) if said transaction could not possibly depend on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site, then propagating the changes made by the transaction to the destination site using one of said plurality of streams.
Claim 33
Dependent Claim 185 words
A computer-readable medium carrying one or more sequences of one or more instructions for duplicating at a destination site changes made to data at a source site, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: A) establishing a plurality of streams between the source site and the destination site; B) using said plurality of streams in parallel to propagate changes made at said source site to said destination site by performing the steps of: (B1) determining whether a transaction to be propagated to the destination site depends on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site; (B2) if said transaction could not possibly depend on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site, then propagating the changes made by the transaction to the destination site using one of said plurality of streams.
Claim 34
Dependent Claim 122 words
The computer-readable medium of claim 27, further comprising instructions for performing the following steps if said transaction could possibly depend on any other transaction to be propagated to the destination site that is not know to have been made permanent at the destination site: determining whether all transactions to be propagated to the destination site on which said transaction could possibly depend were propagated on the same stream of said plurality of streams; and if all transactions to be propagated to the destination site on which said transaction could possibly depend were propagated on a particular stream of said plurality of streams, then propagating the changes made by said transaction tom said source site to said destination site using said particular stream.
Claim 35
Dependent Claim 47 words
The computer-readable medium of claim 27 further comprising instructions for performing the step of waiting to propagate the changes made by said transaction until changes made by all transactions on which the transaction could possibly depend are known to have been made permanent at the destination site.
Claim 36
Dependent Claim 109 words
The computer-readable medium of claim 27 wherein the step of determining whether a transaction to be propagated to the destination site depends on any other transaction to be propagated to the destination site that is not known to have been made permanent at the destination site further comprises the steps of: maintaining a depends-on time for said transaction, wherein the depends-on time indicates a latest commit time of all transactions on which said transaction could depend; and comparing the depends-on time of the transaction with commit times of transactions to be propagated to the destination site that are not known to have been made permanent at the destination site.
Claim 37
Independent Claim 174 words
A system for duplicating changes, the system comprising: a source site; a destination site; a plurality of streams between the source site and the destination site; and a propagation mechanism, wherein the propagation mechanism is configured to propagate changes made at said source site to said destination site by performing the steps of: A1) maintaining a record of transactions whose changes must be propagated from the source site to the destination site; (A2) before propagating changes made by a transaction to the destination site on a stream of said plurality of streams, performing the steps of: (a) identifying a set of transactions whose changes are not known to have been made permanent at the destination site by inspecting the record of transactions; and (b) determining whether the transaction could possibly depend on any transaction in said set of transactions; (A3) if said transaction could not possibly depend on any transaction in said set of transactions, then propagating the changes made by the transaction to the destination site using one of said plurality of streams.
Claim 38
Independent Claim 174 words
A system for duplicating changes, the system comprising: a source site; a destination site; a plurality of streams between the source site and the destination site; and a propagation mechanism, wherein the propagation mechanism is configured to propagate changes made at said source site to said destination site by performing the steps of: A1) maintaining a record of transactions whose changes must be propagated from the source site to the destination site; (A2) before propagating changes made by a transaction to the destination site on a stream of said plurality of streams, performing the steps of: (a) identifying a set of transactions whose changes are not known to have been made permanent at the destination site by inspecting the record of transactions; and (b) determining whether the transaction could possibly depend on any transaction in said set of transactions; (A3) if said transaction could not possibly depend on any transaction in said set of transactions, then propagating the changes made by the transaction to the destination site using one of said plurality of streams.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-02-08 2002-08-10 2003-02-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-02-08 2006-08-10 2007-02-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-02-08 2010-08-10 2011-02-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag