Patent ID: 8271437

Claim:
A method of managing locks for one or more resources in a distributed system comprising a plurality of distributed computing nodes, the method comprising: maintaining a database as a shared storage accessible by plural participating nodes for storing shared lock information; each participating node locally managing a local list of locks; and responsive to a given lock manager engine within a given computing node receiving a request for a lock for a resource from an application executing within the given computing node, entering, by the given lock manager engine, a lock request record in the database, wherein the lock request record comprises a sequence entry number; determining, by the given lock manager engine, whether the database stores any records associated with the resource having a sequence number less than the sequence entry number of the lock request record; responsive to a determination that the database stores one or more records associated with the resource having a sequence number less than the sequence entry number of the lock request record, retrieving, by the given lock manager engine, the one or more records from the database to the local list of locks at the given computing node, wherein each of the one or more records in the local list of locks comprises a heartbeat counter associated with a corresponding requesting computing node; and checking, by the given lock manager engine, status of other nodes having lock request records within the one or more records in the local list of locks to determine whether the other nodes remain active based on heartbeat counters in the one or more records, wherein each given heartbeat counter comprises a value that is thereafter checked against a value from the database to determine if the corresponding computing node remains active, and for inactive nodes deleting, by the given lock manager engine, corresponding records from the database.