Patent ID: 7996633

Claim:
An article comprising one or more tangible machine-readable storage media storing instructions operable to cause one or more machines to perform operations comprising: obtaining, before a transaction is committed, a first identifier that is unique but not necessarily ordered; associating the first identifier with the transaction; obtaining, after the first identifier has been obtained, a first sequence identifier that is both unique and ordered; associating the sequence identifier with the first identifier and with the transaction; preventing an operation from obtaining a second sequence identifier until after the first sequence identifier has been obtained by preventing other processes from accessing a source of sequence numbers by instituting an exclusive lock on the source of sequence numbers, the exclusive lock being a state of a corresponding data record in which read and write accesses are available only to a single process such that other exclusive locks or shared locks cannot be instituted for that data record, the source of sequence numbers configured to be accessed by multiple concurrent transactions when the multiple concurrent transactions issue overlapping shared locks, the shared locks preventing the executing process from issuing the exclusive lock; the transactions each comprising a group of related changes to a data store, the operation comprising one or more data processing activities in which the data store is used; wherein a granted and continued existence of an exclusive lock on a second resource stops requests for the shared locks on the source of sequence numbers; wherein an exclusive lock request for the second resource will not be granted when the source of sequence numbers is subject to an exclusive lock of another process; wherein an exclusive lock on the second resource is released after it is determined that an exclusive lock on the source of sequence numbers has been granted; wherein use of the second resource retards new shared lock requests while an exclusive lock request is waiting for release of pending shared lock requests.