# US 2014/0195861 A1 · Implementing rate controls to limit timeout-based faults

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

- Number: US 2014/0195861 A1
- Document ID: US20140195861A1
- Status: Published application
- Kind: A1
- Application number: 13/737,430
- Filed: 2013-01-09
- Published: 2014-07-10
- Earliest claimed: 2013-01-09
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Abhishek Singh; Srikanth Raghavan; Ajay Mani; Saad Syed
- Web page: https://patentgrep.com/patent/US20140195861A1

## CPC

- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 11/0709: {in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems}
- G06F 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 11/076: {by exceeding a count or rate limit, e.g. word- or bit count limit}
- G06F 11/1402: {Saving, restoring, recovering or retrying}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments are directed to implementing rate controls to limit faults detected by timeout and to learning and adjusting an optimal timeout value. In one scenario, a computer system identifies cloud components that have the potential to fail within a time frame that is specified by a timeout value. The computer system establishes a number of components that are allowed to fail during the time frame specified by the timeout value and further determines that the number of component failures within the time frame specified by the timeout value has exceeded the established number of components that are allowed to fail. In response, the computer system increases the timeout value by a specified amount of time to ensure that fewer than or equal to the established number of components fail within the time frame specified by the timeout value.

## Claims

### Claim 1

A computer system comprising the following:
one or more processors;
system memory;
one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method for implementing rate controls to limit faults detected by timeout, the method comprising the following:
an act of identifying one or more cloud components that have the potential to fail within a time frame that is specified by a timeout value;
an act of establishing a number of components that are allowed to fail during the time frame specified by the timeout value;
an act of determining that the number of component failures within the time frame specified by the timeout value has exceeded the established number of components that are allowed to fail; and
an act of increasing the timeout value by a specified amount of time to ensure that fewer than or equal to the established number of components fail within the time frame specified by the timeout value.

### Claim 2 (depends on 1)

The computer system of claim 1, wherein the one or more cloud components comprise at least one of hardware components and software components.

### Claim 3 (depends on 1)

The computer system of claim 1, wherein the established number of components that are allowed to fail during the time frame specified by the timeout value is based on a value that indicates a number of cloud components that failed over a period of time.

### Claim 4 (depends on 3)

The computer system of claim 3, wherein the established number of components that are allowed to fail during the time frame specified by the timeout value is based on the determined value plus an added buffer value that ensures a sufficiently high timeout value is in place to prevent more than the allowed number of failed components.

### Claim 5 (depends on 1)

The computer system of claim 1, further comprising:
an act of determining that the number of component failures within the time frame specified by the timeout value is below the established number of components that are allowed to fail; and
an act of decreasing the timeout value by a specified amount of time that still ensures that fewer than or equal to the established number of components fail within the time frame specified by the timeout value.

### Claim 6 (depends on 5)

The computer system of claim 5, wherein a proportional-integral-derivative (PID) controller is used to decrease the timeout value.

### Claim 7 (depends on 5)

The computer system of claim 5, wherein the number of components that are allowed to fail during the time frame specified by the timeout value is dynamically adjusted over time.

### Claim 8 (depends on 7)

The computer system of claim 7, wherein the number of components that are allowed to fail during the time frame specified by the timeout value is dynamically adjusted to minimize the timeout value while ensuring that fewer than or equal to the established number of components fail within the time frame specified by the timeout value.

### Claim 9 (depends on 1)

The computer system of claim 1, wherein increasing the timeout value by a specified amount of time to ensure that fewer than or equal to the established number of components fail within the time frame specified by the timeout value prevents one or more cascading component failures.

### Claim 10 (depends on 1)

The computer system of claim 1, wherein the an act of determining that the number of component failures within the time frame specified by the timeout value has exceeded the established number of components that are allowed to fail comprises monitoring the identified cloud components using cloud component monitoring requests.

### Claim 11 (depends on 10)

The computer system of claim 10, wherein the monitoring requests are sent to the identified cloud components on a scheduled basis according to a specified schedule.

### Claim 12 (depends on 11)

The computer system of claim 11, wherein the schedule is based on a user-established policy.

### Claim 13 (depends on 11)

The computer system of claim 11, wherein the timeout value is adjusted at specified time intervals.

### Claim 14 (depends on 13)

The computer system of claim 13, wherein the specified time intervals for adjusting the timeout value are listed in a cloud management policy.

### Claim 15

A computer system comprising the following:
one or more processors;
system memory;
one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method for learning and adjusting an optimal timeout value, the method comprising the following:
an act of monitoring a number of failures that occur due to timeout during a specified timeframe, the timeouts being defined by a timeout value;
an act of determining that the timeout value is too high or too low based on the determined number of failures that occurred due to timeout during the specified timeframe; and
an act of adjusting the timeout value to ensure that fewer than or equal to a specified number of failures occur during the specified timeframe.

### Claim 16 (depends on 15)

The computer system of claim 15, wherein the timeout value is based on monitored time distributions for at least one of the following: application deployments, application updates, virtual machine migrations and node power-downs.

### Claim 17 (depends on 15)

The computer system of claim 15, wherein a separate timeout value is specified for each identified cloud component.

### Claim 18 (depends on 17)

The computer system of claim 17, wherein the component-specific timeout values are adjusted according to a specified time interval.

### Claim 19 (depends on 18)

The computer system of claim 18, wherein the component-specific timeout values are adjusted manually based on user input.

### Claim 20

A computer system comprising the following:
one or more processors;
system memory;
one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method for learning and adjusting an optimal timeout value, the method comprising the following:
an act of monitoring a number of failures that occur due to timeout during a specified timeframe, the timeouts being defined by a timeout value;
an act of determining that the timeout value is too high or too low based on the determined number of failures that occurred due to timeout during the specified timeframe; and
an act of adjusting the timeout value to ensure that fewer than or equal to a specified number of failures occur during the specified timeframe, wherein the number of failures that occur during the time frame specified by the timeout value is dynamically adjusted to minimize the timeout value while ensuring that fewer than or equal to the established number of failures occur within the time frame specified by the timeout value.
