CONTROLLING ACCESS OF CONCURRENT USERS OF COMPUTER RESOURCES IN A DISTRIBUTED SYSTEM USING AN IMPROVED SEMAPHORE COUNTING APPROACH
First Claim
1. An apparatus for controlling use by concurrent users of a distributed resource on a network, wherein use of the distributed resource is limited to a specified maximum number of concurrent users, the apparatus comprising:
- a first host comprising logic encoded in one or more tangible medium for execution;
wherein the first host is one of a plurality of hosts that are operable to communicatively connect to the network that contains the distributed resource;
wherein the logic when executed is operable to;
provide a local lock manager process that executes on the first host;
associate a user identification for each user of a first set of the concurrent users with the first host; and
respond to a first request for the distributed resource associated with a first user having a first user identification associated with the first host by requesting a lock from the local lock manager process;
wherein the local lock manager process may grant a lock on the same resource as another local lock manager process executing on another host of the plurality of hosts at any time when a number of outstanding locks granted on the same resource is less than the specified maximum number of concurrent users.
0 Assignments
0 Petitions
Accused Products
Abstract
A method of controlling concurrent users of a distributed resource on a network is disclosed. In one aspect, there are one or more local lock managers executing on corresponding hosts and cooperating as a distributed lock manager. The resource is limited to a maximum number of concurrent users. A user identification for each user is associated with one host. In response to a request associated with a particular user associated with a first host, a lock is requested from a first local lock manager process executing on the first host. A related method of handling a request for a count-limited resource includes receiving a request from a client process for the computer resource. If it is determined that the request exceeds a maximum count for the resource, then it is determined whether a current time is within a retry time period of the client'"'"'s first request. If it is determined the current time is within the retry time period, then it is automatically determined again whether the request exceeds the maximum count for the resource. If it is determined that the request does not exceed the maximum count, then the resource is provided to the client process.
-
Citations
20 Claims
-
1. An apparatus for controlling use by concurrent users of a distributed resource on a network, wherein use of the distributed resource is limited to a specified maximum number of concurrent users, the apparatus comprising:
-
a first host comprising logic encoded in one or more tangible medium for execution; wherein the first host is one of a plurality of hosts that are operable to communicatively connect to the network that contains the distributed resource; wherein the logic when executed is operable to; provide a local lock manager process that executes on the first host; associate a user identification for each user of a first set of the concurrent users with the first host; and respond to a first request for the distributed resource associated with a first user having a first user identification associated with the first host by requesting a lock from the local lock manager process; wherein the local lock manager process may grant a lock on the same resource as another local lock manager process executing on another host of the plurality of hosts at any time when a number of outstanding locks granted on the same resource is less than the specified maximum number of concurrent users. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus controlling concurrent users of a distributed resource on a network, wherein the distributed resource is limited to a maximum number of concurrent users, the apparatus comprising:
-
one or more network interfaces that are operable to communicatively connect to the network that contains the distributed resource; and logic encoded in one or more tangible medium for execution and when executed operable to; receive a request for the distributed resource from a client process for a user having a user identification; determine a home location associated with the user identification, the home location indicating a unique host among a plurality of hosts that execute a corresponding plurality of local lock manager processes of a distributed lock manager process; wherein each of the plurality of local lock manager processes may concurrently grant a lock on the same resource; send a request for a lock object for the distributed resource to a first local lock manager process of the plurality of local lock manager processes, the request including the home location; receive the lock object for the distributed resource from a second local lock manager process executing on the unique host when a number of outstanding locks granted by the second local lock manager process is less than a value of a local resource maximum defined for the second local lock manager process; and provide the client process access to the distributed resource only in response to receiving the lock object. - View Dependent Claims (11, 12, 13, 14)
-
-
15. An apparatus controlling concurrent users of a distributed resource on a network, wherein the distributed resource is limited to a maximum number of concurrent users, the apparatus comprising:
-
one or more network interfaces that are operable to communicatively connect to the network that contains the distributed resource; and logic encoded in one or more tangible medium for execution and when executed operable to; generate a value for a local resource maximum stored on each host of a plurality of hosts such that a summation over the plurality of hosts of the value for the local resource maximum yields an aggregate value that does not exceed the maximum number of concurrent users; determine whether to increase a first value in a first resource maximum stored on a first host of the plurality of hosts; when the first value in the first resource maximum is to be increased, then; decrease by a particular amount a second value in a second resource maximum stored on a second host of the plurality of hosts, and increase by the particular amount the first value in the first resource maximum stored on the first host; and grant a lock for the distributed resource when a number of outstanding locks granted by a lock manager process executing on the first host is less than the value of the local resource maximum stored on the first host. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification