Patent ID: 7725446

Claim:
A computer processor implemented method of committing transactions in a distributed system, the computer processor performing the following method steps: receiving a request from a client to commit a transaction at a coordinator node in the distributed system, the distributed system comprising one or more participant nodes; tracking a tail log sequence number for each of all other nodes in the distributed system, each tail log sequence number being associated with a last transaction log record flushed by a respective node, wherein at least one node of the all other nodes is a participant node, wherein tracking the tail log sequence number for each of the all other nodes in the distributed system comprises maintaining a first array comprising an entry for each of the all other nodes in the distributed system, each entry being configured to store the tail log sequence number for a respective other node; and updating the first array only when a new tail log sequence number is piggybacked on a message from one node of the all other nodes; determining a max log sequence number associated with the transaction for each of one or more participant nodes, each max log sequence number corresponding to a highest transaction log record required for the transaction at a respective participant node, wherein determining the max log sequence number associated with the transaction for each of the one or more participant nodes comprises creating a second array for the transaction, the second array comprising an entry for each of the one or more participant nodes, wherein each entry is configured to store the max log sequence number associated with the transaction for the respective participant node; updating the second array only when the max log sequence number associated with the transaction is piggybacked on a response from one node of the one or more participant nodes; comparing the first array to the second array to determine whether each of the one or more participant nodes has flushed the highest transaction log record required for the transaction at a respective participant node; and committing the transaction at the coordinator node when the tail log sequence number for each of the one or more participant nodes is greater than or equal to the max log sequence number associated with the transaction at the respective participant node.