Allocating locks in a distributed environment
Abstract
A system and method for managing the allocation of resources and locks to client computer systems. The system and method provides server-side control features related to resource requests for locked resources, such as establishing an expected lifetime property so that the sever may notify requesting clients as to the expected lifetime of a lock to improve client-side polling methods. The system and method relates to blocking a resource or otherwise maintaining subscriptions to lock-related events to effectively allow for asynchronous grants of a lock based on the time of the request to alleviate lock starvation. Another feature relates to a server-side lock function of breaking an existing lock or at least modifying/reducing a lock timeout period to prevent lost resources.
Claims
exact text as granted — not AI-modified1 . A computer implemented method of managing a locked resource in a distributed environment, the method comprising:
receiving a request to access the resource, wherein the request originates from a requesting client computer system; determining whether the resource has a conflicting lock; if the resource has a conflicting lock, returning lock information to the requesting client computer system, so that the retry strategy of the requesting client computer system may be modified; and if the resource does not have a conflicting lock, performing the requested access.
2 . A computer implemented method as defined in claim 1 , wherein the lock information is related to expected lifetime of the lock.
3 . A computer implemented method as defined in claim 2 , wherein the conflicting lock is owned by a lock owner and wherein the lock owner sets the expected lifetime of the lock.
4 . A computer implemented method as defined in claim 2 , wherein the requesting client computer system modifies a request strategy based on the returned information.
5 . A computer implemented method as defined in claim 4 , wherein the request strategy relates to a time period between requests for the resource.
6 . A computer program product readable by a computer and encoding instructions for executing the method recited in claim 5 .
7 . A computer implemented method as defined in claim 1 , wherein the lock information relates to sharing property values of the lock.
8 . A computer implemented method as defined in claim 7 , wherein the request has a predetermined type and wherein the request strategy relates to the type of request.
9 . A computer program product readable by a computer and encoding instructions for executing the method recited in claim 1 .
10 . A computer-readable medium having stored thereon a locked resource, wherein the locked resource comprises:
a resource object data section for storing actual object data; and a lock object, wherein the lock object may comprise an expected lifetime property.
11 . A computer implemented method of allocating access to a resource in a distributed environment, the method comprising:
receiving a request to access the resource, wherein the request originates from a requesting client computer system; determining whether the resource has a conflicting lock; if the resource has a conflicting lock, blocking the resource for the requesting client computer system until the resource is free; and performing the requested access, allocating a new lock to the requesting computer system.
12 . A computer implemented method as defined in claim 11 , wherein the request for access to the resource further comprises a request to block the resource.
13 . A computer implemented method as defined in claim 11 , wherein the request to block the resource is a predetermined header having a time value for defining a time period to block the resource.
14 . A computer implemented method of unlocking a locked resource in a distributed environment, the locked resource having a lock object associated with a lock owner, the method comprising:
receiving a request to access the locked resource, wherein the request originates from a requesting client computer system other than the lock owner and wherein the request comprises a request to break the lock object; identifying the request to break the lock object; determining whether the requesting client computer system is cleared to break the lock object; and removing the lock object from the resource if the requesting client computer system is cleared to break the lock object.
15 . A computer implemented method as defined in claim 14 , further comprising:
notifying the lock owner that the lock object of the request to break the lock before removing the lock object.
16 . A computer implemented method program product readable by a computer and encoding instructions for executing the method recited in claim 14 .
17 . A computer system for managing resources in a distributed environment, the distributed environment having a plurality of resources and wherein at least one resource is associated with a lock object, the system comprising:
a receive module for receiving a request from a requesting client application program to access at least one resource in the distributed environment; a determination module for determining whether the resource has a conflicting lock object associated with the requested resource; and a communication module for returning lock information to the requesting client application program if the resource has a conflicting lock object, wherein the lock information returned to the requesting client application program relates to an expected lifetime of the conflicting lock object.
18 . A system as defined in claim 17 , wherein:
an owning client application program owns a lock object for the requested resource; and the owning client application program determines the expected lifetime of the lock object.
19 . A system as defined in claim 18 , wherein the requesting client application program modifies a request strategy based on received information from the communication module.
20 . A system as defined in claim 17 , further comprising:
a blocking module for blocking the locked resource for the requesting client application program until the resource is released; and an allocation module for allocating a new lock to the requesting client application program following the release of the resource.
21 . A system as defined in claim 17 , wherein the receive module is adapted to receive a request to break an existing lock object, the system further comprising:
a breaking module for removing the existing lock object for the requested resource in response to a received request to break an existing lock object.
22 . A system as defined in claim 21 , wherein the requesting client application program requests to break the existing lock object associated with the requested resource.Join the waitlist — get patent alerts
Track US2006136926A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.