Patent ID: 7150019

Claim:
A method for allocating a resource in a system that includes a plurality of processes executing on a plurality of nodes, the method comprising the steps of: causing a process to obtain, prior to accessing the resource in a particular way, a first lock that grants permission for the process to access the resource in the particular way, wherein the process requests the first lock from a shadow resource object located on the same node as the process; causing the shadow resource object to obtain, prior to granting the first lock to the process, a second lock that grants permission for the shadow resource object to grant locks that grant permission for processes to access the resource in the particular way, wherein the shadow resource object requests the second lock from a master resource object that resides on a different node than said shadow resource object; wherein said master resource object maintains a convert queue that: resides on the node on which said master resource object resides, and holds convert requests for locks on the resource from a plurality of shadow resource objects, the plurality of shadow resource objects including the shadow resource object; and maintaining global convert mode data stored on the same node as both the process and the shadow resource object, said global convert mode data indicating a lock mode that is requested by a head convert request currently located at a head of the convert queue of the master resource object.