IP Library › Granted Patent US 10,803,042
Granted Patent B2
US 10,803,042 · App. 15/726,922 · Granted Oct 13, 2020

Database indexing in performance measurement systems

Inventors: Kyle Dennis Kavanagh (Chicago, IL); José Antonio Acuña-Rohter (Des Plaines, IL); David Michael Wong (La Grange, IL)
Assignee: Chicago Mercantile Exchange Inc.
G06F16/2272G06F11/3072G06F11/3419G06F16/2474G06F16/24553G06F2201/835G06F2201/87
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,803,042
App. No.
15/726,922
Granted
Oct 13, 2020
Kind
B2
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 (38)

1. A computer implemented method of indexing a data store including data indicative of message processing by an application in a data transaction processing system, the method comprising:

detecting, by a processor coupled with the application, that the application has received a message of a plurality of messages for processing as each message of the plurality of messages is received by the application, the application including a plurality of checkpoints;

upon a received message of the plurality of messages traversing a checkpoint of the plurality of checkpoints, storing, by the processor, in a data store, a data entry indicative of the received message, the traversed checkpoint, and a time when the received message traversed the checkpoint;

detecting, by the processor, that a message processing latency between a pair of checkpoints from the plurality of checkpoints satisfies a delay condition, and based thereon, modifying the data entries associated with the pair of checkpoints by adding data indicative of a delay;

upon receiving, by the processor, a query that is limited to bottlenecks, searching, by the processor, only data entries including data indicative of a delay; and

upon receiving, by the processor, a query to search the entire data store, searching, by the processor, all the data entries in the data store.

2. 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 pair of checkpoints exceeds a threshold amount of time; (ii) the amount of time that elapses for a message to traverse the pair of 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 a pair 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 a pair of checkpoints exceeds a threshold number of messages.

3. The computer implemented method of claim 1 , wherein a bottleneck limited query is executed faster than a query to search all of the data entries in the data store.

4. The computer implemented method of claim 1 , wherein detecting whether a message processing latency between a pair of checkpoints from the plurality of checkpoints satisfies a delay condition comprises determining an elapse of time between times when a received message traversed the two checkpoints in the pair of checkpoints.

5. The computer implemented method of claim 1 , wherein the message processing latency between a pair of checkpoints from the plurality of checkpoints is determined based on data entries stored in the data store and indicative of times when a received message traversed the pair of checkpoints.

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

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

8. The computer implemented method of claim 1 , 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.

9. 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.

10. A computer implemented method for indexing a data store in a data transaction processing system including an application including a plurality of checkpoints, the application processing a plurality of messages including causing the plurality of messages to traverse at least one of the checkpoints, wherein, upon a message of the plurality of traversing a checkpoint of the plurality of checkpoints, a data entry indicative of the received message, the traversed checkpoint, and a time when the received message traversed the checkpoint is stored in the data store, the method comprising:

detecting, by a processor coupled with the application, that a message processing latency between a pair of checkpoints from the plurality of checkpoints satisfies a delay condition, and based thereon, modifying the data entries associated with the pair of checkpoints by adding data indicative of a delay;

upon receiving, by the processor, a query of a first type, searching, by the processor, only data entries including data indicative of a delay; and

upon receiving, by the processor, a query of a second type, searching, by the processor, all the checkpoints in the data store.

11. The computer implemented method of claim 10 , wherein the delay condition comprises one of: (i) the amount of time that elapses for a message to traverse the pair of checkpoints exceeds a threshold amount of time; (ii) the amount of time that elapses for a message to traverse the pair of 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 a pair 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 a pair of checkpoints exceeds a threshold number of messages.

12. The computer implemented method of claim 10 , wherein a bottleneck limited query is executed faster than a query to search all of the data entries in the data store.

13. The computer implemented method of claim 10 , 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.

14. A non-transitory computer-readable medium storing instructions for indexing a data store including data indicative of message processing by an application in a data transaction processing system that, when executed by a processor, cause the processor to:

detect that the application has received a message of a plurality of messages for processing as each message of the plurality of messages is received by the application, the application including a plurality of checkpoints;

upon a received message of the plurality of messages traversing a checkpoint of the plurality of checkpoints, store, in a data store, a data entry indicative of the received message, the traversed checkpoint, and a time when the received message traversed the checkpoint;

detect that a message processing latency between a pair of checkpoints from the plurality of checkpoints satisfies a delay condition, and based thereon, modify the data entries associated with the pair of checkpoints by adding data indicative of a delay;

upon receiving a query that is limited to bottlenecks, search only data entries including data indicative of a delay; and

upon receiving a query to search the entire data store, search all the data entries in the data store.

15. The computer system of claim 14 , wherein the delay condition comprises one of: (i) the amount of time that elapses for a message to traverse the pair of checkpoints exceeds a threshold amount of time; (ii) the amount of time that elapses for a message to traverse the pair of 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 a pair 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 a pair of checkpoints exceeds a threshold number of messages.

16. The computer system of claim 14 , which executes bottleneck limited queries faster than queries to search all of the data entries in the data store.

17. The computer system of claim 14 , wherein detecting whether a message processing latency between a pair of checkpoints from the plurality of checkpoints satisfies a delay condition comprises determining an elapse of time between times when a received message traversed the two checkpoints in the pair of checkpoints.

18. The computer system of claim 14 , wherein the instructions are further configured to cause the processor to determine the message processing latency between a pair of checkpoints from the plurality of checkpoints based on data entries stored in the data store and indicative of times when a received message traversed the pair of checkpoints.

19. The computer system of claim 14 , 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.

20. A computer system for indexing a data store including data indicative of message processing by an application in a data transaction processing system, the computer system comprising:

means for detecting that the application has received a message of a plurality of messages for processing as each message of the plurality of messages is received by the application, the application including a plurality of checkpoints;

upon a received message of the plurality of messages traversing a checkpoint of the plurality of checkpoints, means for storing, in a data store, a data entry indicative of the received message, the traversed checkpoint, and a time when the received message traversed the checkpoint;

means for detecting that a message processing latency between a pair of checkpoints from the plurality of checkpoints satisfies a delay condition, and based thereon, means for modifying the data entries associated with the pair of checkpoints by adding data indicative of a delay;

upon receiving a query that is limited to bottlenecks, means for searching only data entries including data indicative of a delay; and

upon receiving a query to search the entire data store, means for searching all the data entries in the data store.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2017
From: KAVANAGH, KYLE DENNIS; ACUÑA-ROHTER, JOSÉ ANTONIO; WONG, DAVID MICHAEL
To: CHICAGO MERCANTILE EXCHANGE INC.
Reel/Frame 043806/0667 →
Continuity (1)
Related Publication 20190108247A1 · Apr 11, 2019