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 of 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.
2 Assignments
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.
145 Citations
38 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 of 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)
streaming, to the destination node, any committed changes resulting from the resumption of each transaction of the source node interspersed with the uncommitted changes for the active transactions; and
applying, to the copy of the table on the destination node, any committed changes resulting from the resumption of each transaction.
-
-
3. The method of claim 1, wherein remote transactions are initiated on the destination node in response to a message from the source node that all changes for the active transactions have been sent.
-
4. The method of claim 1, further comprising:
-
sending, to the destination node, an identity for any active transaction on the source node that terminates before the corresponding transaction is initiated on the destination node; and
aborting, on the destination node, all changes identified as associated with the terminated transaction.
-
-
5. The method of claim 1, wherein the static data in the table comprises metadata and table records.
-
6. The method of claim 1, wherein streaming the static data in the table comprises populating the table on the source node from a backend.
-
7. The method of claim 1, wherein streaming the static data in the table comprises synchronizing the table on the source node from a third node.
-
8. The method of claim 1, wherein the uncommitted changes form a snapshot of the table.
-
9. The method of claim 1, wherein the committed changes are evaluated based on a comparison of a key value in each committed change with a key value of a last record sent to the destination node.
-
10. The method of claim 1, wherein the acts are performed in the order recited.
-
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, the method 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 a message to initiate active transactions. - View Dependent Claims (12, 13, 14)
determining when a change is committed to the table while transmitting the static data; and
transmitting the committed change in the synchronization stream.
-
-
13. The computer-readable medium of claim 11, wherein obtaining the static data comprises:
synchronizing the table data from a backend.
-
14. The computer-readable of claim 11, wherein obtaining the static data comprises:
synchronizing the table data from another node.
-
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, the method 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 a message to initiate active transactions;
identifying active transactions; and
initiating the identified active transactions. - View Dependent Claims (16)
receiving a committed change in the synchronization stream while receiving the static data; and
applying the committed change to the table.
-
-
17. A distributed computer system having a source node and destination node, and implementing dynamic synchronization of a table from the source node to the destination node, the distributed computer system comprising:
-
means for streaming, to the destination node, static data in the table of the source node;
means for streaming, to the destination node, committed changes to the table on the source node interspersed with the static data;
means for creating, on the destination node, a copy of the table from the static data and the committed changes;
means for pausing, on the source node, active transactions that involve the table;
means for streaming, to the destination node, uncommitted changes associated with the active transactions on the source node;
means for resuming, on the source node, each active transaction when the associated uncommitted changes have been sent to the destination node; and
means for initiating, on the destination node, remote transactions that correspond to a set of transactions active on the source node. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
means for streaming, to the destination node, any committed changes resulting from the resumption of each transaction of the source node interspersed with the uncommitted changes for the active transactions; and
means for applying, to the copy of the table on the destination node, any committed changes resulting from the resumption of each transaction.
-
-
19. The distributed computer system of claim 17, wherein remote transactions are initiated on the destination node in response to a message from the source node that all changes for the active transactions have been sent.
-
20. The distributed computer system of claim 17, further comprising:
-
means for sending, to the destination node, an identity for any active transaction on the source node that terminates before the corresponding transaction is initiated on the destination node; and
means for aborting, on the destination node, all changes identified as associated with the terminated transaction.
-
-
21. The distributed computer system of claim 17, wherein the static data in the table comprises metadata and table records.
-
22. The distributed computer system of claim 17, wherein streaming the static data in the table comprises populating the table on the source node from a backend.
-
23. The distributed computer system of claim 17, wherein streaming the static data in the table comprises synchronizing the table on the source node from a third node.
-
24. The distributed computer system of claim 17, wherein the uncommitted changes form a snapshot of the table.
-
25. The distributed computer system of claim 17, wherein the committed changes are evaluated based on a comparison of a key value in each committed change with a key value of a last record sent to the destination node.
-
26. The distributed computer system of claim 17, wherein the acts are performed in the order recited.
-
27. A method executed on a source computer on a network to provide a synchronization stream, the method 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 a message to initiate active transactions. - View Dependent Claims (28, 29, 30)
determining when a change is committed to the table while transmitting the static data; and
transmitting the committed change in the synchronization stream.
-
-
29. The method of claim 27, wherein obtaining the static data comprises:
synchronizing the table data from a backend.
-
30. The method of claim 27, wherein obtaining the static data comprises:
synchronizing the table data from another node.
-
31. A method executed on a destination computer on a network to apply data received in a synchronization stream to a table, the method 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 a message to initiate active transactions;
identifying active transactions; and
initiating the identified active transactions. - View Dependent Claims (32)
receiving a committed change in the synchronization stream while receiving the static data; and
applying the committed change to the table.
-
-
33. A source computer on a network operating to provide a synchronization stream, the source computer comprising:
-
means for obtaining static data from a table in key order;
means for transmitting the static data in the synchronization stream;
means for identifying changes to the table that are uncommitted after transmitting the static data;
means for transmitting the uncommitted changes in the synchronization stream;
means for determining when an uncommitted change commits after transmitting the uncommitted change in the synchronization stream;
means for transmitting information regarding the commit of the uncommitted change on the network; and
means for transmitting a message to initiate active transactions. - View Dependent Claims (34, 35, 36)
means for determining when a change is committed to the table while transmitting the static data; and
means for transmitting the committed change in the synchronization stream.
-
-
35. The source computer of claim 33, wherein said means for obtaining the static data comprises:
means for synchronizing the table data from a backend.
-
36. The method of claim 33, wherein said means for obtaining the static data comprises:
means for synchronizing the table data from another node.
-
37. A destination computer on a network operating to apply data received in a synchronization stream to a table, the destination computer comprising:
-
means for receiving static table data in the synchronization stream;
means for creating the table from the static data;
means for receiving uncommitted changes in the synchronization stream;
means for queuing the uncommitted changes;
means for receiving information on the network regarding an uncommitted change in the queue that commits;
means for deleting the uncommitted change that committed from the queue;
means for receiving a message to initiate active transactions;
means for identifying active transactions; and
means for initiating the identified active transactions. - View Dependent Claims (38)
means for receiving a committed change in the synchronization stream while receiving the static data; and
means for applying the committed change to the table.
-
Specification