# US 10,310,955 B2 · Application service-level configuration of dataloss failover

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,310,955 B2
- Document ID: US10310955B2
- Status: Granted
- Kind: B2
- Application number: 15/465,473
- Filed: 2017-03-21
- Published: 2018-09-27
- Granted: 2019-06-04
- Earliest claimed: 2017-03-21
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Alexander Evgenievich Nosov; Daniel L. Lemmond; Sandeep Lingam; Sameer Arun Verkhedkar; Tomas Talius
- Web page: https://patentgrep.com/patent/US10310955B2

## CPC

- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 11/1464: {for networked environments}
- G06F 11/203: {using migration}
- G06F 11/2056: {by mirroring}
- G06F 11/2066: {Optimisation of the communication load}
- G06F 11/2074: {Asynchronous techniques}
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Application service configuration of a timeframe for performing dataloss failover (failover that does not attempt full data replication to the secondary data store) from a primary data store to the secondary data store. A data-tier service, such as perhaps a database as a service (or DBaaS), could receive that configuration from the application service and automatically perform the dataloss failover as configured by the application service. This relieves the application service from having to manage the failover workflow while still allowing the application service to appropriately balance the timing of dataloss failover, which will depend on a very application-specific optimal balance between the negative effects of operational latency versus dataloss.

## Claims

### Claim 1

A computing system comprising:
one or more processors; and
one or more computer-readable media having thereon computer-executable instructions that are structured such that, when executed by the one or more processors, cause the computing system to perform a method for managing at a data-tier level failover for application services that each define their own failover policy at a data-tier level and that are each serviced at the data-tier level by a respective primary data store and a respective secondary data store used to back up the respective primary data store during a failover, the method comprising:
each application service communicating through an application program interface to a management component at the data-tier level, wherein said communication comprises defining a failover policy for each application service and wherein the failover policy is defined by:
a dataloss failover parameter that defines at what point in time, in case of at least a partial failure of a respective primary data store of a respective application service, the respective application service should perform a dataloss failover to a respective secondary data store of the respective application service; and
a dataloss-avoidant parameter that defines at what point in time, in the case of the at least partial failure of the respective primary data store of the respective application service, the respective application service should attempt a lossless failover to the respective secondary data store of the respective application service;
the management component storing at the data-tier level the dataloss failover parameter and the dataloss-avoidant parameter for each application service;
following a failure of the respective primary data store for a given application service, using the failover policy stored for the given application service to detect the following conditions:
first, whether, at the point in time defined by the dataloss-avoidant parameter, lossless recovery of the respective primary data store for the given application service has not been accomplished; and
second, whether, at the point in time defined by the dataloss failover parameter, the respective primary data store for the given application service is at least still partially unavailable to the given application service; and
if the first and second conditions are both detected, thereafter performing a dataloss failover from the respective primary data store to the respective secondary data store of the given application service.

### Claim 2 (depends on 1)

The computing system in accordance with claim 1, wherein each application service defines its own failover policy at the data-tier level so that each application service establishes its own way of balancing reduction in data loss on the one hand and reduction in latency on the other hand, during a failure of the primary data store for a respective application service.

### Claim 3 (depends on 2)

The computing system in accordance with claim 2, wherein the dataloss-avoidant parameter and the dataloss failover parameter of the failover policy for each application service are registered and stored by the management component at a data store maintained at the data-tier level during initiation of each application service.

### Claim 4 (depends on 3)

The computing system in accordance with claim 3, wherein the dataloss-avoidant parameter for one or more application services is updated at a point in time after initiation of the one or more applications services.

### Claim 5 (depends on 3)

The computing system in accordance with claim 3, wherein the dataloss failover parameter for one or more application services is updated at a point in time after initiation of the one or more applications services.

### Claim 6 (depends on 1)

The computing system in accordance with claim 1, wherein:
if the first condition is not detected, the failover policy of the given application service causes the system to operate by determining whether recovery of the primary data store for the given application service has occurred prior to the time defined by the dataloss-avoidant parameter and if so, not attempting a lossless failover to the respective secondary data store, and not performing a dataloss failover; and
if the first condition is detected but the second condition is not detected, the failover policy of the given application service causes the system to operate by determining whether recovery of the primary data store for the given application service has occurred prior to the time defined by the dataloss failover parameter and if so, not performing a dataloss failover.

### Claim 7 (depends on 1)

The computing system in accordance with claim 1, wherein the management component stores the failover policy for each application service in a data store maintained at the data-tier level.

### Claim 8 (depends on 1)

The computing system in accordance with claim 1, wherein one or more of the primary data stores or one or more of the secondary data stores reside on a storage device and node, and wherein the one or more primary data stores or one or more secondary data stores still provide separate data storage for corresponding application services as a result of security and isolation provided by the management component between data that belongs to each application service.

### Claim 9 (depends on 1)

The computing system in accordance with claim 1, wherein one or more of the primary data stores comprise a set of one or more databases.

### Claim 10

A computer-implemented method performed by one or more processors executing computer-executable instructions, wherein the computer-implemented method manages at a data-tier level failover for application services that are each serviced at the data-tier level by a respective primary data store and a respective secondary data store used to back up the respective primary data store during a failover, the computer-implemented method comprising:
each application service communicating through an application program interface to a management component at the data-tier level, wherein said communication comprises defining a failover policy for each application service and wherein the failover policy is defined by:
a dataloss failover parameter that defines at what point in time, in case of at least a partial failure of a respective primary data store of a respective application service, the respective application service should perform a dataloss failover to a respective secondary data store of the respective application service; and
a dataloss-avoidant parameter that defines at what point in time, in the case of the at least partial failure of the respective primary data store of the respective application service, the respective application service should attempt a lossless failover to the respective secondary data store of the respective application service;
the management component storing at the data-tier level the dataloss failover parameter and the dataloss-avoidant parameter for each application service;
following a failure of the respective primary data store for a given application service, using the failover policy stored for the given application service to detect the following conditions:
first, whether, at the point in time defined by the dataloss-avoidant parameter, lossless recovery of the respective primary data store for the given application service has not been accomplished; and
second, whether, at the point in time defined by the dataloss failover parameter, the respective primary data store for the given application service is at least still partially unavailable to the given application service; and
if the first and second conditions are both detected, thereafter performing a dataloss failover from the respective primary data store to the respective secondary data store of the given application service.

### Claim 11 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein each application service defines its own failover policy at the data-tier level so that each application service establishes its own way of balancing reduction in data loss on the one hand and reduction in latency on the other hand, during a failure of the primary data store for a respective application service.

### Claim 12 (depends on 11)

The computer-implemented method in accordance with claim 11, wherein the dataloss-avoidant parameter and the dataloss failover policy for each application service is registered and stored by the management component at a data store maintained at the data-tier level during initiation of each application service.

### Claim 13 (depends on 12)

The computer-implemented method in accordance with claim 12, wherein the dataloss-avoidant parameter for one or more application services is updated at a point in time after initiation of the one or more applications services.

### Claim 14 (depends on 12)

The computer-implemented method in accordance with claim 12, wherein dataloss failover parameter for one or more application services is updated at a point in time after initiation of the one or more applications services.

### Claim 15 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein:
if the first condition is not detected, the failover policy of the given application service causes the system to operate by determining whether recovery of the primary data store for the given application service has occurred prior to the time defined by the dataloss-avoidant parameter and if so, not attempting a lossless failover to the respective secondary data store, and not performing a dataloss failover; and
if the first condition is detected but the second condition is not detected, the failover policy of the given application service causes the system to operate by determining whether recovery of the primary data store for the given application service has occurred prior to the time defined by the dataloss failover parameter and if so, not performing a dataloss failover.

### Claim 16 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein the management component stores the failover policy for each application service in a data store maintained at the data-tier level.

### Claim 17 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein one or more of the primary data stores or one or more of the secondary data stores reside on a storage device and node, and wherein the one or more primary data stores or one or more secondary data stores still provide separate data storage for corresponding application services as a result of security and isolation provided by the management component between data that belongs to each application service.

### Claim 18 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein one or more of the primary data stores comprise a set of one or more databases.

### Claim 19

A computer-implemented method performed by one or more processors executing computer-executable instructions, wherein the computer-implemented method manages at a data-tier level failover for application services that are each serviced at the data-tier level by a respective primary data store and a respective secondary data store used to back up the respective primary data store during a failover, the computer-implemented method comprising:
receiving at a management component at the data-tier level a failover policy defined by each application service, wherein the failover policy is communicated to the management component by each application service through an application program interface for the data-tier level, wherein said communication comprises defining a failover policy for each application service and wherein the failover policy is defined by:
a dataloss failover parameter that defines at what point in time, in case of at least a partial failure of a respective primary data store of a respective application service, the respective application service should perform a dataloss failover to a respective secondary data store of the respective application service; and
a dataloss-avoidant parameter that defines at what point in time, in the case of the at least partial failure of the respective primary data store of the respective application service, the respective application service should attempt a lossless failover to the respective secondary data store of the respective application service;
the management component storing at the data-tier level the dataloss failover parameter and the dataloss-avoidant parameter for each application service;
following a failure of the respective primary data store for a given application service, the management component using the failover policy stored for the given application service to detect the following conditions:
first, whether, at the point in time defined by the dataloss-avoidant parameter, lossless recovery of the respective primary data store for the given application service has not been accomplished; and
second, whether, at the point in time defined by the dataloss failover parameter, the respective primary data store for the given application service is at least still partially unavailable to the given application service; and
if the first and second conditions are both detected, thereafter the management component performing a dataloss failover from the respective primary data store to the respective secondary data store of the given application service so that in accordance with the failover policy defined by the given application service, any further latency resulting from the dataloss failover from the respective primary data store to the respective secondary data store will be reduced irrespective of any likely data loss that may occur during the dataloss failover.

### Claim 20 (depends on 19)

The computer-implemented method in accordance with claim 19, wherein each application service defines its own failover policy at the data-tier level so that each application service establishes its own way of balancing reduction in data loss on the one hand and reduction in latency on the other hand, during a failure of the primary data store for a respective application service.

### Claim 21 (depends on 19)

The computer-implemented method in accordance with claim 19,
wherein if the first condition is not detected, the failover policy of the given application service causes the system to operate by performing the following:
determine whether recovery of the primary data store for the given application service has occurred prior to the time defined by the dataloss-avoidant parameter and if so, not attempting a lossless failover to the respective secondary data store, and not performing a dataloss failover; and
wherein if the first condition is detected but the second condition is not detected, the failover policy of the given application service causes the system to operate by performing the following:
determine whether recovery of the primary data store for the given application service has occurred prior to the time defined by the dataloss failover parameter and if so, not performing a dataloss failover.
