Synchronized failover for active-passive applications
First Claim
1. At a computer system including one or more processors and system memory, the computer system interoperating with one or more other computer systems in a distributed system, a data service running at the computer system, a plurality of instances of an active-passive application running within the distributed system, the data service storing data to control synchronization among plurality of instances of the active-passive application, the stored data including an active instance value and a last touch value, the active instance value identifying the currently active application instance for the active-passive application, the last touch value indicating a time when the currently active application instance last refreshed status, the data service exposing a status function to application instances for refreshing status for application instances, a method for refreshing the status for instances of an application, the method comprising:
- an act of receiving a call at the status function, the call originating from an instance of the active-passive application, the call including an identifier value identifying calling application instance;
an act of the status function refreshing the status of the calling application instance in response to the call, including;
an act of determining if the identifier value corresponds to the active instance value;
when the identifier value corresponds to the active instance value;
an act of changing the last touch value to a current time; and
an act of returning a status of active to the calling application instance;
when the identifier value does not correspond to the active instance value;
an act of determining if an idle timeout has been exceeded based on the last touch value;
when the idle time has been exceeded;
an act of storing the identifier value as the active instance value to make the calling application instance the currently active application instance;
an act of changing the last touch value to the current time; and
an act of returning a status of active to the calling application instance; and
when the idle time has not been exceeded;
an act of retuning a status of passive to the calling application instance.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for synchronized active-passive application failover. A data connection to a single data source can be used as a synchronizations point. Interoperating instance side and data source side algorithms coordinate to transition a passive instance to an active instance within a specified period of time when a prior active instance fails. An active-passive controller can operate as an active-active module within an active-active environment to provide active-passive failover to active-passive modules. Application virtual names can be mapped to application instance electronic addresses to assist external modules in establishing application connections to active-passive applications.
-
Citations
20 Claims
-
1. At a computer system including one or more processors and system memory, the computer system interoperating with one or more other computer systems in a distributed system, a data service running at the computer system, a plurality of instances of an active-passive application running within the distributed system, the data service storing data to control synchronization among plurality of instances of the active-passive application, the stored data including an active instance value and a last touch value, the active instance value identifying the currently active application instance for the active-passive application, the last touch value indicating a time when the currently active application instance last refreshed status, the data service exposing a status function to application instances for refreshing status for application instances, a method for refreshing the status for instances of an application, the method comprising:
-
an act of receiving a call at the status function, the call originating from an instance of the active-passive application, the call including an identifier value identifying calling application instance; an act of the status function refreshing the status of the calling application instance in response to the call, including; an act of determining if the identifier value corresponds to the active instance value; when the identifier value corresponds to the active instance value; an act of changing the last touch value to a current time; and an act of returning a status of active to the calling application instance; when the identifier value does not correspond to the active instance value; an act of determining if an idle timeout has been exceeded based on the last touch value; when the idle time has been exceeded; an act of storing the identifier value as the active instance value to make the calling application instance the currently active application instance; an act of changing the last touch value to the current time; and an act of returning a status of active to the calling application instance; and when the idle time has not been exceeded; an act of retuning a status of passive to the calling application instance. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer program product comprising one or more hardware storage devices having stored computer-executable instructions which, when executed by one or more processors, implement a method for refreshing a status for instances of an application in a computer system including the one or more processors and system memory, the computer system interoperating with one or more other computer systems in a distributed system, a data service running at the computer system, a plurality of instances of an active-passive application running within the distributed system, the data service storing data to control synchronization among plurality of instances of the active-passive application, the stored data including an active instance value and a last touch value, the active instance value identifying the currently active application instance for the active-passive application, the last touch value indicating a time when the currently active application instance last refreshed status, the data service exposing a status function to application instances for refreshing status for application instances, wherein the method includes:
-
an act of receiving a call at the status function, the call originating from an instance of the active-passive application, the call including an identifier value identifying calling application instance; an act of the status function refreshing the status of the calling application instance in response to the call, including; an act of determining if the identifier value corresponds to the active instance value; when the identifier value corresponds to the active instance value; an act of changing the last touch value to a current time; and an act of returning a status of active to the calling application instance; when the identifier value does not correspond to the active instance value; an act of determining if an idle timeout has been exceeded based on the last touch value; when the idle time has been exceeded; an act of storing the identifier value as the active instance value to make the calling application instance the currently active application instance; an act of changing the last touch value to the current time; and an act of returning a status of active to the calling application instance; and when the idle time has not been exceeded; an act of retuning a status of passive to the calling application instance. - View Dependent Claims (14, 15, 16)
-
-
17. A computing system comprising:
-
one or more processor; and one or more hardware storage devices having stored computer-executable instructions which, when executed by the one or more processors, implement a method for refreshing a status for instances of an application in the computer, the computer system interoperating with one or more other computer systems in a distributed system, a data service running at the computer system, a plurality of instances of an active-passive application running within the distributed system, the data service storing data to control synchronization among plurality of instances of the active-passive application, the stored data including an active instance value and a last touch value, the active instance value identifying the currently active application instance for the active-passive application, the last touch value indicating a time when the currently active application instance last refreshed status, the data service exposing a status function to application instances for refreshing status for application instances, wherein the method includes; an act of receiving a call at the status function, the call originating from an instance of the active-passive application, the call including an identifier value identifying calling application instance; an act of the status function refreshing the status of the calling application instance in response to the call, including; an act of determining if the identifier value corresponds to the active instance value; when the identifier value corresponds to the active instance value; an act of changing the last touch value to a current time; and an act of returning a status of active to the calling application instance; when the identifier value does not correspond to the active instance value; an act of determining if an idle timeout has been exceeded based on the last touch value; when the idle time has been exceeded;
an act of storing the identifier value as the active instance value to make the calling application instance the currently active application instance;
an act of changing the last touch value to the current time; and
an act of returning a status of active to the calling application instance; andwhen the idle time has not been exceeded;
an act of retuning a status of passive to the calling application instance. - View Dependent Claims (18, 19, 20)
-
Specification