US5870765A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Database synchronizer
Assignee: Oracle International Corp
•
Filing: 1996-10-09
•
Granted: 1999-02-09
•
Expires: 2016-10-09
Abstract
Abstract A database synchronizer facilitates computing systems which have client-side and server-side applications that share data in similar database structures, but which do not maintain a continuous connection to a single shared data source. In general, a database synchronizer is used to share data among many nodes on the computing system. The database synchronizer is used to synchronize the data in a central database for a particular client with the data on that client's intermittently-connected computer. Updates performed by either client or server are propagated to the other side when a connection is established and eventually from the server to other clients in the system.
Inventors
- 👤 Jonathan A. Bauer
- 👤 Andrew Bodge
- 👤 Steven Huberman
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-29 22:13
CPC Classifications
G; G06; G06Q; G06Q10/00; G06Q10/10; G06F; G06F16/00; G06F16/20; G06F16/27; Y; Y10; Y10S; Y10S707/00; Y10S707/912; Y10S707/913; Y10S707/915; Y10S707/953; Y10S707/954; Y10S707/99931; Y10S707/99938; Y10S707/99951; Y10S707/99952; Y10S707/99954
Claims Analysis
Total Claims: 58
Claim 1
Independent Claim
132 words
A computing system for sharing data between a plurality of computers, the computing system comprising: a first computer having a first database which includes a first collection of data representable as a first plurality of rows and a first plurality of columns; a second computer having a second database which includes a second collection of data including data replicated from the first database, the second collection of data representable as a second plurality of rows and a second plurality of columns; an ordered list of common columns in the first plurality of columns and the second plurality of columns; and a database synchronizer for synchronizing the first collection and the second collection at an arbitrary time, the database synchronizer using the ordered list to identify the location of data in the collections.
Claim 2
Dependent Claim
132 words
A computing system for sharing data between a plurality of computers, the computing system comprising: a first computer having a first database which includes a first collection of data representable as a first plurality of rows and a first plurality of columns; a second computer having a second database which includes a second collection of data including data replicated from the first database, the second collection of data representable as a second plurality of rows and a second plurality of columns; an ordered list of common columns in the first plurality of columns and the second plurality of columns; and a database synchronizer for synchronizing the first collection and the second collection at an arbitrary time, the database synchronizer using the ordered list to identify the location of data in the collections.
Claim 3
Dependent Claim
16 words
The computing system of claim 1 wherein the first database and the second database are heterogeneous.
Claim 4
Dependent Claim
19 words
The computing system of claim 1 wherein the ordered list defines a subset of the first and second collections.
Claim 5
Dependent Claim
35 words
The computing system of claim 1 further comprising: a first catalog including the ordered list and stored on the first computer; and a second catalog including the ordered list and stored on the second computer.
Claim 6
Dependent Claim
27 words
The computing system of claim 1 wherein the database synchronizer temporarily establishes a communication link between the second computer and the first computer to transfer modification information.
Claim 7
Dependent Claim
37 words
The computing system of claim 5 further comprising a first update log stored on the first computer, the first update log including a history of modifications to data common between the first collection and the second collection.
Claim 8
Dependent Claim
43 words
The computing system of claim 1 wherein data is identified by the database synchronizer by a key value to represent a selected row of the collections and a common index into the ordered list to represent a selected column in the selected row.
Claim 9
Dependent Claim
34 words
The computing system of claim 1 wherein the first computer is a server computer sharing data in the first collection with a plurality of client computers and the second computer is a client computer.
Claim 10
Dependent Claim
26 words
The computing system of claim 1 wherein the database synchronizer uses row and column filtering of the data to limit the data synchronized between the computers.
Claim 11
Dependent Claim
47 words
The computing system of claim 1 further comprising a before-image collection of data on the second computer, the before-image collection having before-image data stored therein, the before-image data having values representing the state of the second collection at a time of last synchronization with the first collection.
Claim 12
Dependent Claim
37 words
The computing system of claim 1 further comprising a second update log stored on the second computer, the second update log including a history of modifications of data common between the second collection and the first collection.
Claim 13
Dependent Claim
24 words
The computing system of claim 1 wherein the first database is a relational database and the second database includes data accessible as tabular data.
Claim 14
Independent Claim
127 words
A method of sharing data between a plurality of computers, comprising the steps of: at a first computer, storing a collection of data in a first database wherein the data is representable as a first plurality of rows and a first plurality of columns; replicating data from the first database to a second database at a second computer, wherein the data is stored into a second collection of data representable as a second plurality of rows and a second plurality of columns; generating an ordered list of common columns in the first plurality of columns and the second plurality of columns; and synchronizing the first collection and the second collection at an arbitrary time using the ordered list to identify the location of data in the collections.
Claim 15
Independent Claim
127 words
A method of sharing data between a plurality of computers, comprising the steps of: at a first computer, storing a collection of data in a first database wherein the data is representable as a first plurality of rows and a first plurality of columns; replicating data from the first database to a second database at a second computer, wherein the data is stored into a second collection of data representable as a second plurality of rows and a second plurality of columns; generating an ordered list of common columns in the first plurality of columns and the second plurality of columns; and synchronizing the first collection and the second collection at an arbitrary time using the ordered list to identify the location of data in the collections.
Claim 16
Dependent Claim
15 words
The method of claim 13 wherein the first database and the second database are heterogeneous.
Claim 17
Dependent Claim
23 words
The method of claim 13 wherein the step of generating the ordered list comprises defining a subset of the first and second collections.
Claim 18
Dependent Claim
45 words
The method of claim 13 further comprising the steps of: deriving a first catalog from the ordered list and storing the first catalog on the first computer; and deriving a second catalog from the ordered list and storing the second catalog on the second computer.
Claim 19
Dependent Claim
32 words
The method of claim 13 wherein the step of synchronizing comprises: temporarily establishing a communication link between the second computer and the first computer; and transferring modification information over the communication link.
Claim 20
Dependent Claim
39 words
The method of claim 17 further comprising the step of storing a first update log on the first computer, the first update log including a history of modifications to the columns of the first collection in the ordered list.
Claim 21
Dependent Claim
43 words
The method of claim 13 wherein the step of synchronizing comprises identifying data by a key value to represent a selected row of the collections and by a common index into the ordered list to represent a selected column in the selected row.
Claim 22
Dependent Claim
33 words
The method of claim 13 wherein the first computer is a server computer sharing data in the first collection with a plurality of client computers and the second computer is a client computer.
Claim 23
Dependent Claim
27 words
The method of claim 13 wherein the step of synchronizing comprises limiting the synchronizing of data between the computers using row and column filtering of the data.
Claim 24
Dependent Claim
50 words
The method of claim 13 further comprising the step of storing a before-image collection of data on the second computer, the before-image collection having before-image data stored therein, the before-image data having values representing the state of the second collection at a time of last synchronization with the first collection.
Claim 25
Dependent Claim
39 words
The method of claim 13 further comprising the step of storing a second update log on the second computer, the second update log including a history of modifications to the columns of the second collection in the shared list.
Claim 26
Dependent Claim
23 words
The method of claim 13 wherein the first database is a relational database and the second database includes data accessible as tabular data.
Claim 27
Independent Claim
246 words
A method for synchronizing a plurality of tabular databases, each database maintained on a respective computer for storing a respective array of data fields arranged in rows and columns, comprising the steps of: creating a table correspondence which defines selected columns of a first table on a first computer as being common columns in the respective tables stored on the first computer and at least one other computer, each selected column of the first table corresponding to a respective replica column of a second table on a second computer; defining a first catalog on the first computer from the table correspondence, the first catalog including an ordered list of the selected columns of the first table; defining a second catalog on the second computer from the table correspondence, the second catalog including an ordered list of the replica columns of the second table, the list of replica columns in the second catalog ordered to match the order of the list of selected columns in the first catalog; for a modified row of one of the tables, determining at least one column having modified data therein; at the respective computer, encoding the at least one modified column of the modified row into a column indicator derived from the ordered list of replica columns in the respective catalog; at the respective computer, building a modification message including the column indicator; and transmitting the modification message to propagate the modified row from the respective computer to the other computer.
Claim 28
Independent Claim
246 words
A method for synchronizing a plurality of tabular databases, each database maintained on a respective computer for storing a respective array of data fields arranged in rows and columns, comprising the steps of: creating a table correspondence which defines selected columns of a first table on a first computer as being common columns in the respective tables stored on the first computer and at least one other computer, each selected column of the first table corresponding to a respective replica column of a second table on a second computer; defining a first catalog on the first computer from the table correspondence, the first catalog including an ordered list of the selected columns of the first table; defining a second catalog on the second computer from the table correspondence, the second catalog including an ordered list of the replica columns of the second table, the list of replica columns in the second catalog ordered to match the order of the list of selected columns in the first catalog; for a modified row of one of the tables, determining at least one column having modified data therein; at the respective computer, encoding the at least one modified column of the modified row into a column indicator derived from the ordered list of replica columns in the respective catalog; at the respective computer, building a modification message including the column indicator; and transmitting the modification message to propagate the modified row from the respective computer to the other computer.
Claim 29
Dependent Claim
38 words
The method of claim 25 wherein the step of determining comprises constructing before values of data fields stored in the second table from a set of logged modification operations and comparing the before values with respective current values.
Claim 30
Dependent Claim
57 words
The method of claim 25 wherein the step of determining comprises detecting at least one difference between current values of data fields stored in the second table with before values of respective data fields stored in a before-image of the second table, the before values representing a time of last synchronization between the first and second tables.
Claim 31
Dependent Claim
25 words
The method of claim 27 wherein the before-image excludes a data field stored in the second table which is not updatable in the second table.
Claim 32
Dependent Claim
47 words
The method of claim 25 further comprising the step of validating a last synchronization of the first and second tables using before values of the data fields, the before values representing the values of data fields in the second table at a time of the last synchronization.
Claim 33
Dependent Claim
25 words
The method of claim 25 wherein the table correspondence defines a first subset of the first table and a second subset of the second table.
Claim 34
Dependent Claim
23 words
The method of claim 25 wherein the step of encoding comprises determining a respective index into the respective catalog for each modified column.
Claim 35
Dependent Claim
23 words
The method of claim 31 wherein the column indicator is a bitmapped value encoding the respective indices of a plurality of modified columns.
Claim 36
Dependent Claim
25 words
The method of claim 31 wherein the step of encoding comprises dynamically selecting an encoding technique based on the resulting size of the column indicator.
Claim 37
Dependent Claim
31 words
The method of claim 25 wherein the step of transmitting the update message comprises establishing a temporary communication link between the first and second computers prior to transmitting the modification message.
Claim 38
Dependent Claim
31 words
The method of claim 25 further comprising the steps of: receiving the modification message at the first computer; and updating a corresponding row in the first table from the modification message.
Claim 39
Dependent Claim
39 words
The method of claim 25 wherein the step of determining comprises detecting at least one difference between current values of data fields stored in the first table and deduced current values of data fields stored in the second table.
Claim 40
Dependent Claim
43 words
The method of claim 36 wherein the step of detecting comprises deducing the current values of data fields stored in the second table from an update log having stored therein a history of modifications to the first table maintained on the first computer.
Claim 41
Dependent Claim
31 words
The method of claim 25 further comprising the steps of: receiving the modification message at the second computer; and updating a corresponding row in the second table from the update message.
Claim 42
Dependent Claim
13 words
The method of claim 25 wherein the first and second databases are heterogenous.
Claim 43
Dependent Claim
17 words
The method of claim 25 wherein at least one of the tabular databases is a relational database.
Claim 44
Dependent Claim
254 words
A database synchronizer for synchronizing a plurality of tabular databases, each database maintained on a respective computer for storing an array of data fields arranged in rows and columns, the database synchronizer comprising: a table correspondence which defines selected columns of a first table on a first computer as being common columns in the respective tables stored in the first computer and at least one other computer, each selected column of the first table corresponding to a respective replica column of a second table on a second computer; a first catalog derived from the table correspondence and stored on the first computer, the first catalog including an ordered list of the selected columns of the first table; a second catalog derived from the table correspondence and stored on the second computer, the second catalog including an ordered list of the replica columns of the second table, the list of replica columns in the second catalog ordered to match the order of the list of selected columns in the first catalog; for a modified row of one of the tables, at least one column having modified data therein; at the respective computer, a column indicator having encoded therein the at least one modified column of the modified row, the column indicator derived from the ordered list of columns in the respective catalog; at the respective computer, a modification message which includes the column indicator; and a transmission link for transmitting the modification message to propagate the modified row from the respective computer to another computer.
Claim 45
Dependent Claim
254 words
A database synchronizer for synchronizing a plurality of tabular databases, each database maintained on a respective computer for storing an array of data fields arranged in rows and columns, the database synchronizer comprising: a table correspondence which defines selected columns of a first table on a first computer as being common columns in the respective tables stored in the first computer and at least one other computer, each selected column of the first table corresponding to a respective replica column of a second table on a second computer; a first catalog derived from the table correspondence and stored on the first computer, the first catalog including an ordered list of the selected columns of the first table; a second catalog derived from the table correspondence and stored on the second computer, the second catalog including an ordered list of the replica columns of the second table, the list of replica columns in the second catalog ordered to match the order of the list of selected columns in the first catalog; for a modified row of one of the tables, at least one column having modified data therein; at the respective computer, a column indicator having encoded therein the at least one modified column of the modified row, the column indicator derived from the ordered list of columns in the respective catalog; at the respective computer, a modification message which includes the column indicator; and a transmission link for transmitting the modification message to propagate the modified row from the respective computer to another computer.
Claim 46
Dependent Claim
21 words
The database synchronizer of claim 41 further comprising a set of logged modification operations for data fields of the second table.
Claim 47
Dependent Claim
40 words
The database synchronizer of claim 41 further comprising a before-image of the second table having before values of the data fields of the second table, the before values representing a time of last synchronization between the first and second tables.
Claim 48
Dependent Claim
26 words
The database synchronizer of claim 43 wherein the before-image excludes a data field stored in the second table which is not updatable in the second table.
Claim 49
Dependent Claim
26 words
The database synchronizer of claim 41 wherein the table correspondence defines a first subset of the first table and a second subset of the second table.
Claim 50
Dependent Claim
22 words
The database synchronizer of claim 41 wherein the column indicator comprises a respective index into the respective catalog for each modified column.
Claim 51
Dependent Claim
24 words
The database synchronizer of claim 46 wherein the column indicator is a bitmapped value encoding the respective indices of a plurality of modified columns.
Claim 52
Dependent Claim
25 words
The database synchronizer of claim 46 wherein the column indicator is encoded by an encoding technique based on the resulting size of the column indicator.
Claim 53
Dependent Claim
12 words
The database synchronizer of claim 41 wherein the communication link is temporary.
Claim 54
Dependent Claim
22 words
The database synchronizer of claim 41 further comprising a corresponding row in the first table updated from data in the modification message.
Claim 55
Dependent Claim
43 words
The database synchronizer of claim 41 further comprising: an update log having stored therein a history of modifications to the first table maintained on the first computer; and before values of the data fields of the second table deduced from the update log.
Claim 56
Dependent Claim
22 words
The database synchronizer of claim 41 further comprising a corresponding row in the second table updated from data in the modification message.
Claim 57
Dependent Claim
14 words
The database synchronizer of claim 41 wherein the first and second databases are heterogenous.
Claim 58
Dependent Claim
18 words
The database synchronizer of claim 41 wherein at least one of the tabular databases is a relational database.
References Cited (Backward Citations)
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 |