Transparent high availability for stateful services
First Claim
1. A computer system for providing high availability, comprising:
- a processor; and
a storage device coupled to the processor and storing instructions that when executed by the processor cause the processor to perform a method, the method comprising;
in response to detecting a failure associated with an object, identifying, by a first high availability module, a pending update which indicates a modified state for a snapshot object, wherein the modified state is different from a state for a corresponding standby object, wherein the snapshot object is a snapshot of the object, and wherein the standby object a standby for the object and is registered with the first high availability module;
in response to determining that the standby object is a dynamic object, allocating memory for the standby object from a local memory pool based on a type of the standby object;
in response to determining that the standby object is not a dynamic object, pairing the standby object with a local object that corresponds to the standby object;
determining whether the pending update is committed in the snapshot object;
in response to the pending update being committed in the snapshot object, processing the pending update for the standby object; and
in response to the pending update being uncommitted in the snapshot object, refraining from processing the pending update for the standby object.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system. The system includes a high availability module and a data transformation module. During operation, the high availability module identifies a modified object belonging to an application in a second system. A modification to the modified object is associated with a transaction identifier. The high availability module also identifies a local object corresponding to the modified object associated with a standby application corresponding to the application in the second system. The data transformation module automatically transforms the value of the modified object to a value assignable to the local object, including pointer conversion to point to equivalent object of the second system. The high availability module updates the current value of the local object with the transformed value.
-
Citations
16 Claims
-
1. A computer system for providing high availability, comprising:
- a processor; and
a storage device coupled to the processor and storing instructions that when executed by the processor cause the processor to perform a method, the method comprising; in response to detecting a failure associated with an object, identifying, by a first high availability module, a pending update which indicates a modified state for a snapshot object, wherein the modified state is different from a state for a corresponding standby object, wherein the snapshot object is a snapshot of the object, and wherein the standby object a standby for the object and is registered with the first high availability module; in response to determining that the standby object is a dynamic object, allocating memory for the standby object from a local memory pool based on a type of the standby object; in response to determining that the standby object is not a dynamic object, pairing the standby object with a local object that corresponds to the standby object; determining whether the pending update is committed in the snapshot object; in response to the pending update being committed in the snapshot object, processing the pending update for the standby object; and in response to the pending update being uncommitted in the snapshot object, refraining from processing the pending update for the standby object. - View Dependent Claims (2, 3, 4, 5, 6, 7)
- a processor; and
-
8. A computer-implemented method, comprising
in response to detecting a failure associated with an object, identifying, by a first high availability module, a pending update which indicates a modified state for a snapshot object, wherein the modified state that is different from a state for a corresponding standby object, wherein the snapshot object is a snapshot of the object, and wherein the standby object is a standby for the object and registered with the first high availability module; -
in response to determining that the standby object is a dynamic object, allocating memory for the standby object from a local memory pool based on a type of the standby object; in response to determining that the standby object is not a dynamic object, pairing the standby object with a local object that corresponds to the standby object; determining whether the pending update is committed in the snapshot object; in response to the pending update being committed in the snapshot object, processing the pending update for the standby object; and in response to the pending update being uncommitted in the snapshot object, refraining from processing the pending update for the standby object. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:
-
in response to detecting a failure associated with an object, identifying, by a first high availability module of a system, a pending update which indicates a modified state for a snapshot object, wherein the modified state that is different from a state for a corresponding standby object, wherein the snapshot object is a snapshot of the object, and wherein the standby object is a standby for the object and registered with the first high availability module; in response to determining that the standby object is a dynamic object, allocating memory for the standby object from a local memory pool based on a type of the standby object; in response to determining that the standby object is not a dynamic object, pairing the standby object with a local object that corresponds to the standby object; determining whether the pending update is committed in the snapshot object; in response to the pending update being committed in the snapshot object, processing the pending update for the standby object; and in response to the pending update being uncommitted in the snapshot object, refraining from processing the pending update for the standby object. - View Dependent Claims (16)
-
Specification