# US 2020/0401570 A1 · Database indexing in performance measurement systems

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

- Number: US 2020/0401570 A1
- Document ID: US20200401570A1
- Status: Published application
- Kind: A1
- Application number: 17/015,184
- Filed: 2020-09-09
- Published: 2020-12-24
- Earliest claimed: 2017-10-06
- Assignees: Chicago Mercantile Exchange Inc.
- Applicants: Chicago Mercantile Exchange Inc.
- Inventors: Kyle Dennis Kavanagh; José Antonio Acuña-Rohter; David Michael Wong
- Web page: https://patentgrep.com/patent/US20200401570A1

## CPC

- G06F 16/2272: {Management thereof}
- G06F 11/3072: {where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting}
- G06F 11/3419: {by assessing time}
- G06F 16/24553: {of query operations}
- G06F 16/2474: {Sequence data queries, e.g. querying versioned data}
- G06F 2201/835: Timestamp
- G06F 2201/87: Monitoring of transactions
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A performance measurement indexing system indexes a data store containing data entries indicative of message processing by an application. The application includes a plurality of checkpoints, and the data store contains data logged upon each message traversing the checkpoints in the application. The performance measurement indexing system determines which data entries relate to messages that satisfy a delay condition, and limits queries run on the data store to those data entries, thereby increasing the speed and efficiency with which queries can be serviced.

## Claims

### Claim 1

A computer implemented method comprising:
evaluating, by a processor, a data store coupled therewith, the data store storing data indicative of a traversal of each of a plurality of messages via each of a plurality of checkpoints of an application operative to process the plurality of messages upon the receipt of each thereof, to determine that a traversal latency of one or more of the plurality of messages between at least two checkpoints of the plurality of checkpoints satisfies a delay condition, and based thereon, modify the data indicative of the traversal of at least one of the at least two checkpoints by the one or more messages to indicate a delay; and
upon receiving, by the processor, a query of a first or second type, searching, by the processor based on the type of query, only data in the data store which indicates a delay when the query is of the first type or all of the data in the data store when the query is of the second type.

### Claim 2 (depends on 1)

The computer implemented method of claim 1, wherein the delay condition comprises one of: (i) the amount of time that elapses for a message to traverse the at least two checkpoints exceeds a threshold amount of time; (ii) the amount of time that elapses for a message to traverse the at least two checkpoints exceeds the amount of time that elapses for a message to traverse a different at least two checkpoints; (iii) the amount of time that elapses for a message to be processed by a portion of the application defined by at least two checkpoints is greater than an amount of time between new messages arriving at that portion of the application; or (iv) if a number of messages awaiting processing by a portion of the application defined by at least two checkpoints exceeds a threshold number of messages.

### Claim 3 (depends on 1)

The computer implemented method of claim 1, wherein a query of the first type is executed faster than a query of the second type.

### Claim 4 (depends on 1)

The computer implemented method of claim 1, wherein the evaluating further comprises determining an elapse of time between times when a received message traversed at least two of the at least two checkpoints.

### Claim 5 (depends on 1)

The computer implemented method of claim 1, wherein the traversal latency between the at least two checkpoints is determined based on the data stored in the data store indicative of the traversal of one or more of the plurality of message during the processing thereof of two or more of the plurality of checkpoints.

### Claim 6 (depends on 1)

The computer implemented method of claim 1, wherein the application is a first application, and wherein the data store further includes data indicative of message processing by a second application.

### Claim 7 (depends on 6)

The computer implemented method of claim 6, wherein a query of the first type comprises searching only the data indicative of a delay and indicative of messages processed by one of the first or second application.

### Claim 8 (depends on 1)

The computer implemented method of claim 1, wherein a query comprises one or more of: (i) determining percentiles associated with message processing; (ii) determining the traversal latency between at least two of the plurality of checkpoints over a specified period of time.

### Claim 9 (depends on 1)

The computer implemented method of claim 1, wherein each message is an electronic data transaction request message, and wherein the application processes an electronic data transaction request message by determining whether an attempt to match an electronic data transaction request message with at least one previously received but unsatisfied electronic data transaction request message for a transaction which is counter thereto results in at least partial satisfaction of one or both of the electronic data transaction request message and the at least one previously received but unsatisfied electronic data transaction request message.

### Claim 10 (depends on 1)

The computer implemented method of claim 1, wherein the evaluating occurs only after all of the plurality of messages have been processed by the application.

### Claim 11 (depends on 1)

The computer implemented method of claim 1, wherein the query is received only after all of the plurality of messages have been processed by the application.

### Claim 12 (depends on 1)

The computer implemented method of claim 1, wherein the at least two checkpoints are not consecutive.

### Claim 13 (depends on 1)

The computer implemented method of claim 1 further comprising summarizing, by the processor, the result of the searching and presenting a visual representation thereof.

### Claim 14 (depends on 13)

The computer implemented method of claim 13, wherein the visual representation comprises a timeseries and percentile distribution.

### Claim 15

A computer implemented method comprising:
evaluating, by a processor, data indicative of the processing of each of a plurality of messages by an application which causes each of the plurality of message to traverse at least one of a plurality of checkpoints of the application to determine that a latency between at least two of the plurality of checkpoints satisfies a delay condition, and based thereon, modify the data based thereon;
upon receiving, by the processor, a query of a first or second type, searching, by the processor based on the type of query, only the modified data or all of the data.

### Claim 16 (depends on 15)

The computer implemented method of claim 15, wherein the delay condition comprises one of: (i) the amount of time that elapses for a message to traverse the at least two checkpoints exceeds a threshold amount of time; (ii) the amount of time that elapses for a message to traverse the at least two checkpoints exceeds the amount of time that elapses for a message to traverse a different pair checkpoints; (iii) the amount of time that elapses for a message to be processed by a portion of the application defined by at least two of the plurality of checkpoints is greater than an amount of time between new messages arriving at that portion of the application; or (iv) if a number of messages awaiting processing by a portion of the application defined by at least two of the plurality of checkpoints exceeds a threshold number of messages.

### Claim 17 (depends on 15)

The computer implemented method of claim 15, wherein a search of only the modified data is executed faster than a search all of the data.

### Claim 18 (depends on 15)

The computer implemented method of claim 15, wherein a query comprises one or more of: (i) determining percentiles associated with message processing; (ii) determining message processing latency between a pair of checkpoints from the plurality of checkpoints over a specified timeframe.

### Claim 19 (depends on 15)

The computer implemented method of claim 15, wherein the evaluating occurs only after all of the plurality of messages have been processed by the application.

### Claim 20 (depends on 15)

The computer implemented method of claim 15, wherein the query is received only after all of the plurality of messages have been processed by the application.

### Claim 21 (depends on 15)

The computer implemented method of claim 15, wherein the at least two checkpoints are not consecutive.

### Claim 22 (depends on 15)

The computer implemented method of claim 15 further comprising summarizing, by the processor, the result of the searching and presenting a visual representation thereof.

### Claim 23 (depends on 22)

The computer implemented method of claim 22, wherein the visual representation comprises a timeseries and percentile distribution.

### Claim 24

A non-transitory computer-readable medium storing instructions which cause a processor to:
evaluate a data store coupled with the processor, the data store storing data indicative of a traversal of each of a plurality of messages via each of a plurality of checkpoints of an application operative to process the plurality of messages upon the receipt of each thereof, to determine that a traversal latency of one or more of the plurality of messages between at least two checkpoints of the plurality of checkpoints satisfies a delay condition, and based thereon, modify the data indicative of the traversal of at least one of the at least two checkpoints by the one or more messages to indicate a delay; and
upon receipt, by the processor, of a query of a first or second type, search, by the processor based on the type of query, only data in the data store which indicates a delay when the query is of the first type or all of the data in the data store when the query is of the second type.

### Claim 25 (depends on 24)

The non-transitory computer-readable medium of claim 24, wherein the delay condition comprises one of: (i) the amount of time that elapses for a message to traverse the at least two checkpoints exceeds a threshold amount of time; (ii) the amount of time that elapses for a message to traverse the at least two checkpoints exceeds the amount of time that elapses for a message to traverse a different pair checkpoints; (iii) the amount of time that elapses for a message to be processed by a portion of the application defined by at least two of the plurality checkpoints is greater than an amount of time between new messages arriving at that portion of the application; or (iv) if a number of messages awaiting processing by a portion of the application defined by at least two of the plurality of checkpoints exceeds a threshold number of messages.

### Claim 26 (depends on 24)

The non-transitory computer-readable medium of claim 24 the query of the first type is faster than a query of the second type.

### Claim 27 (depends on 24)

The non-transitory computer-readable medium of claim 24, wherein the detection of whether a traversal latency between the at least checkpoints satisfies a delay condition comprises determining an elapse of time between times when the one or more messages traversed at least one of the at least two checkpoints.

### Claim 28 (depends on 24)

The non-transitory computer-readable medium of claim 24, wherein the instructions are further configured to cause the processor to determine the traversal latency between the at least two checkpoints based on data stored in the data store and indicative of times when the one or more messages traversed the at least two checkpoints.

### Claim 29 (depends on 24)

The non-transitory computer-readable medium of claim 24, wherein a query comprises one or more of: (i) a determination of percentiles associated with message processing; (ii) a determination of traversal latency between at least two of the plurality of checkpoints over a specified timeframe.

### Claim 30 (depends on 24)

The non-transitory computer-readable medium of claim 24, wherein the evaluation occurs only after all of the plurality of messages have been processed by the application.

### Claim 31 (depends on 24)

The non-transitory computer-readable medium of claim 24, wherein the query is received only after all of the plurality of messages have been processed by the application.

### Claim 32 (depends on 24)

The non-transitory computer-readable medium of claim 24, wherein the at least two checkpoints are not consecutive.

### Claim 33 (depends on 24)

The non-transitory computer-readable medium of claim 24, wherein the instructions are further configured to cause the processor to summarize the result of the search and present a visual representation thereof.

### Claim 34 (depends on 33)

The non-transitory computer-readable medium of claim 33, wherein the visual representation comprises a timeseries and percentile distribution.

### Claim 35

A computer system comprising:
means for evaluating a data store, which stores data indicative of a traversal of each of a plurality of messages via each of a plurality of checkpoints of an application operative to process the plurality of messages upon the receipt of each thereof, to determine that a traversal latency of one or more of the plurality of messages between at least two checkpoints of the plurality of checkpoints satisfies a delay condition, and based thereon, modify the data indicative of the traversal of at least one of the at least two checkpoints by the one or more messages to indicate a delay; and
upon receiving, by the processor, a query of a first or second type, means for searching, based on the type of query, only data in the data store which indicates a delay when the query is of the first type or all of the data in the data store when the query is of the second type.
