Patent ID: 7533080

Claim:
In a computing system, the computing system comprising a processing device, the computing system including a plurality of transaction managers, wherein at least some of the transaction managers are organized into a commit tree to manage transactions, the transactions including a set of operations that are all performed if a transaction is completed or all aborted if a transaction is not completed, the transaction managers storing transaction result information to allow recovery of a transaction in case of system failure, a method of minimizing at least one of storage overhead or inter transaction manager message traffic by minimizing the number of transaction managers used to coordinate transactions, the method comprising the following acts: (a) identifying a set of transaction managers; (b) identifying a first transaction manager from among the set of transaction managers; (c) identifying a second transaction manager from among the set of transaction managers, wherein the second transaction manager, when identified, is not part of the same commit tree as the first transaction manager; (d) determining that the second transaction manager is always available when the first transaction manager is available; and (e) redirecting messages from a subordinate resource manager associated with the first transaction manager to the second transaction manager based on the determination that the second transaction manager is always available when the first transaction manager is available, wherein redirecting is performed at a dispatch layer disposed between transaction managers and their subordinate resource managers, and wherein the dispatch layer understands which enlistment of a resource manager is associated with which transaction manager such that messages from the subordinate resource manager associated with the first transaction manager can be sent to the second transaction manager for a given transaction without first sending a message to the first transaction manager.