# US 12,009,989 B2 · On demand synthetic data matrix generation

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

- Number: US 12,009,989 B2
- Document ID: US12009989B2
- Status: Granted
- Kind: B2
- Application number: 17/037,501
- Filed: 2020-09-29
- Published: 2021-01-14
- Granted: 2024-06-11
- Earliest claimed: 2017-11-03
- Assignees: Salesforce, Inc.
- Applicants: salesforce.com, inc.
- Inventors: Tejaswini Ganapathi; Satish Raghunath; Xu Che; Shauli Gal; Andrey Karapetov
- Web page: https://patentgrep.com/patent/US12009989B2

## CPC

- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- G05B 17/02: electric
- G06F 16/2477: {Temporal data queries}
- G06F 17/16: Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)}
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06N 20/00: Machine learning
- H04L 41/142: using statistical or mathematical methods
- H04L 43/0829: Packet loss
- H04L 43/0858: {One way delays}
- H04L 43/087: Jitter
- H04L 43/0888: Throughput
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

An data driven approach to generating synthetic data matrices is presented. By retrieving historical network traffic data, probabilistic models are generated. Optimal distribution families for a set of independent data segments are determined. Applications are tested and performance metrics are determined based on the generated synthetic data matrices.

## Claims

### Claim 1

A method, comprising:
accessing historical network traffic data corresponding to data requests sent between a set of client devices and a server system;
based on the historical network traffic data, generating a set of synthetic data requests for a particular application;
generating one or more synthetic download outcomes for the set of synthetic data requests;
determining a set of performance metrics of the particular application by comparing, based on the one or more synthetic download outcomes, performance of the particular application under different combinations of network values;
generating TCP parameters for the particular application based on the set of performance metrics, wherein the TCP parameters improve network performance of the particular application; and
causing a client device that is executing the particular application to be configured with the TCP parameters.

### Claim 2 (depends on 1)

The method of claim 1, wherein the set of performance metrics include inferred performance metrics derived from application performance simulations.

### Claim 3 (depends on 1)

The method of claim 1, wherein the one or more synthetic download outcomes are generated from a set of probabilistic models derived based on the historical network traffic data.

### Claim 4 (depends on 1)

The method of claim 1, wherein the comparing further includes comparing end user experience and application performance across different combinations of geography and network types.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
generating aggregate datasets of performance metrics comparing different combinations of network values that affect application performance.

### Claim 6 (depends on 1)

The method of claim 1, wherein the historical network traffic data includes network conditions reported by an agent installed on the client device.

### Claim 7

One or more non-transitory computer-readable storage media, storing one or more sequences of instructions, which when executed by one or more processors cause performance of:
accessing historical network traffic data corresponding to data requests sent between a set of client devices and a server system;
based on the historical network traffic data, generating a set of synthetic data requests for a particular application;
generating one or more synthetic download outcomes for the set of synthetic data requests;
determining a set of performance metrics of the particular application by comparing, based on the one or more synthetic download outcomes, performance of the particular application under different combinations of network values;
generating TCP parameters for the particular application based on the set of performance metrics, wherein the TCP parameters improve network performance of the particular application; and
causing a client device that is executing the particular application to be configured with the TCP parameters.

### Claim 8 (depends on 7)

The one or more non-transitory computer-readable storage media of claim 7, wherein the set of performance metrics include inferred performance metrics derived from application performance simulations.

### Claim 9 (depends on 7)

The one or more non-transitory computer-readable storage media of claim 7, wherein the set of performance metrics include performance metrics derived from probabilistic modeling.

### Claim 10 (depends on 7)

The one or more non-transitory computer-readable storage media of claim 7, wherein the comparing further includes comparing end user experience and application performance across different combinations of geography and network types.

### Claim 11 (depends on 7)

The one or more non-transitory computer-readable storage media of claim 7, wherein the one or more sequences of instructions, which when executed by the one or more processors cause further performance of:
generating aggregate datasets of performance metrics comparing different combinations of network values that affect application performance.

### Claim 12 (depends on 7)

The one or more non-transitory computer-readable storage media of claim 7, wherein the historical network traffic data includes network conditions reported by an agent installed on the client device.

### Claim 13

An apparatus, comprising:
one or more processors; and
a memory storing instructions, which when executed by the one or more processors, cause the one or more processors to:
access historical network traffic data corresponding to data requests sent between a set of client devices and a server system;
based on the historical network traffic data, generate a set of synthetic data requests for a particular application;
generate one or more synthetic download outcomes for the set of synthetic data requests;
determine a set of performance metrics of the particular application by comparing, based on the one or more synthetic download outcomes, performance of the particular application under different combinations of network values;
generate TCP parameters for the particular application based on the set of performance metrics, wherein the TCP parameters improve network performance of the particular application; and
cause a client device that is executing the particular application to be configured with the TCP parameters.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the set of performance metrics include inferred performance metrics derived from application performance simulations.

### Claim 15 (depends on 13)

The apparatus of claim 13, wherein the set of performance metrics include performance metrics derived from a set of probabilistic models.

### Claim 16 (depends on 13)

The apparatus of claim 13, wherein the comparing further includes comparing end user experience and application performance across different combinations of geography and network types.

### Claim 17 (depends on 13)

The apparatus of claim 13, wherein the instructions, which when executed by the one or more processors, cause the one or more processors to further:
generate aggregate datasets of performance metrics comparing different combinations of network values that affect application performance.
