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 indentifying 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 indentifying 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. 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, the distributed system natively supporting active-active failover, a method for hosting a failover controller that facilitates active-passive failover for an application, the method comprising:
-
an act of loading one or more active-active modules for one or more active-active applications on an instance of a virtual machine running in the distributed system; an act of loading an active-passive failover controller on the instance of the virtual machine, the active-passive failover controller loaded as a stateless module having active-active failover within the distributed system, the active-passive failover controller exposing a synchronization point to refresh status for instances of active-passive applications such that when an active instance fails an available passive instance can take over as a new active instance; an act of hosting a plurality of instances of an active-passive application in the active-passive failover controller, the plurality of instances including a currently active instance and one or more passive instances; an act of each of the plurality of instances calling the active-passive controller to refresh status; an act of the currently active instance failing; and an act of a passive instance becoming a new active instance based on refreshed statuses for the plurality of instances, the passive instance selected from among the one or more passive instances. - View Dependent Claims (14, 15, 16)
-
-
18. 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 plurality of instances of an active-passive module running in the distributed system, the plurality of instances including an active instance and one or more passive instances, a virtual name assigned to the active-passive module within the distributed system, a method for indicating the location of the active instance within the distributed system, the method comprising:
-
an act of a passive instance, from among the one or more passive instances, becoming a currently active instance due to the active instance failing; an act of the currently active instance registering a network address for the virtual name to a host file refreshing framework, the host file refreshing framework periodically flushing out mappings from network addresses to virtual name registrations to modules within the distributed network that utilize a host file client for the host file refreshing framework; an act of the host file refreshing framework flushing the registration of the network address for the virtual name to one or more modules that utilize the host file client such that any of the one or more modules can use the registration to connect to the active-passive application; and an act of a module, from among the one or more modules, connecting to the passive-active application by using the virtual name to connect to the currently active instance.
-
-
18-1. The method as recited in claim 17, wherein the act of the host file refreshing framework flushing the registration of the network address for the virtual name to one or more modules comprising an act of flushing the registration of the network address for the virtual name to one or more modules in the cloud.
-
19. The method as recited in claim 17, wherein the act of an act of a module, from among the one or more modules, connecting to the passive-active application comprises an act of a cloud-based module connecting to the currently active instance.
-
20. The method as recited in claim 17, wherein the passive-active application is a scheduler.
Specification