IP Library Granted Patent US 7,209,990
Granted Patent B2
US 7,209,990 · App. 11/099,771 · Granted Apr 24, 2007

Maintain fairness of resource allocation in a multi-node environment

Assignee: Oracle International Corporation
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,209,990
App. No.
11/099,771
Granted
Apr 24, 2007
Kind
B2
Abstract

Locks are placed in a convert queue in a way that compensates for queue bias. Rather than always placing a remote lock in a queue at the tail, a remote lock can be placed further up in the queue, and possibly be interleaved with local locks. As a result, remote processes are granted locks more frequently and swiftly. Locks are placed in a convert queue according based on queue placement factors, which are factors accounted for when placing a lock in a queue.

Claims (50)

1. A method for managing locks in a multi-node system, comprising the steps of:

a master node receiving a request for a lock for a resource managed by the master node;

wherein the master node maintains a convert queue that holds locks for the resource that have not been granted;

wherein the master node maintains a granted queue that holds locks that are granted;

determining whether the request for a lock is from a remote node or a local process local to the master node;

the master node placing the lock within the convert queue based on a first set of one or more queue placement factors; and

wherein the first set of one or more queue placement factors include whether:

the lock request is from a remote node, and

a position of one or more local locks within the convert queue or the granted queue.

2. The method of claim 1 , wherein placing includes:

if the lock request is from a remote node, then:

determining whether there is a local lock in the granted queue; and

if there is a local lock in the granted queue, then placing a remote lock before a local lock in the convert queue.

3. The method of claim 2 , wherein placing a remote lock before a local lock in the convert queue includes:

placing the remote lock within a series of one or more remote locks based on a second set of queue placement factors that include one or more of the following factors:

a priority assigned to each node of a set of nodes, and

counts of how many locks have been granted to each node of said set of nodes.

4. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 3 .

5. The method of claim 2 , wherein placing includes:

if the lock request is from a remote node and if there is no local lock in the granted queue, then placing the remote lock after a first local lock in the convert queue and before a second local lock in the convert queue.

6. The method of claim 5 , wherein placing the remote lock after a first local lock in the convert queue and before a second local lock in the convert queue includes:

placing the remote lock within a series of one or more remote locks based on a second set of queue placement factors that include one or more of the following factors:

a priority assigned to each node of a set of nodes, and

counts of how many locks have been granted to each node of said set of nodes.

7. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 6 .

8. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 5 .

9. The method of claim 2 , wherein placing includes:

if the lock request is from a remote node and if there is no local lock in the granted queue, then placing a remote lock at the tail of the convert queue if there is no local lock in the convert queue.

10. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 9 .

11. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 2 .

12. The method of claim 1 , wherein placing includes:

if the lock request is from a remote node, then:

determining whether there is a local lock in the granted queue; and

if there is a local lock in the granted queue, then placing a remote lock at the tail of the convert queue when there is no local lock in the convert queue.

13. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 12 .

14. The method of claim 1 , wherein placing includes placing the lock at the tail of the convert queue if the lock request is from a local process.

15. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 14 .

16. The method of claim 1 ,

wherein the convert queue contains a remote lock from a remote node; and

wherein the remote node deferred transmitting a lock request from a remote process on the remote node in response to determining that said remote lock has not yet been relinquished.

17. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 16 .

18. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 1 .

19. A method for managing locks in a multi-node system, comprising the steps of:

a master node receiving a request for a lock for a resource managed by the master node;

wherein the master node maintains a convert queue that holds locks for the resource that have not been granted;

wherein the master node maintains a granted queue that holds granted locks;

the master node maintaining counts of how many locks have been granted to nodes;

the master node placing the lock within the convert queue based on a first set of one or more queue placement factors; and

wherein the set of one or more queue placement factors are based on the counts.

20. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 19 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2005
From: PRUSCINO, ANGELO; ZOLL, MICHAEL; CHAN, WILSON
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 016454/0724 →
Continuity (1)
Related Publication 20060224805A1 · Oct 5, 2006