IP Library Granted Patent US 7,594,053
Granted Patent B2
US 7,594,053 · App. 10/996,877 · Granted Sep 22, 2009

Adaptive object level locking

Assignee: Alcatel-Lucent USA Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,594,053
App. No.
10/996,877
Granted
Sep 22, 2009
Kind
B2
Abstract

Providing concurrent access to a set of shared resources is disclosed. An attempt is made, at the time it becomes necessary to use each resource required to perform an operation or set of operations, to lock the resource. For each attempt to lock a required resource, information associated with the attempt to lock the resource is stored. In the event a lock cannot be obtained with respect to a required resource, a renewed attempt to perform the operation or set of operations is initiated. At the outset of the renewed attempt, an attempt is made to lock all of the required resources that were locked or attempted to be lock during the previous attempt to perform the operation or set of operations.

Claims (35)

1. A method for providing to a plurality of users concurrent access to a set of shared resources, comprising:

for an operation or set of operations requiring access to one or more of said shared resources by one of said plurality of users:

(a) attempting to lock each required resource at the time it becomes necessary to use the resource in performing the operation or set of operations;

(b) storing for each attempt to lock a required resource information associated with the attempt to lock the resource; and

(c) in the event a lock cannot be obtained with respect to a required resource, initiating a renewed attempt to perform the operation or set of operations, the renewed attempt comprising using the stored information, at the outset of the renewed attempt to perform the operation or set of operations and prior to performing again one or more tasks of the operation or set of operations that were already performed in the previous attempt to perform the operation or set of operations, to lock or attempt to lock all of the required resources that were locked or attempted to be locked during the previous attempt to perform the operation or set of operations; in the event all of the required resources that were locked or attempted to be locked during the previous attempt to perform the operation or set of operations are successfully locked, using the locked resources to perform said one or more tasks of the operation or set of operations that were already performed in the previous attempt to perform the operation or set of operations and one or more attempted tasks, if any, associated with any resource that was unsuccessfully attempted to be locked in the previous attempt; and subsequently locking or attempting to lock each subsequently required resource, if any, required to complete one or more further, not previously completed or attempted tasks comprising the operation or set of operations, at the time it becomes necessary to use that subsequently required resource.

2. The method of claim 1 , wherein attempting, at the outset of the renewed attempt to perform the operation or set of operations, to lock all of the required resources that were locked or attempted to be locked during the previous attempt comprises using the information associated with attempts to lock the required resources stored during the previous attempt to perform the operation or set of operations.

3. The method of claim 1 , wherein the renewed attempt to perform the operation or set of operations comprises attempting to lock any further resources that may be required to perform the operation or set of operations that were not locked or attempted to be locked during the previous attempt to perform the operation or set of operations as it becomes necessary to use such further resources.

4. The method of claim 3 , further comprising adding to the information stored in the previous attempt concerning attempts to lock resources during the previous attempt information associated with attempts during the renewed attempt to lock further resources.

5. The method of claim 1 , further comprising rolling back, in the event a lock cannot be obtained with respect to a required resource, any partially completed operations or portions thereof performed with respect to previously-locked resources and unlocking any such previously-locked resources prior to initiating the renewed attempt to perform the operation or set of operations.

6. The method of claim 1 , wherein the information associated with the attempt to lock the resource comprises information associated with resource.

7. The method of claim 6 , wherein the information associated with the resource comprises an identifier associated with the resource.

8. The method of claim 1 , wherein the information associated with the attempt to lock the resource comprises information associated with the lock attempt.

9. The method of claim 1 , wherein the information associated with the attempt to lock the resource is stored in a data structure.

10. The method of claim 9 , wherein the data structure comprises a lock vector.

11. The method of claim 1 , wherein the set of shared resources comprises a plurality of data objects.

12. The method of claim 1 , further comprising, in the event a lock cannot be obtained with respect to a required resource, rolling back any operation or portion thereof completed during the failed attempt the perform the operation or set of operations and unlocking any locked resources prior to initiating the renewed attempt.

13. The method of claim 1 , further comprising performing steps (a), (b), and (c) with respect to each operation or set of operations requiring access to one or more of said shared resources by one of said plurality of users.

14. The method of claim 1 , further comprising repeating steps (a), (b), and (c) with respect to the operation or set of operations until the operation or set of operations has been completed successfully.

15. A system for providing access to a set of shared resources to which a plurality of users have concurrent access, comprising:

a communication interface configured to permit access to said set of shared resources;

a memory configured to store information concerning attempts to lock one or more of said shared resources; and

a processor configured to:

attempt to lock, at the time it becomes necessary to use the resource, each of said shared resources as may be required to perform an operation or set of operations;

store in said memory for each attempt to lock a required resource information associated with the attempt to lock the resource; and

in the event a lock cannot be obtained with respect to a required resource, initiate a renewed attempt to perform the operation or set of operations, the renewed attempt comprising using the stored information, at the outset of the renewed attempt and prior to performing one or more tasks of the operation or set of operations that were already performed in the previous attempt to perform the operation or set of operations, to lock or attempt to lock all of the required resources that were locked or attempted to be lock during the previous attempt to perform the operation or set of operations; in the event all of the required resources that were locked or attempted to be locked during the previous attempt to perform the operation or set of operations are successfully locked, using the locked resources to perform said one or more tasks of the operation or set of operations that were already performed in the previous attempt to perform the operation or set of operations and one or more attempted tasks, if any, associated with any resource that was unsuccessfully attempted to be locked in the previous attempt; and subsequently locking or attempting to lock each subsequently required resource, if any, required to complete one or more further, not previously completed or attempted tasks comprising the operation or set of operations, at the time it becomes necessary to use that subsequently required resource.

16. A computer program product for providing to a plurality of users concurrent access to a set of shared resources, the computer program product being embodied in a computer readable medium and comprising computer instructions for:

for an operation or set of operations requiring access to two or more of said shared resources by one of said plurality of users;

attempting to lock each required resource at the time it becomes necessary to use the resource in performing the operation or set of operations;

storing for each attempt to lock a required resource information associated with the attempt to lock the resource;

and in the event a lock cannot be obtained with respect to a required resource, initiating a renewed attempt to perform the operation or set of operations, the renewed attempt comprising using the stored information, at the outset of the renewed attempt to perform the operation or set of operations and prior to performing again a task one or more tasks of the operation or set of operations that were already performed in the previous attempt to perform the operation or set of operations, to lock or attempt to lock all of the required resources that were locked or attempted to be locked during the previous attempt to perform the operation or set of operations;

in the event all of the required resources that were locked or attempted to be locked during the previous attempt to perform the operation or set of operations are successfully locked, using the locked resources to perform said one or more tasks of the operation or set of operations that were already performed in the previous attempt to perform the operation or set of operations and one or more attempted tasks, if any, associated with any resource that was unsuccessfully attempted to be locked in the previous attempt; and subsequently locking or attempting to lock each subsequently required resource, if any, required to complete one or more further, not previously completed or attempted tasks comprising the operation or set of operations, at the time it becomes necessary to use that subsequently required resource.

17. The system of claim 15 , wherein the processor is further configured to add to the information stored in the previous attempt concerning attempts to lock resources during the previous attempt information associated with attempts during the renewed attempt to lock further resources.

18. The system of claim 15 , wherein the processor is further configured to roll back, in the event a lock cannot be obtained with respect to a required resource, any partially completed operations or portions thereof performed with respect to previously-locked resources and unlocking any such previously-locked resources prior to initiating the renewed attempt to perform the operation or set of operations.

19. The system of claim 15 , wherein the information associated with the attempt to lock the resource is stored in a data structure comprising a lock vector.

20. The system of claim 15 , wherein the processor is configured to repeat attempting to lock, storing in memory, and initiating a renewed attempt until the operation or set of operations has been completed.

Assignments (6)
CHANGE OF NAME Recorded Sep 22, 2015
From: ALCATEL
To: ALCATEL LUCENT
Reel/Frame 036647/0231 →
CHANGE OF NAME Recorded Aug 5, 2009
From: ALCATEL USA SOURCING, L.P.
To: ALCATEL USA SOURCING, INC.
Reel/Frame 023053/0277 →
MERGER Recorded Aug 5, 2009
From: ALCATEL USA SOURCING, INC.
To: ALCATEL-LUCENT USA INC.
Reel/Frame 023053/0303 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2006
From: ALCATEL IP NETWORKS
To: ALCATEL USA MARKETING, INC.
Reel/Frame 018462/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2006
From: ALCATEL USA MARKETING, INC.
To: ALCATEL USA SOURCING, L.P.
Reel/Frame 018462/0753 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2004
From: DVORKIN, MICHAEL; WEINSTEIN, JAY; KRASNYANSKY, SERGE
To: ALCATEL
Reel/Frame 016032/0326 →
Continuity (2)
Provisional Application 6052915800 · Dec 12, 2003
Related Publication 20050131899A1 · Jun 16, 2005