Dynamic synchronization of tables
First Claim
1. A computer-readable medium having stored thereon instructions, which, when executed by a computer, cause the computer to perform a method of synchronizing a table, wherein the method comprises:
- streaming, to a destination node, a data stream for a table of a source node, wherein the data stream comprises;
static data for the table;
a first end-of-stream message;
snapshot data for the table comprising uncommitted changes associated with active transactions which are currently in progress on the source node, wherein active transactions involve the table;
an end-of-snapshot message; and
a second end-of stream message;
creating, on the destination node, a copy of the table from the static data;
before streaming snapshot data, pausing, on the source node, the active transactions;
after streaming snapshot data, resuming, on the source node, the active transactions corresponding to the associated uncommitted changes that have been sent to the destination node; and
initiating, on the destination node, active transactions that correspond to initialize-remote-transaction messages sent from 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.
43 Citations
18 Claims
-
1. A computer-readable medium having stored thereon instructions, which, when executed by a computer, cause the computer to perform a method of synchronizing a table, wherein the method comprises:
-
streaming, to a destination node, a data stream for a table of a source node, wherein the data stream comprises; static data for the table; a first end-of-stream message; snapshot data for the table comprising uncommitted changes associated with active transactions which are currently in progress on the source node, wherein active transactions involve the table; an end-of-snapshot message; and a second end-of stream message; creating, on the destination node, a copy of the table from the static data; before streaming snapshot data, pausing, on the source node, the active transactions; after streaming snapshot data, resuming, on the source node, the active transactions corresponding to the associated uncommitted changes that have been sent to the destination node; and initiating, on the destination node, active transactions that correspond to initialize-remote-transaction messages sent from the source node. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-readable medium having stored thereon instructions which, when executed by a computer, cause the computer to perform a control stream utilized in a method of synchronizing a table, wherein the method comprises:
-
streaming, to a destination node, static data for a table of a source node; streaming, to the destination node, snapshot data for the table comprising uncommitted changes associated with active transactions which are currently in progress on the source node, wherein active transactions involve the table; creating, on the destination node, a copy of the table from the static data and the committed changes; before sending the snapshot data, pausing the active transactions; resuming, on the source node, the active transactions when the snapshot data has been sent to the destination node; streaming a control stream for synchronizing the table of the source node with the created table on the destination node, the control stream comprising; an end-of-snapshot-response message; an initialize-remote-transaction message for each active transaction; and an initialize-remote-transaction-response message for each initialize-remote-transaction message; and initiating, on the destination node, remote transactions that correspond to initialize-remote-transaction messages. - View Dependent Claims (6, 7, 8)
-
-
9. In a computer system, a method of synchronizing a table, the method comprising:
-
sending a data stream for a table from a source node, wherein the data stream comprises; static data for the table; a first end-of-stream message; snapshot data for the table, the snapshot data comprising uncommitted changes associated with active transactions which are currently in progress on the source node, wherein active transaction involve the table; an end-of-snapshot message; and a second end-of stream message; creating on the destination node, a copy of the table from the static data; before sending snapshot data, pausing, on the source node the active transactions; after sending snapshot data, resuming, on the source node, the active transactions corresponding to the associated uncommitted changes that have been sent to the destination node; and initiating, on the destination node, active transactions that correspond to initialize-remote-transaction messages sent from the source node. - View Dependent Claims (10, 11, 12)
-
-
13. In a computer system, a method of synchronizing a table, the method comprising:
-
streaming, to a destination node, static data for a table of a source node; streaming to the destination node, snapshot data for the table comprising uncommitted changes associated with active transactions which are currently in progress on the source node, wherein active transactions involve the table; creating, on the destination node, a copy of the table from the static data and committed changes; before sending the snapshot data, pausing, on the source node, active transactions that involve the table; resuming, on the source node, the active transactions when the snapshot data has been sent to the destination node; streaming a control stream for synchronizing the table of the source node with the created table on the destination node, the control stream comprising; an end-of-snapshot-response message; an initialize-remote-transaction message for each active transaction; and an initialize-remote-transaction-response message for each initialize-remote-transaction message; and initiating, on the destination node, remote transactions that correspond to initialize-remote-transaction messages. - View Dependent Claims (14, 15, 16)
-
-
17. A computer system for synchronizing a table comprising:
-
a source node computer coupled to a network; and a destination node computer coupled to the network; a computer program executed by the computer system for; streaming, to the destination node computer, a data stream for a table of the source node computer, wherein the data stream comprises; static data for the table; a first end-of-stream message; snapshot data for the table comprising uncommitted changes associated with active transactions which are currently in progress on the source node, wherein active transactions involve the table; an end-of-snapshot message; and a second end-of stream message; creating, on the destination node, a copy of the table from the static data; before streaming snapshot data, pausing, on the source node, the active transactions; after streaming snapshot data, resuming, on the source node, the active transactions corresponding to the associated uncommitted changes have been sent to the destination node; and initiating, on the destination node, active transactions that correspond to initialize remote transaction messages sent from the source node. - View Dependent Claims (18)
-
Specification