# US 10,771,330 B1 · Tunable parameter settings for a distributed application

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

- Number: US 10,771,330 B1
- Document ID: US10771330B1
- Status: Granted
- Kind: B1
- Application number: 15/684,416
- Filed: 2017-08-23
- Granted: 2020-09-08
- Earliest claimed: 2015-06-12
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Ashish Rangole
- Web page: https://patentgrep.com/patent/US10771330B1

## CPC

- H04L 41/0823: characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability (for optimising operational conditions of wireless networks H04W24/02)
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3452: {Performance evaluation by statistical analysis}
- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L 41/5009: Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
- H04L 41/5064: {Customer relationship management}
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/303: Terminal profiles
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A technology is described for generating and modifying tunable parameter settings for use with a distributed application. An example method may include providing a first set of tunable parameter settings for a distributed application, where the first set of tunable parameter settings may be selected based at least in part on historical data associated with similar distributed applications. Performance metrics and implementation attributes associated with the distributed application may then be collected during a time period. The performance metrics and the implementation attributes collected may be input to a machine learning model configured to output a second set of tunable parameter settings for the distributed application, and the second set of tunable parameter settings may be provided for use with the distributed application, where performance of the distributed application may be better as compared to a performance using the first set of tunable parameter settings.

## Claims

### Claim 1

A method, comprising:
applying one or more first parameter settings to a distributed application, wherein the first parameter settings are chosen using historical data associated with similar distributed applications;
providing one or more performance metrics of the distributed application to a machine learning model in response to performing the distributed application using the one or more first parameter settings;
applying one or more second parameter settings of the distributed application based, at least in part, on output of the machine learning model resulting from the one or more performance metrics; and
performing the distributed application using the one or more second parameter settings.

### Claim 2 (depends on 1)

The method as in claim 1, further comprising:
collecting the one or more performance metrics and implementation attributes associated with a defined implementation of the distributed application; and
supplying the one or more performance metrics and the implementation attributes to the machine learning model to determine the one or more second parameter settings.

### Claim 3 (depends on 2)

The method as in claim 2, wherein the implementation attributes associated with the distributed application include the one or more first parameter settings, distributed application attributes, and computing resource attributes.

### Claim 4 (depends on 3)

The method as in claim 3, further comprising performing feature selection for the machine learning model, wherein features are selected from at least one of: the one or more first parameter settings, the distributed application attributes, or the computing resource attributes.

### Claim 5 (depends on 4)

The method as in claim 4, further comprising constructing a feature vector for use with the machine learning model using the features selected from at least one of: the one or more first parameter settings, the distributed application attributes, or the computing resource attributes.

### Claim 6 (depends on 1)

The method as in claim 1, wherein the one or more first parameter settings are selected based in part on generated parameter settings that are associated with distributed application attributes, computing resource attributes of other distributed applications that are similar to distributed application attributes and computing resource attributes of the distributed application being launched.

### Claim 7 (depends on 1)

The method as in claim 1, wherein a customer requesting a launch of the distributed application and a task assigned to the distributed application are identical to the customer and the task associated with the prior instance of the distributed application.

### Claim 8 (depends on 1)

The method as in claim 1, further comprising receiving the one or more performance metrics from a software agent included in a computing instance used to execute the distributed application where the software agent is configured to report the one or more performance metrics.

### Claim 9 (depends on 8)

The method as in claim 8, further comprising receiving the one or more performance metrics via an Application Programming Interface (API) used by the software agent to write the one or more performance metrics to a distributed application log.

### Claim 10 (depends on 1)

The method as in claim 1, wherein the one or more first parameter settings and the one or more second parameter settings for the distributed application are applied automatically to the distributed application.

### Claim 11 (depends on 1)

The method as in claim 1, wherein the one or more first parameter settings and the one or more second parameter settings for the distributed application are recommended to a customer.

### Claim 12 (depends on 11)

The method as in claim 11, further comprising applying the one or more first parameter settings or the one or more second parameter settings to the distributed application as a result of the customer accepting the recommendation.

### Claim 13 (depends on 1)

The method as in claim 1, wherein tunable parameters for the one or more first parameter settings or the one or more second parameter settings applied to the distributed application include at least one of: computer memory size parameters, data structure parameters, data serialization parameters, or memory recovery parameters.

### Claim 14

A method, comprising:
identifying a first set of tunable parameter settings for a distributed application as a result of a launch request for the distributed application, using at least one processor, the first set of tunable parameter settings being identified based at least in part on historical data associated with similar distributed applications;
supplying performance metrics and implementation attributes associated with the distributed application to a machine learning model to generate a second set of tunable parameter settings for the distributed application, using the at least one processor; and
providing the second set of tunable parameter settings for the distributed application, using the at least one processor, wherein the second set of tunable parameter settings result in an improved performance of the distributed application as compared to a performance using the first set of tunable parameter settings.

### Claim 15 (depends on 14)

The method of claim 14, wherein the similar distributed applications are associated with separate customer accounts.

### Claim 16 (depends on 14)

The method of claim 14, wherein the implementation attributes include at least one of distributed application attributes or computing resource attributes.

### Claim 17

A system comprising:
at least one processor;
a memory device including instructions that, when executed by the at least one processor, cause the system to:
generate a first set of tunable parameter settings for a first implementation of a distributed application associated with a customer account using a machine learning model configured to output generated tunable parameter settings for the distributed application, wherein the machine learning model is trained using historical data and features associated with prior implementations of the distributed application associated with other customer accounts; and
generate a second set of tunable parameter settings for the distributed application after a time period based on input of performance metrics and implementation attributes associated with the distributed application, where the second set of tunable parameter settings result in an improved performance as compared to a performance using the first set of tunable parameter settings.

### Claim 18 (depends on 17)

The system as in claim 17, wherein tunable parameter settings that are determined to have a greater impact on a performance of the distributed application as compared to other tunable parameter settings for the distributed application are included in at least one of the first set of tunable parameter settings or the second set of tunable parameter settings.

### Claim 19 (depends on 17)

The system as in claim 17, wherein the memory device includes instructions that, when executed by the at least one processor, causes the system to further:
adjust the first set of tunable parameter settings by randomized increments or heuristics; and
collect resulting performance metrics during an adjustment time period.

### Claim 20 (depends on 17)

The system as in claim 17, wherein the memory device includes instructions that, when executed by the at least one processor, causes the system to further:
adjust the first set of tunable parameter settings using randomized increments and heuristics; and
collect resulting performance metrics during an adjustment time period.
