Patent ID: 8271448
Filing Date: 2012-09-18
Classification: G06F

Abstract:
1. A transaction processing system comprising: a processor to execute computer program instructions; a memory to store the computer program instructions executable by the processor; and the computer program instructions stored in the memory and executable to implement: a coordinator receiving a commit or abort request for a transaction and performing a two-phase commit protocol on behalf of the transaction; and one unit for transaction logging writing log information pertaining to a transaction for use upon recovery of the transaction from a failure in which a result of the two-phase commit protocol for the transaction is incomplete or undetermined, the one unit for transaction logging comprising: a strategy pattern interchangeably encapsulating all of a plurality of log presumption strategies used by the one unit for transaction logging to create statically or dynamically pluggable presumptions about the recovery semantics of the two-phase commit protocol, wherein the plurality of interchangeably encapsulated log presumption strategies includes a strategy that proceeds as though the result of the two-phase commit protocol for the transaction is that the transaction was aborted, a strategy that proceeds as though the result of the two-phase commit protocol for the transaction is that the transaction was committed, and a strategy that obtains further information relating to the result of the two-phase commit protocol for the transaction before proceeding; wherein the strategy pattern is operable to select a log presumption strategy from among the plurality of log presumption strategies and the transaction processing system further comprises a transaction logging unit writing to a log information relating to the transaction based upon the selected log presumption strategy; and wherein if the selected log presumption strategy is the strategy that obtains further information relating to the result of the two-phase commit protocol for the transaction before proceeding, the transaction logging unit writes to a log information relating to the transaction when the transaction is created, writes to a log information relating to the transaction after a state change of the two-phase protocol, and purging the information relating to the transaction from the log when the transaction is completed.