Distributed transactional recovery system and method
First Claim
1. A system for transaction recovery in a distributed computing environment, comprising:
- a transaction log server that stores a shared transaction log having a plurality of portions including a first portion, a second portion and a third portion;
a plurality of application servers that implements a distributed transaction application and that accesses the shared transaction log when performing a transaction using the distributed transaction application, wherein the plurality of application servers includes a first application server, a second application server and a third application server, wherein the first application server accesses the first portion, the second application server accesses the second portion, and the third application server accesses the third portion; and
a plurality of resource servers that stores data and that operates with the plurality of application servers to access the data according to the transaction,wherein the plurality of application servers, the plurality of resource servers, and the transaction log server are implemented by a plurality of hardware devices that are connected via a network,wherein an inconsistency appears in the data stored by the plurality of resource servers when the first application server becomes a failed application server,wherein the second application server and the third application server compete for responsibility of the first portion when the first application server becomes the failed application server,wherein, as a result of competing, one of the second application server and the third application server assumes responsibility for the first portion to rollback the inconsistency in the data,wherein when the first application server becomes a failed application server, the transaction log server sets a flag in each of the second application server and the third application server,wherein the flag in each of the second application server and the third application server controls the second application server and the third application server competing for responsibility of the first portion,wherein the second application server and the third application server each have a pending transaction list, wherein the second application server and the third application server each loop through their respective pending transaction list, and wherein the second application server and the third application server compete according to a result of each looping through their respective pending transaction list, andwherein the second application server of the plurality of application servers comprises a pending transaction list processor that accesses the second portion of the shared transaction log corresponding to the second application server, and that accesses the first portion of the shared transaction log that was previously accessed by the failed application server.
2 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment the present invention includes a system for transaction recovery in a distributed computing environment. The system includes a transaction log server, application servers, and resource servers. The transaction log server stores a shared transaction log. The application servers implement a distributed transaction application and accesses the shared transaction log when performing a transaction using the distributed transaction application. The resource servers store data and that operate with the application servers to access the data according to the transaction. If one of the application servers fails, another application server assumes responsibility for a portion of the shared transaction log that was previously accessed by the failed application server.
9 Citations
19 Claims
-
1. A system for transaction recovery in a distributed computing environment, comprising:
-
a transaction log server that stores a shared transaction log having a plurality of portions including a first portion, a second portion and a third portion; a plurality of application servers that implements a distributed transaction application and that accesses the shared transaction log when performing a transaction using the distributed transaction application, wherein the plurality of application servers includes a first application server, a second application server and a third application server, wherein the first application server accesses the first portion, the second application server accesses the second portion, and the third application server accesses the third portion; and a plurality of resource servers that stores data and that operates with the plurality of application servers to access the data according to the transaction, wherein the plurality of application servers, the plurality of resource servers, and the transaction log server are implemented by a plurality of hardware devices that are connected via a network, wherein an inconsistency appears in the data stored by the plurality of resource servers when the first application server becomes a failed application server, wherein the second application server and the third application server compete for responsibility of the first portion when the first application server becomes the failed application server, wherein, as a result of competing, one of the second application server and the third application server assumes responsibility for the first portion to rollback the inconsistency in the data, wherein when the first application server becomes a failed application server, the transaction log server sets a flag in each of the second application server and the third application server, wherein the flag in each of the second application server and the third application server controls the second application server and the third application server competing for responsibility of the first portion, wherein the second application server and the third application server each have a pending transaction list, wherein the second application server and the third application server each loop through their respective pending transaction list, and wherein the second application server and the third application server compete according to a result of each looping through their respective pending transaction list, and wherein the second application server of the plurality of application servers comprises a pending transaction list processor that accesses the second portion of the shared transaction log corresponding to the second application server, and that accesses the first portion of the shared transaction log that was previously accessed by the failed application server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 16, 17)
-
-
8. A computer-implemented method of transaction recovery in a distributed computing environment, comprising:
-
storing, with a transaction log server, a shared transaction log having a plurality of portions including a first portion, a second portion and a third portion; implementing, with a plurality of application servers, a distributed transaction application that accesses the shared transaction log when performing a transaction using the distributed transaction application, wherein the plurality of application servers includes a first application server, a second application server and a third application server, wherein the first application server accesses the first portion, the second application server accesses the second portion, and the third application server accesses the third portion; and storing, with a plurality of resource servers, data, wherein the plurality of resource servers operates with the plurality of application servers to access the data according to the transaction, wherein the plurality of application servers, the plurality of resource servers, and the transaction log server are implemented by a plurality of hardware devices that are connected via a network, wherein an inconsistency appears in the data stored by the plurality of resource servers when the first application server becomes a failed application server, wherein the second application server and the third application server compete for responsibility of the first portion when the first application server becomes the failed application server, wherein, as a result of competing, one of the second application server and the third application server assumes responsibility for the first portion to rollback the inconsistency in the data, wherein when the first application server becomes a failed application server, the transaction log server sets a flag in each of the second application server and the third application server, wherein the flag in each of the second application server and the third application server controls the second application server and the third application server competing for responsibility of the first portion, wherein the second application server and the third application server each have a pending transaction list, wherein the second application server and the third application server each loop through their respective pending transaction list, and wherein the second application server and the third application server compete according to a result of each looping through their respective pending transaction list, and wherein the second application server of the plurality of application servers comprises a pending transaction list processor that accesses the second portion of the shared transaction log corresponding to the second application server, and that accesses the first portion of the shared transaction log that was previously accessed by the failed application server. - View Dependent Claims (9, 10, 11, 18)
-
-
12. A computer program embodied on a plurality of non-transitory storage media, comprising:
-
a shared transaction log, stored by a transaction log server, wherein the shared transaction log includes a plurality of portions having a first portion, a second portion and a third portion; a distributed transaction application, stored by a plurality of application servers, that accesses the shared transaction log when performing a transaction, wherein the plurality of application servers includes a first application server, a second application server and a third application server, wherein the first application server accesses the first portion, the second application server accesses the second portion, and the third application server accesses the third portion; and data, stored by a plurality of resource servers, that is accessed by the distributed transaction application according to the transaction, wherein the plurality of application servers, the plurality of resource servers, and the transaction log server are implemented by a plurality of hardware devices that are connected via a network, wherein an inconsistency appears in the data stored by the plurality of resource servers when the first application server becomes a failed application server, wherein the second application server and the third application server compete for responsibility of the first portion when the first application server becomes the failed application server, wherein, as a result of competing, one of the second application server and the third application server assumes responsibility for the first portion to rollback the inconsistency in the data, wherein when the first application server becomes a failed application server, the transaction log server sets a flag in each of the second application server and the third application server, wherein the flag in each of the second application server and the third application server controls the second application server and the third application server competing for responsibility of the first portion, wherein the second application server and the third application server each have a pending transaction list, wherein the second application server and the third application server each loop through their respective pending transaction list, and wherein the second application server and the third application server compete according to a result of each looping through their respective pending transaction list, and wherein the second application server of the plurality of application servers comprises a pending transaction list processor that accesses the second portion of the shared transaction log corresponding to the second application server, and that accesses the first portion of the shared transaction log that was previously accessed by the failed application server. - View Dependent Claims (13, 14, 15, 19)
-
Specification