Dynamic synchronization of tables
First Claim
1. A method of dynamically synchronizing a table from a source node to a destination node comprising:
- streaming, to the destination node, static data in the table on the source node;
streaming, to the destination node, committed changes to the table on the source node interspersed with the static data;
creating, on the destination node, a copy of the table from the static data and the committed changes;
pausing, on the source node, active transactions that involve the table;
streaming, to the destination node, uncommitted changes associated with the active transactions on the source node;
resuming, on the source node, each active transaction when the associated uncommitted changes have been sent to the destination node; and
initiating, on the destination node, remote transactions that correspond to a set of transactions active on the source node.
1 Assignment
0 Petitions
Accused Products
Abstract
Each node in a network accessing a common database caches a copy of the database tables it uses and updates those tables based on changes made by other nodes in a coherent cache, i.e., those node that also have a copy of the tables in their cache. When a new node joins the coherent cache, dynamic synchronization of the table is performed by having one of the existing nodes act as a source to populate the table(s) required on the new (destination) node from its own copy. The dynamic synchronization controls the population operation and allows for the populating of tables on the destination node from partially populated tables on the source node. The dynamic synchronization of the tables permits database updates to continue to be made to the tables by the existing nodes in the coherent cache and provides a mechanism to propagate the committed updates to the tables on the destination node. Once the tables on the destination node are fully populated, all pending updates are suspended while a snapshot of the state of the table on the source node is taken. Once the destination node has processed the snapshot, active transactions on the source node are initiated on the destination node, and all transactions are allowed to modify the table on the destination node.
48 Citations
35 Claims
-
1. A method of dynamically synchronizing a table from a source node to a destination node comprising:
-
streaming, to the destination node, static data in the table on the source node;
streaming, to the destination node, committed changes to the table on the source node interspersed with the static data;
creating, on the destination node, a copy of the table from the static data and the committed changes;
pausing, on the source node, active transactions that involve the table;
streaming, to the destination node, uncommitted changes associated with the active transactions on the source node;
resuming, on the source node, each active transaction when the associated uncommitted changes have been sent to the destination node; and
initiating, on the destination node, remote transactions that correspond to a set of transactions active on the source node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14)
-
-
11. A computer-readable medium having computer-executable instructions to a cause a source computer on a network to perform a method providing a synchronization stream comprising:
-
obtaining static data from a table in key order;
transmitting the static data in the synchronization stream;
identifying changes to the table that are uncommitted after transmitting the static data;
transmitting the uncommitted changes in the synchronization stream;
determining when an uncommitted change commits after transmitting the uncommitted change in the synchronization stream;
transmitting information regarding the commit of the uncommitted change on the network; and
transmitting an message to initiate active transactions.
-
-
15. A computer-readable medium having computer-executable instructions to a cause a destination computer on a network to perform a method of applying data received in a synchronization stream to a table comprising:
-
receiving static table data in the synchronization stream;
creating the table from the static data;
receiving uncommitted changes in the synchronization stream;
queuing the uncommitted changes;
receiving information on the network regarding an uncommitted change in the queue that commits;
deleting the uncommitted change that committed from the queue;
receiving an message to initiate active transactions;
identifying active transactions; and
initiating the identified active transactions. - View Dependent Claims (16)
-
-
17. A computer-readable medium having stored thereon a node table data structure comprising:
-
a first field containing data representing a table identifier; and
a second field containing data representing a coherent table object for the table identified by the data in the first field.
-
-
18. A computer-readable medium having stored thereon a node arbitration object data structure comprising:
-
a first field containing data representing an arbitration object identifier; and
a second field containing data representing a resource identifier for an object being arbitrated by the arbitration object identified in the first field.
-
-
19. A computer-readable medium having stored thereon a coherent databases data structure comprising:
-
a first field containing data representing a data source name for a database; and
a second field containing data representing a database identifier for the database identified by the data in the first field. - View Dependent Claims (20)
-
-
21. A computer-readable medium having stored thereon a coherent table data structure comprising:
-
a first field containing data representing a database identifier;
a second field containing data representing a table name in the database identified by the first field;
a third field containing a table subidentifier for the table identified by the second field. - View Dependent Claims (22)
-
-
23. A computer-readable medium having stored thereon a data stream for synchronizing a table comprising:
-
static data for the table;
a first end-of-stream message;
snapshot data for the table;
an end-of-snapshot message; and
a second end-of stream message. - View Dependent Claims (24, 25, 26, 27)
-
-
28. A computer-readable medium having stored thereon a control stream for synchronizing a table comprising:
-
an end-of-snapshot-response message;
an initialize-remote-transaction message; and
an initialize-remote-transaction-response message. - View Dependent Claims (29, 30, 31)
-
-
32. A network comprising:
-
a source node computer comprising;
a processing unit coupled to the network through a system bus;
a system memory coupled to the processing unit through a system bus, wherein a table shared among computers on the network is cached in the system memory;
a computer-readable medium coupled to the processing unit through a system bus; and
a synchronization source process executed from the computer-readable medium of the source by the processing unit of the source node, wherein the synchronization source process causes the processing unit of the source node to create an synchronization stream from data for the shared table and to transmit the synchronization stream on the network; and
a destination node computer comprising;
a processing unit coupled to the network through a system bus;
a system memory coupled to the processing unit through a system bus;
a computer-readable medium coupled to the processing unit through a system bus; and
a synchronization destination process executed from the computer-readable medium of the destination node by the processing unit of the destination node, wherein the synchronization destination process causes the processing unit of the destination node to receive then synchronization stream from the network and to create the shared table in the system memory. - View Dependent Claims (33, 34, 35)
-
Specification