Patent ID: 6704767
Filing Date: 2004-03-09
Classification: G06F,Y10S

Abstract:
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 stored on a different node than said shadow resource object; wherein the shadow resource object includes a convert queue; wherein the shadow resource object places a first lock request on said convert queue in response to the process requesting the first lock; in response to granting said first lock, granting other lock requests on said convert queue that are compatible with the locks granted by the shadow resource object; wherein the convert queue includes a second lock request and a third lock request; wherein said second lock request is closer to the head of said convert queue than said third lock request; wherein the step of granting any other lock requests includes granting said third lock request without granting said second lock request; and wherein the step of granting said third lock request is performed while said second lock request remains in said convert queue.