Patent ID: 7617180

Claim:
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.