IP Library Granted Patent US 7,617,180
Granted Patent B1
US 7,617,180 · App. 11/146,296 · Granted Nov 10, 2009

Efficient lock management

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,617,180
App. No.
11/146,296
Granted
Nov 10, 2009
Kind
B1
Abstract

A current transaction accessing a data object is disclosed. Accessing could include determining that previous transaction information about a previous transaction is associated with the data object, determining that the previous transaction no longer needs a lock on the data object, and associating current transaction information about the current transaction with the data object. Accessing could include determining that an embedded lock is active, copying the embedded lock to a shared lock region, invalidating the embedded lock, and queuing the current transaction in the shared lock region.

Claims (57)

1. A method of a current transaction accessing a data object, including:

determining whether an embedded lock on the data object is active based at least in part on locking information embedded in the data object, wherein the locking information includes previous transaction information about a previous transaction associated with the data object;

in the event that an embedded lock on the data object is active:

determining whether a previous transaction associated with the locking information is committed as of the start of the current transaction;

and in the event that the previous transaction associated with the locking information is not committed as of the start of the current transaction:

determining whether the previous transaction has a lock on the data object;

in the event that the previous transaction does not have a lock on the data object, embedding current transaction information in the data object;

and in the event that the previous transaction does have a lock on the data object, placing the embedded lock in a shared lock region and invalidating the embedded lock;

and in the event that an embedded lock on the data object is not active, determining whether a lock is associated with the data object, including by:

accessing, in an object list in a shared lock region, an item corresponding to the data object;

determining whether the item includes any transactions;

in the event that the item includes a transaction, determining that a lock is associated with the data object and queuing the lock in the shared lock region;

and in the event that the item does not include any transactions, determining that a lock is not associated with the data object and embedding current transaction information in the data object.

2. A method as recited in claim 1 , further including completing the previous transaction without releasing the lock.

3. A method as recited in claim 1 , wherein determining that the previous transaction no longer needs a lock on the data object includes determining that the previous transaction is complete.

4. A method as recited in claim 1 , further including acquiring a buffer latch associated with the data object.

5. A method as recited in claim 1 , wherein the previous transaction information includes a transaction ID or a log sequence number.

6. A method as recited in claim 1 , wherein the current transaction information includes a transaction ID or a log sequence number.

7. A method as recited in claim 1 , wherein determining that the previous transaction is no longer locking the data object is based on a transaction ID or a log sequence number.

8. A method as recited in claim 1 , wherein the previous transaction information is stored in a header associated with the data object.

9. A method as recited in claim 1 , wherein associating includes storing the current transaction information in a header associated with the data object.

10. A method as recited in claim 1 , wherein determining that previous transaction information about a previous transaction is associated with the data object includes checking an indicator of whether a lock on the data object is embedded.

11. A method as recited in claim 1 , wherein determining that the previous transaction is no longer locking the data object includes checking a snapshot that was acquired at the start of the current transaction.

12. A method as recited in claim 1 , wherein determining that the previous transaction is no longer locking the data object includes checking a shared lock region.

13. A method as recited in claim 1 , wherein the locking information embedded in the data object is in a header in the data object.

14. A method as recited in claim 1 , wherein embedding current transaction information in the data object includes writing the current transaction information to a header in the data object.

15. A method as recited in claim 1 ,

wherein the shared lock region includes a list of all objects having at least one lock.

16. A method as recited in claim 1 , further including, in the event that the previous transaction associated with the locking information is committed as of the start of the current transaction, embedding current transaction information in the data object.

17. A system for a current transaction accessing a data object, including:

a processor configured to:

determine whether an embedded lock on the data object is active based at least in part on locking information embedded in the data object, wherein the locking information includes-previous transaction information about a previous transaction associated with the data object;

in the event that an embedded lock on the data object is active:

determine whether a previous transaction associated with the locking information is committed as of the start of the current transaction;

and in the event that the previous transaction associated with the locking information is not committed as of the start of the current transaction:

determine whether the previous transaction has a lock on the data object;

in the event that the previous transaction does not have a lock on the data object, embed current transaction information in the data object;

and in the event that the previous transaction does have a lock on the data object, place the embedded lock in a shared lock region and invalidate the embedded lock;

and in the event that an embedded lock on the data object is not active, determining whether a lock is associated with the data object, including by: accessing in an object list in a shared lock region an item corresponding to the data object; determining whether the item includes any transactions;

in the event that the item includes a transaction, determining that a lock is associated with the data object and queuing the lock in the shared lock region;

and in the event that the item does not include any transactions, determining that a lock is not associated with the data object and embedding current transaction information in the data object;

and a memory coupled with the processor wherein the memory provides the processor with instructions.

18. A system as recited in claim 17 , wherein the processor is further configured to complete the previous transaction without releasing the lock.

19. A computer program product for a current transaction accessing a data object, the computer program product being embodied in a computer readable medium and comprising computer instructions for:

determining whether an embedded lock on the data object is active based at least in part on locking information embedded in the data object, wherein the locking information includes previous transaction information about a previous transaction associated with the data object;

in the event that an embedded lock on the data object is active:

determining whether a previous transaction associated with the locking information is committed as of the start of the current transaction;

and in the event that the previous transaction associated with the locking information is not committed as of the start of the current transaction:

determining whether the previous transaction has a lock on the data object;

in the event that the previous transaction does not have a lock on the data object, embedding current transaction information in the data object;

and in the event that the previous transaction does have a lock on the data object, placing the embedded lock in a shared lock region and invalidating the embedded lock;

and in the event that an embedded lock on the data object is not active, determining whether a lock is associated with the data object, including by:

accessing, in an object list in a shared lock region, an item corresponding to the data object;

determining whether the item includes any transactions;

in the event that the item includes a transaction, determining that a lock is associated with the data object and queuing the lock in the shared lock region;

and in the event that the item does not include any transactions, determining that a lock is not associated with the data object and embedding current transaction information in the data object.

20. A computer program product as recited in claim 19 , the computer program product further comprising computer instructions for completing the previous transaction without releasing the lock.

Assignments (6)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS (RELEASES RF 040575/0549) Recorded Dec 3, 2020
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: INFOBLOX INC.
Reel/Frame 054585/0914 →
FIRST LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0317 →
SECOND LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0331 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (RELEASES RF 040579/0302) Recorded Oct 23, 2019
From: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
To: INFOBLOX, INC.
Reel/Frame 050809/0980 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 8, 2016
From: INFOBLOX INC.
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 040579/0302 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 7, 2016
From: INFOBLOX INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040575/0549 →