9104714

Incremental Optimistic Locking of Data Distributed on Multiple Nodes to Avoid Transaction Deadlock

PublishedAugust 11, 2015
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method comprising: identifying, by a processing device executing a transaction originator node, a plurality of data elements distributed at a plurality of enlisted nodes to lock for a multi-operational transaction, wherein the transaction originator node manages the multi-operational transaction, the multi-operational transaction comprising a plurality of operations, the plurality of data elements corresponding to the plurality of operations; determining, by the processing device, a hash value for each of the plurality of enlisted nodes using a node identifier of a respective enlisted node; ranking, by the processing device, the plurality of enlisted nodes in view of the hash values to create a lock order for the multi-operational transaction; determining, by the processing device executing the transaction originator node, which of the plurality of enlisted nodes is a first enlisted node in the lock order for the multi-operational transaction; sending, by the processing device executing the transaction originator node, an update perform request to the first enlisted node in the lock order to lock a corresponding data element residing at the first enlisted node from the plurality of data elements; and sending, by the processing device executing the transaction originator node, update cache requests to remaining enlisted nodes in the lock order to cache a corresponding update cache request until the corresponding remaining enlisted node receives an update perform message to perform a lock on a corresponding data element.

2

2. The method of claim 1 , wherein the update perform request and the update cache requests comprise: at least one of a request to update data, an identifier of the data to be updated, or a value to use to update the data.

3

3. The method of claim 1 , wherein sending the update perform request to the first enlisted node comprises: creating an indicator in the update perform request indicating to the first enlisted node to lock a data element residing at the first enlisted node from the plurality of data elements.

4

4. The method of claim 1 , wherein sending the update cache requests to remaining enlisted nodes comprises: creating an indicator in the update cache requests indicating to the remaining enlisted nodes to cache a corresponding update cache request.

5

5. The method of claim 1 , wherein the remaining enlisted nodes receive an update perform message to perform the lock from an enlisted node that has performed a lock to a data element residing at the corresponding enlisted node.

6

6. The method of claim 1 , further comprising: receiving a message from a last enlisted node in the lock order that the data element residing at the last enlisted node is locked; and sending a message to the first enlisted node and the remaining enlisted nodes to release the locks.

7

7. A method comprising: receiving, by a processing device executing an enlisted node, an update request message from a transaction originator node identifying data to lock for a transaction at the enlisted node and a data update to perform by the enlisted node; determining, by the enlisted node, that a flag in the update request message is disabled, the disabled flag indicating to the enlisted node to store the update request message in a cache without acquiring a lock or performing the data update; caching, by the enlisted node, the update request message without acquiring a lock or performing the data update; receiving, by the enlisted node, an update perform message to perform the data update as specified in the update request message that is stored in the cache; and acquiring the lock on the data and performing the data update as specified in the update request message.

8

8. The method of claim 7 , wherein the update request message comprises: lock order for the transaction identifying the order of the first enlisted node and the remaining enlisted nodes.

9

9. The method of claim 7 , further comprising: sending a message indicating the data has been locked.

10

10. A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause a transaction originator node executing on the processing device to: identify, by the transaction originator, a plurality of data elements distributed at a plurality of enlisted nodes to lock for a multi-operational transaction, wherein the transaction originator node manages the multi-operational transaction, the multi-operational transaction comprising a plurality of operations, the plurality of data elements corresponding to the plurality of operations; determine a hash value for each of the plurality of enlisted nodes using a node identifier of a respective enlisted node; rank the plurality of enlisted nodes in view of the hash values to create a lock order for the multi-operational transaction; determine, by the transaction originator node, which of the plurality of enlisted nodes is a first enlisted node in the lock order for the multi-operational transaction; send, by the transaction originator node, an update perform request to the first enlisted node in the lock order to lock a corresponding data element residing at the first enlisted node from the plurality of data elements; and send, by the transaction originator node, update cache requests to remaining enlisted nodes in the lock order to cache a corresponding update cache request until the corresponding remaining enlisted node receives an update perform message to perform a lock on a corresponding data element.

11

11. The non-transitory computer-readable storage medium of claim 10 , wherein the update perform request and the update cache requests comprise: at least one of a request to update data, an identifier of the data to be updated, or a value to use to update the data.

12

12. The non-transitory computer-readable storage medium of claim 10 , wherein to send the update perform request to the first enlisted node comprises the processing device to: create an indicator in the update perform request indicating to the first enlisted node to lock a data element residing at the first enlisted node from the plurality of data elements.

13

13. The non-transitory computer-readable storage medium of claim 10 , wherein to send the update cache requests to remaining enlisted nodes comprises: creating an indicator in the update cache requests indicating to the remaining enlisted nodes to cache a corresponding update request.

14

14. The non-transitory computer-readable storage medium of claim 10 , wherein the remaining enlisted nodes receive an update perform message to perform the lock from an enlisted node that has performed a lock to a data element residing at the corresponding enlisted node.

15

15. The non-transitory computer-readable storage medium of claim 10 , wherein the processing device is further to: receive a message from a last enlisted node in the lock order that the data element residing at the last enlisted node is locked; and send a message to the first enlisted node and the remaining enlisted nodes to release the locks.

16

16. A system comprising: a memory; and a processing device executing a transaction originator node in a data grid, the processing device coupled to the memory to: identify, by the transaction originator node, a plurality of data elements distributed at a plurality of enlisted nodes to lock for a multi-operational transaction, wherein the transaction originator node manages the multi-operational transaction, the multi-operational transaction comprising a plurality of operations, the plurality of data elements corresponding to the plurality of operations; determine a hash value for each of the plurality of enlisted nodes using a node identifier of a respective enlisted node; rank the plurality of enlisted nodes in view of the hash values to create a lock order for the multi-operational transaction; determine which of the plurality of enlisted nodes is a first enlisted node in the lock order for the multi-operational transaction; send an update perform request to the first enlisted node in the lock order to lock a corresponding data element residing at the first enlisted node from the plurality of data elements; and send update cache requests to remaining enlisted nodes in the lock order to cache a corresponding update cache request until the corresponding remaining enlisted node receives an update perform message to perform a lock on a corresponding data element.

17

17. The system of claim 16 , wherein to send the update perform request to the first enlisted node comprises the processing device to: create an indicator in the update perform request indicating to the first enlisted node to lock a data element residing at the first enlisted node from the plurality of data elements.

18

18. The system of claim 16 , wherein to send the update cache requests to remaining enlisted nodes comprises the processing device to: create an indicator in the update cache requests indicating to the remaining enlisted nodes to cache a corresponding update cache request.

19

19. The system of claim 16 , wherein the remaining enlisted nodes receive an update perform message to perform the lock from an enlisted node that has performed a lock to a data element residing at the corresponding enlisted node.

20

20. The system of claim 16 , wherein the processing device is further to: receive a message from a last enlisted node in the lock order that the data element residing at the last enlisted node is locked; and send a message to the first enlisted node and the remaining enlisted nodes to release the locks.

Patent Metadata

Filing Date

Unknown

Publication Date

August 11, 2015

Inventors

Mircea Markus
Manik Surtani

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “INCREMENTAL OPTIMISTIC LOCKING OF DATA DISTRIBUTED ON MULTIPLE NODES TO AVOID TRANSACTION DEADLOCK” (9104714). https://patentable.app/patents/9104714

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.