← Back to Patent Explorer
US6360331B2 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system for transparently failing over application configuration information in a server cluster

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-04-17
•
Granted: 2002-03-19
•
Expires: 2018-04-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for transparently failing over a legacy application from a first system to a second system of a server cluster by tracking and checkpointing changes to application configuration information stored in a system's local registry. When an application running on the first system makes a change to the application configuration information in a subtree of the registry, the change is detected and a snapshot of the subtree's data is taken. The snapshot is written to a storage device shared by systems of the cluster, such as a quorum disk. When the application is failed over to a second system, the snapshot for that application is retrieved from the quorum disk and written to the registry of the second system in a corresponding subtree. The application is then run on the second system using the most-recent application configuration information as modified by the other system in the cluster.

Inventors

  • 👤 John D. Vert
  • 👤 Sunita Shrivastava

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 17:06
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/16; G06F11/1658; G06F11/1662; H; H04; H04L; H04L1/00; H04L1/22; G06F11/20; G06F11/202; G06F11/2023; G06F11/203; G06F11/2038

Claims Analysis

Total Claims: 37
Claim 1
Independent Claim 142 words
In a server cluster including at least two server systems, a method of failing over a non-cluster-aware application from a first system to a second system of the cluster, comprising, locally maintaining application configuration information for the non-cluster-aware application on the first and second systems, the application configuration information separately maintained and used by an instance of the application executing on each system to determine at least part of an execution environment, running an instance of the non-cluster-aware application on the first system, the non-cluster-aware application instance making a change to the application configuration information, detecting the change to the application configuration information on the first system, and, in response to the change, making data representative of the change available to the second system, and running another instance of the non-cluster-aware application on the second system using the data made available thereto.
Claim 2
Dependent Claim 142 words
In a server cluster including at least two server systems, a method of failing over a non-cluster-aware application from a first system to a second system of the cluster, comprising, locally maintaining application configuration information for the non-cluster-aware application on the first and second systems, the application configuration information separately maintained and used by an instance of the application executing on each system to determine at least part of an execution environment, running an instance of the non-cluster-aware application on the first system, the non-cluster-aware application instance making a change to the application configuration information, detecting the change to the application configuration information on the first system, and, in response to the change, making data representative of the change available to the second system, and running another instance of the non-cluster-aware application on the second system using the data made available thereto.
Claim 3
Dependent Claim 49 words
The method of claim 1 wherein the application configuration information is maintained in a registry of the first system, and wherein detecting a change to the application configuration information includes monitoring for a change to data in at least one subtree associated with the non-cluster-aware application in the registry.
Claim 4
Dependent Claim 32 words
The method of claim 2 wherein making data representative of the change available to the second system includes making a copy of the data in each subtree having a change detected thereto.
Claim 5
Dependent Claim 31 words
The method of claim 1 wherein making data representative of the change available to the second system comprises writing the data to a storage device shared by systems of the cluster.
Claim 6
Dependent Claim 34 words
The method of claim 4 wherein making data representative of the change available to the second system further comprises retrieving the data from the storage device and passing the data to the second system.
Claim 7
Dependent Claim 30 words
The method of claim 1 wherein making data representative of the change available to other systems in the cluster comprises storing the data in a quorum device of the cluster.
Claim 8
Dependent Claim 34 words
The method of claim 1 wherein making data representative of the change available to other systems in the cluster comprises the step communicating the data to at least one other system in the cluster.
Claim 9
Dependent Claim 80 words
The method of claim 1 wherein the first system and the second system each locally maintain application configuration information for the non-cluster-aware application in a registry, and wherein making data representative of the change available to the second system comprises, reading subtree data of the registry in the first system, writing the subtree data to a storage device shared by systems in the cluster, and retrieving the subtree data from the storage device to the registry of the second system.
Claim 10
Dependent Claim 35 words
The method of claim 1 wherein the non-cluster-aware application has a list of subtrees associated therewith, and further comprising registering each of the subtrees in the list with a notification mechanism for detecting changes thereto.
Claim 11
Dependent Claim 18 words
The method of claim 1 further comprising terminating the instance of the non-cluster-aware application on the first system.
Claim 12
Dependent Claim 82 words
The method of claim 1 wherein the cluster includes a third system, and further comprising, locally maintaining application configuration information for another application on the first system, running an instance of the other application on the first system, detecting a change to the other application configuration information, and, in response to the change, making data representative of the change available to the third system, and running another instance of the other application on the third system using the data made available thereto.
Claim 13
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the method of claim 1 .
Claim 14
Dependent Claim 215 words
In a server cluster including at least two server systems, a system for failing over a non-cluster-aware application from a first system to a second system of the cluster, comprising, a local registry on each of the first and second systems that are not replicas of one another, each local registry configured to store application configuration information of the non-cluster-aware application, the application configuration information used to determine at least part of an execution environment for instances of the application executing on each system, a storage device shared by the first and second systems, a notification mechanism in the first system configured to detect a change made by an instance of the application executing on the first system to a subtree in the registry associated with the non-cluster-aware application and to provide a notification in response thereto, a snapshot mechanism in the first system responsive to the notification and configured to read the registry and save subtree data to the storage device, and a restore mechanism in the second system configured to retrieve the subtree data from the storage device and to update the registry of the second system therewith such that the execution environment for an instance of the application executing on the second system corresponds to the execution environment of the first system.
Claim 15
Dependent Claim 215 words
In a server cluster including at least two server systems, a system for failing over a non-cluster-aware application from a first system to a second system of the cluster, comprising, a local registry on each of the first and second systems that are not replicas of one another, each local registry configured to store application configuration information of the non-cluster-aware application, the application configuration information used to determine at least part of an execution environment for instances of the application executing on each system, a storage device shared by the first and second systems, a notification mechanism in the first system configured to detect a change made by an instance of the application executing on the first system to a subtree in the registry associated with the non-cluster-aware application and to provide a notification in response thereto, a snapshot mechanism in the first system responsive to the notification and configured to read the registry and save subtree data to the storage device, and a restore mechanism in the second system configured to retrieve the subtree data from the storage device and to update the registry of the second system therewith such that the execution environment for an instance of the application executing on the second system corresponds to the execution environment of the first system.
Claim 16
Dependent Claim 33 words
The system of claim 13 wherein the non-cluster-aware application has a list of subtrees associated therewith, and wherein the notification mechanism monitors each of the subtrees in the list for detecting changes thereto.
Claim 17
Dependent Claim 16 words
The system of claim 14 wherein the list of subtrees is stored on the storage device.
Claim 18
Dependent Claim 20 words
The system of claim 14 wherein the list of subtrees is stored in a cluster registry on the storage device.
Claim 19
Dependent Claim 24 words
The system of claim 13 wherein the subtree data includes a name representative of a key in the registry and at least one value.
Claim 20
Dependent Claim 184 words
In a server cluster, a method of using application configuration information with an application, comprising: locally maintaining application configuration information for the application on a system of the cluster, the application configuration information accessed by the application to determine at least part of an execution environment for the application when executed on the system; determining if a cluster checkpoint of data corresponding to the application configuration information for the application is present on a storage device shared by systems in the cluster; and if the cluster checkpoint exists, updating the application configuration information of the local system with the data in the storage device, running the application with the updated application configuration information, and updating the cluster checkpoint on the storage device to correspond to local changes made by the application to the application configuration information; and if the checkpoint does not exist, creating a cluster checkpoint on the storage device, running the application with the locally maintained application configuration information, and updating the cluster checkpoint on the storage device to correspond to local changes made by the application to the application configuration information.
Claim 21
Dependent Claim 184 words
In a server cluster, a method of using application configuration information with an application, comprising: locally maintaining application configuration information for the application on a system of the cluster, the application configuration information accessed by the application to determine at least part of an execution environment for the application when executed on the system; determining if a cluster checkpoint of data corresponding to the application configuration information for the application is present on a storage device shared by systems in the cluster; and if the cluster checkpoint exists, updating the application configuration information of the local system with the data in the storage device, running the application with the updated application configuration information, and updating the cluster checkpoint on the storage device to correspond to local changes made by the application to the application configuration information; and if the checkpoint does not exist, creating a cluster checkpoint on the storage device, running the application with the locally maintained application configuration information, and updating the cluster checkpoint on the storage device to correspond to local changes made by the application to the application configuration information.
Claim 22
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the method of claim 18 .
Claim 23
Dependent Claim 45 words
The method of claim 18 wherein the application configuration information is maintained in a local registry of the system, and further comprising detecting a change to the application configuration information by monitoring for a change to data of at least one subtree in the registry.
Claim 24
Dependent Claim 239 words
In a server cluster including at least two server systems that each have a local registry that is not a replica of the other, a method of failing over a non-cluster-aware application from a first system to a second system of the cluster, comprising, maintaining application configuration information for the non-cluster-aware application in the local registry of the first system, the application configuration information being used to determine at least part of an execution environment for an instance of the non-cluster-aware application when executed on the first system, running an instance of the non-cluster-aware application on the first system, detecting a change made by the application instance to the application configuration information in a subtree of the local registry, and, in response to the change, writing data of that subtree as subtree data to a storage device shared by systems of the cluster, terminating the instance of the non-cluster-aware application on the first system, reading the subtree data from the storage device, modifying the local registry of the second system with the subtree data read from the storage device, and running another instance of the non-cluster-aware application on the second system using the application configuration information stored in the local registry of the second system, including accessing the application configuration at the other instance such that an execution environment for the instance of the application executing on the second system corresponds to the execution environment of the first system.
Claim 25
Dependent Claim 239 words
In a server cluster including at least two server systems that each have a local registry that is not a replica of the other, a method of failing over a non-cluster-aware application from a first system to a second system of the cluster, comprising, maintaining application configuration information for the non-cluster-aware application in the local registry of the first system, the application configuration information being used to determine at least part of an execution environment for an instance of the non-cluster-aware application when executed on the first system, running an instance of the non-cluster-aware application on the first system, detecting a change made by the application instance to the application configuration information in a subtree of the local registry, and, in response to the change, writing data of that subtree as subtree data to a storage device shared by systems of the cluster, terminating the instance of the non-cluster-aware application on the first system, reading the subtree data from the storage device, modifying the local registry of the second system with the subtree data read from the storage device, and running another instance of the non-cluster-aware application on the second system using the application configuration information stored in the local registry of the second system, including accessing the application configuration at the other instance such that an execution environment for the instance of the application executing on the second system corresponds to the execution environment of the first system.
Claim 26
Dependent Claim 35 words
The method of claim 20 wherein the non-cluster-aware application has a list of subtrees associated therewith, and further comprising registering each of the subtrees in the list with a notification mechanism for detecting changes thereto.
Claim 27
Dependent Claim 171 words
The method of claim 21 wherein the cluster includes a third system having a local registry that is not a replica of the local registry of the first system or of the local registry of the second system, and further comprising, maintaining other application configuration information for another application in the local registry of the first system, running an instance of the other application on the first system, detecting a change to the other application configuration information in a subtree of the local registry, and, in response to the change, writing data of that subtree as subtree data to a storage device shared by systems of the cluster, terminating the instance of the other application on the first system, reading the subtree data from the storage device, modifying the local registry of the third system with the subtree data read from the storage device, and running another instance of the other application on the third system using the other application configuration information stored in the local registry of the third system.
Claim 28
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the method of claim 21 .
Claim 29
Dependent Claim 134 words
In a server cluster having servers including a first system and a second system, a method, comprising, maintaining application configuration information for a non-cluster-aware application on the first system, the application configuration information being used by an instance of the non-cluster-aware application to determine at least part of an execution environment for that instance when executed on the first system, running the non-cluster-aware application on the first system making data representative of the application configuration information available to the second system, and running another instance of the non-cluster-aware application on the second system based on the data made available thereto, the other instance of the application accessing the data such that an execution environment for the instance of the application running on the second system corresponds to the execution environment of the first system.
Claim 30
Dependent Claim 134 words
In a server cluster having servers including a first system and a second system, a method, comprising, maintaining application configuration information for a non-cluster-aware application on the first system, the application configuration information being used by an instance of the non-cluster-aware application to determine at least part of an execution environment for that instance when executed on the first system, running the non-cluster-aware application on the first system making data representative of the application configuration information available to the second system, and running another instance of the non-cluster-aware application on the second system based on the data made available thereto, the other instance of the application accessing the data such that an execution environment for the instance of the application running on the second system corresponds to the execution environment of the first system.
Claim 31
Dependent Claim 19 words
The method of claim 25 further comprising, detecting a change to the application configuration information on the first system.
Claim 32
Dependent Claim 31 words
The method of claim 26 wherein making data representative of the application configuration information available to the second system includes making information corresponding to the change available to the second system.
Claim 33
Dependent Claim 17 words
The method of claim 25 wherein the application configuration information is locally maintained on the first system.
Claim 34
Dependent Claim 20 words
The method of claim 25 wherein the non-cluster-aware application is failed over from the first system to the second system.
Claim 35
Dependent Claim 33 words
The method of claim 25 wherein making data representative of the application configuration information available to the second system comprises writing the data to a storage device shared by systems of the cluster.
Claim 36
Dependent Claim 28 words
The method of claim 25 wherein making data representative of the application configuration information available to the second system includes updating application configuration information of the second system.
Claim 37
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the method of claim 25 .

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-03-18 2005-09-17 2006-03-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-03-18 2009-09-17 2010-03-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-03-18 2013-09-17 2014-03-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag