Data updates in distributed system with data coherency
First Claim
1. A method comprising:
- receiving by a device incorporating a data coordinator a proposed change to a data element of a distributed system, the distributed system having multiple nodes storing a copy of the data element, each node coupled to, and in communication with, the data coordinator;
locking the data element at the device to prevent access to the data element in response to receiving the proposed change;
sending, after locking the data element at the device, an invalidation of the data element to the nodes of the distributed system storing a copy of the data element to invalidate copies of the data element stored at the nodes;
receiving, by the device, any acknowledgements of the invalidation sent by the nodes storing a copy of the data element;
updating the data element in accordance with the proposed change if all nodes in the distributed system storing a copy of the data element acknowledge the invalidation of the data element, otherwise,terminating the proposed change to the data element to prevent the proposed change from being made, including maintaining an unchanged value of the data element, wherein the updating the data element if all nodes acknowledge the invalidation otherwise terminating the proposed change prevents valid data from becoming inconsistent across the nodes,the updated or unchanged data element then being a current, valid value of the data element; and
unlocking the data element after either updating the data element or terminating the proposed change to the data element to allow access to the data element.
1 Assignment
0 Petitions
Accused Products
Abstract
Updating data in a distributed system, in which a data coordinator receives a proposed change to a data element, locks the data element, and sends an invalidation command to nodes in the distributed system. If all nodes acknowledge the invalidation command, the data coordinator updates the data element locally and unlocks the data element. If not all nodes acknowledge the invalidation command, the data coordinator terminates the proposed change and unlocks the data element. Each node that invalidated the data element requests the data element. The data coordinator returns its current value. If the value is changed, all nodes request and receive the update. If a node did not invalidate, it will not request an update, but the value will not have changed so all requesting nodes receive the previous value. Thus, all nodes have the same value for the data element and consistency is maintained throughout the system.
-
Citations
22 Claims
-
1. A method comprising:
-
receiving by a device incorporating a data coordinator a proposed change to a data element of a distributed system, the distributed system having multiple nodes storing a copy of the data element, each node coupled to, and in communication with, the data coordinator; locking the data element at the device to prevent access to the data element in response to receiving the proposed change; sending, after locking the data element at the device, an invalidation of the data element to the nodes of the distributed system storing a copy of the data element to invalidate copies of the data element stored at the nodes; receiving, by the device, any acknowledgements of the invalidation sent by the nodes storing a copy of the data element; updating the data element in accordance with the proposed change if all nodes in the distributed system storing a copy of the data element acknowledge the invalidation of the data element, otherwise, terminating the proposed change to the data element to prevent the proposed change from being made, including maintaining an unchanged value of the data element, wherein the updating the data element if all nodes acknowledge the invalidation otherwise terminating the proposed change prevents valid data from becoming inconsistent across the nodes, the updated or unchanged data element then being a current, valid value of the data element; and unlocking the data element after either updating the data element or terminating the proposed change to the data element to allow access to the data element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus comprising:
-
a storage device that stores a distributed database in a distributed system, the distributed database to store a data element, the distributed system having a network of multiple nodes that store a copy of the data element, each node coupled to, and in communication with, the data coordinator; and a data coordinator to receive a request to modify the data element of the distributed system, lock the data element at the device to prevent access to the data element in response to receiving the proposed change, send, after locking the data element at the device, an invalidation of the data element to the nodes of the distributed system storing a copy of the data element to invalidate copies of the data element stored at the nodes, receive by the device zero or more acknowledgements of the invalidation by the nodes storing a copy of the data element, update the data element in accordance with the requested modification if all nodes in the distributed system storing a copy of the data element acknowledge the invalidation of the data element, otherwise, terminate the requested modification to the data element to prevent the proposed change from being made, including maintaining an unchanged value of the data element, wherein the updating the data element if all nodes acknowledge the invalidation otherwise terminating the proposed change prevents valid data from becoming inconsistent across the nodes, the updated or unchanged data element then being a current, valid value of the data element in the database, and unlock the data element after either updating the data element or terminating the proposed change to the data element to make the data element available for access. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. An article of manufacture comprising a computer-readable storage medium having instructions stored thereon, which when executed, cause a processor to:
-
receive at a device incorporating a data coordinator a proposed change to a data element of a distributed system, the distributed system having multiple nodes storing a copy of the data element, each node coupled to, and in communication with, the data coordinator; lock the data element at the device to prevent access to the data element in response to receiving the proposed change; send, after locking the data element at the device, an invalidation of the data element to the nodes of the distributed system storing a copy of the data element to invalidate copies of the data element stored at the nodes; receive by the device zero or more acknowledgements of the invalidation by the nodes storing a copy of the data element; update the data element in accordance with the proposed change if all nodes in the distributed system storing a copy of the data element acknowledge the invalidation of the data element, otherwise, terminate the proposed change to the data element to prevent the proposed change from being made, including maintaining an unchanged value of the data element, wherein the updating the data element if all nodes acknowledge the invalidation otherwise terminating the proposed change prevents valid data from becoming inconsistent across the nodes, the updated or unchanged data element then being a current, valid value of the data element; and unlock the data element after either updating the data element or terminating the proposed change to the data element to allow access to the data element. - View Dependent Claims (19, 20, 21, 22)
-
Specification