Patent ID: 7028219

Claim:
A method of performing a transaction in a processing cluster having a plurality of processing units, one of the processing units hosting a transaction monitor, at least one processing unit hosting a resource manager, each of the processing units including a CPU and volatile storage and having access to stable storage, the method comprising: beginning a transaction by the transaction monitor, and performing the following steps if no processing unit failure occurs: registering one or more resource managers to participate in the transaction, the processing units hosting the participating resource managers being participating processing units; performing work required by the transaction by the one or more participating resource managers, including obtaining any locks needed by the transaction; upon completion of the transaction work by the participating resource managers, performing a phase 1 operation in which a flush request is broadcast to each participating processing unit, the flush request instructing each participating processing unit to send a response indicating that information in volatile storage is flushed to stable storage; upon completion of the phase 1 operation, requesting a phase 2 operation by broadcasting a lock-release request to each participating processing unit, except the processing unit hosting the transaction monitor; releasing any locks acquired for the transaction while performing work required by the transaction in response to the phase 2 request; and after releasing all locks acquired for the transaction, informing the transaction monitor that phase 2 is completed; and wherein if a failure occurs during a phase 2 operation, requesting a phase 2 operation in which a release-lock request is broadcast to each processing unit, except the processing unit hosting the transaction monitor; releasing any locks acquired for the transaction while performing work required by the transaction; and after releasing all locks acquired for the transaction, informing the transaction monitor that the transaction is completed.