A system for managing locks that give permission to access resources in a
computer system is disclosed. The lock management system is distributed
and provides deadlock protection. The lock management system is
distributed in that information about which locks have been granted for a
resource is stored at both a master node and at the nodes on which are
located processes that desire to access to the resource. A master
resource object located on the master node grants locks to shadow
resource objects located on the nodes on which are located the processes
that desire to access the resource. Each shadow resource object grants
locks on the resource to the processes that are located on the same node
as the shadow resource object. The master resource object includes a
convert queue used to maintain a list of convert requests made by the
shadow resource objects on the various other nodes. The convert request
at the head of the global convert queue is the "head convert request".
Information about the head convert request is propagated to the shadow
resource objects in the system. The head convert request is a factor used
by shadow resource objects to determine whether the shadow resource
object may grant a lock convert request.