# US 2017/0286184 A1 · Optimization of parralel processsing using waterfall reprsentations

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

- Number: US 2017/0286184 A1
- Document ID: US20170286184A1
- Status: Published application
- Kind: A1
- Application number: 15/088,606
- Filed: 2016-04-01
- Published: 2017-10-05
- Earliest claimed: 2016-04-01
- Assignees: eBay Inc.
- Applicants: eBay Inc.
- Inventors: Dmytro Semenov
- Web page: https://patentgrep.com/patent/US20170286184A1

## CPC

- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 11/3447: {Performance evaluation by modeling}
- G06F 11/3452: {Performance evaluation by statistical analysis}
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06T 11/26: Drawing of charts or graphs
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Event data for an application execution is accessed from a table of logged events, the event data comprising a sequence, a hierarchy, and a start time and duration for each event. Dependency data for each event is also accessed to determine whether the start time for an event is dependent on the prior completion of at least one other event. A waterfall representation is then generated, the representation including an entry for each event in the sequence, with a start time and duration represented for each event. Based on the dependencies and hierarchy, it is determined, for each event with a start time that is later than the start time of an event which precedes it in the sequence, whether the event's start time is dependent on the prior completion of at least one preceding event. The start time for each event may then be advanced based on the determination.

## Claims

### Claim 1

A system, comprising:
a data access module comprising at least one processor and configured to:
access event data for an application from a table of logged events in the execution of the application, the event data comprising a sequence of the events, a hierarchy of the events, and a start time and duration for each event; and
access dependency data for each event, the dependency data indicating that the start time for an event is dependent on a prior completion of at least one other event;
a representation module comprising at least one processor and configured to:
generate a waterfall representation based on the accessed event data, the representation including: a first axis, a second axis orthogonal to the first axis, an entry for each event in the sequence along the first axis with a start time and duration of each event measured relative to the second axis; and
an optimization module comprising at least one processor and configured to:
analyze the waterfall representation and the hierarchy to identify an event that has a start time that is later than a start time of an event which precedes it in the sequence and is not a child of an event which precedes it in the sequence;
based on the dependency data, determine whether the start time for the event is dependent on a prior completion of at least one event that precedes it in the sequence; and
based on the start time for the event being dependent, set the start time for the event to a latest completion time of the at least one event that precedes it in the sequence.

### Claim 2 (depends on 1)

The system of claim 1, the optimization module further configured to:
based on the start time for the event not being dependent, set the start time for the event to an earliest start time possible based on available parallel processing capacity; and
determine the earliest start time possible based on a number of processing cores available at a server hosting the application or based on a maximum number of simultaneous connections per server of the application.

### Claim 3 (depends on 1)

The system of claim 1, the optimization module further configured to:
identify a latest completion time of all the events that precede the event in the sequence; and
not set the start time for the event to an earlier start time based on the duration of the event indicating that it will be completed prior to the latest completion time of all the events that precede it in the sequence.

### Claim 4 (depends on 1)

The system of claim 1, wherein the application includes code that:
logs the events in the execution of the application;
generates the table of logged events; and
transmits the table of logged events to a central log repository; and
the data access module is further configured to access the event data from the central log repository.

### Claim 5 (depends on 1)

The system of claim 1, wherein the application comprises a website application and the events comprise server responses to requests from users of the application.

### Claim 6 (depends on 1)

The system of claim 1, the representation module further configured to:
show a visualization of the waterfall representation in a user interface on a display; and
receive input from a user via the user interface; and
the data access module further configured to access the dependency data from the user input.

### Claim 7 (depends on 1)

The system of claim 1, wherein:
the first axis is a vertical axis and the first axis includes a totaling event entry before the first event in the sequence; and
the totaling event has a start time equal to the first event in the sequence and a duration that indicates a completion time equal to a latest completion time of all the events in the sequence.

### Claim 8

A method, comprising:
accessing event data for an application from a table of logged events in the execution of the application, the event data comprising a sequence of the events, a hierarchy of the events, and a start time and duration for each event; and
accessing dependency data for each event, the dependency data indicating that the start time for an event is dependent on a prior completion of at least one other event;
generating a waterfall representation based on the accessed event data, the representation including: a first axis, a second axis orthogonal to the first axis, an entry for each event in the sequence along the first axis with a start time and duration of each event measured relative to the second axis; and
analyzing the waterfall representation and the hierarchy to identify an event that has a start time that is later than a start time of an event which precedes it in the sequence and is not a child of an event which precedes it in the sequence;
based on the dependency data, determining whether the start time for the event is dependent on a prior completion of at least one event that precedes it in the sequence; and
based on the start time for the event being dependent, setting the start time for the event to a latest completion time of the at least one event that precedes it in the sequence.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
based on the start time for the event not being dependent, setting the start time for the event to an earliest start time possible based on available parallel processing capacity; and
determining the earliest start time possible based on a number of processing cores available at a server hosting the application or based on a maximum number of simultaneous connections per server of the application.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
identify a latest completion time of all the events that precede the event in the sequence; and
not set the start time for the event to an earlier start time based on the duration of the event indicating that it will be completed prior to the latest completion time of all the events that precede it in the sequence.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
logging, by the application, the events in the execution of the application;
generating, by the application, the table of logged events; and
transmitting, by the application, the table of logged events to a central log repository; and
accessing the event data for an application from the central log repository.

### Claim 12 (depends on 8)

The method of claim 8, wherein the application comprises a website application and the events comprise server responses to requests from users of the application.

### Claim 13 (depends on 8)

The method of claim 8, further comprising:
showing a visualization of the waterfall representation in a user interface on a display;
receiving input from a user via the user interface; and
accessing the dependency data from the user input.

### Claim 14 (depends on 8)

The method of claim 8, wherein:
the first axis is a vertical axis and the first axis includes a totaling event entry before the first event in the sequence; and
the totaling event has a start time equal to the first event in the sequence and a duration that indicates a completion time equal to the latest completion time of all the events in the sequence.

### Claim 15

A non-transitory machine-readable medium storing instructions which, when executed by the at least one processor of a machine, cause the machine to perform operations comprising:
accessing event data for an application from a table of logged events in the execution of the application, the event data comprising a sequence of the events, a hierarchy of the events, and a start time and duration for each event; and
accessing dependency data for each event, the dependency data indicating that the start time for an event is dependent on a prior completion of at least one other event;
generating a waterfall representation based on the accessed event data, the representation including: a first axis, a second axis orthogonal to the first axis, an entry for each event in the sequence along the first axis with a start time and duration of each event measured relative to the second axis; and
analyzing the waterfall representation and the hierarchy to identify an event that has a start time that is later than a start time of an event which precedes it in the sequence and is not a child of an event which precedes it in the sequence;
based on the dependency data, determining whether the start time for the event is dependent on a prior completion of at least one event that precedes it in the sequence; and
based on the start time for the event being dependent, setting the start time for the event to a latest completion time of the at least one event that precedes it in the sequence.

### Claim 16 (depends on 15)

The non-transitory machine-readable medium of claim 15, the operations further comprising:
based on the start time for the event not being dependent, setting the start time for the event to an earliest start time possible based on available parallel processing capacity; and
determining the earliest start time possible based on a number of processing cores available at a server hosting the application or based on a maximum number of simultaneous connections per server of the application.

### Claim 17 (depends on 15)

The non-transitory machine-readable medium of claim 15, the operations further comprising:
identify a latest completion time of all the events that precede the event in the sequence; and
not set the start time for the event to an earlier start time based on the duration of the event indicating that it will be completed prior to the latest completion time of all the events that precede it in the sequence.

### Claim 18 (depends on 15)

The non-transitory machine-readable medium of claim 15, wherein the application includes code that:
logs the events in the execution of the application;
generates the table of logged events; and
transmits the table of logged events to a central log repository; and
the operations further comprise accessing the event data from the central log repository.

### Claim 19 (depends on 15)

The non-transitory machine-readable medium of claim 15, the operations further comprising:
showing a visualization of the waterfall representation in a user interface on a display;
receiving input from a user via the user interface; and
accessing the dependency data from the user input.

### Claim 20 (depends on 15)

The non-transitory machine-readable medium of claim 15, wherein:
the first axis is a vertical axis and the first axis includes a totaling event entry before the first event in the sequence; and
the totaling event has a start time equal to the first event in the sequence and a duration that indicates a completion time equal to the latest completion time of all the events in the sequence.
