IP Library › Granted Patent US 12,517,883
Granted Patent B2
US 12,517,883 · App. 18/827,234 · Granted Jan 6, 2026

Database indexing in performance measurement systems

Inventors: Kyle Dennis Kavanagh (Chicago, IL); José Antonio Acuña-Rohter (Des Plaines, IL); David Michael Wong (LaGrange, IN)
Assignee: Chicago Mercantile Exchange Inc.
G06F16/2272G06F11/3072G06F11/3419G06F16/24553G06F16/2474G06F2201/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 12,517,883
App. No.
18/827,234
Granted
Jan 6, 2026
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 (50)

1 . A computer implemented method comprising:

evaluating, by a processor, a data store coupled therewith, the data store storing data entries tracing a progress of a traversal of each of a plurality of messages through a plurality of checkpoints of an application operative to process the plurality of messages upon a receipt of each thereof;

defining, by the processor, each of a plurality of portions of the application, by a pair of checkpoints of the plurality of checkpoints;

detecting, by the processor, that a message processing latency of one or more of the plurality of messages through a subset of the plurality of portions of the application satisfies a delay condition, and based thereon, augmenting each of the data entries associated with the pair of checkpoints defining the portions of the subset to indicate a delay; and

upon receiving, by the processor, a query that is limited to portions of the application that indicate the delay, searching, only the augmented data entries.

2 . The computer implemented method of claim 1 , wherein the delay condition is determined based on historical performance of messages that were previously processed through each of the portions of the subset.

3 . The computer implemented method of claim 1 , wherein the delay condition is configurable by a user.

4 . The computer implemented method of claim 1 , further comprising:

increasing, by the processor, a number of checkpoints within each of the portions of the subset.

5 . The computer implemented method of claim 1 , wherein the delay condition comprises one of: (i) an amount of time that elapses for a message to traverse a portion of the plurality of portions of the application exceeds a threshold amount of time; (ii) the amount of time that elapses for a message to traverse the portion of the application exceeds the amount of time that elapses for a message to traverse a different portion of the application; (iii) the amount of time that elapses for a message to be processed by the portion of the application 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 the portion of the application exceeds a threshold number of messages.

6 . The computer implemented method of claim 1 , further comprising, upon receipt of a query to search the entire data store, searching, by the processor, all the data entries in the data store.

7 . The computer implemented method of claim 6 , wherein the limited query is executed faster than the query to search all the data entries.

8 . The computer implemented method of claim 1 , wherein the detecting further comprises determining an elapse of time when a received message traversed each of the portions of the subset.

9 . The computer implemented method of claim 1 , further comprising determining the message processing latency through each of the portions of the subset based on the data entries stored in the data store and indicative of times when the one or more messages traversed each of the portions of the subset.

10 . The computer implemented method of claim 1 , wherein the message processing latency of each of the portions of the subset is determined based on the data entries stored in the data store during the processing thereof of the pair of checkpoints.

11 . The computer implemented method of claim 1 , wherein the limited query comprises one or more of: (i) determining percentiles associated with message processing; and (ii) determining the message processing latency through each of the portions of the subset over a specified period of time.

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

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

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

15 . The computer implemented method of claim 1 , wherein the pair of checkpoints are not consecutive.

16 . The computer implemented method of claim 1 , further comprising modifying, by the processor, all of the data entries between the pair of checkpoints defining each of the portions of the subset to indicate a delay.

17 . A measurement indexing system comprising:

a processor;

a data store coupled with the processor, the data store configured to store data entries tracing a progress of a traversal of each of a plurality of messages through a plurality of checkpoints of an application operative to process the plurality of messages upon a receipt of each thereof;

a non-transitory computer-readable medium coupled with the processor, the non-transitory computer readable medium storing instructions which cause the processor to:

evaluate the data entries stored in the data store;

define, each of a plurality of portions of the application, by a pair of checkpoints of the plurality of checkpoints;

detect that a message processing latency of one or more of the plurality of messages through a subset of the plurality of portions of the application satisfies a delay condition, and based thereon, augment each of the data entries associated with the pair of checkpoints defining the portions of the subset to indicate a delay; and

upon receipt of a query that is limited to portions of the application that indicate the delay, search only the augmented data entries.

18 . The measurement indexing system of claim 17 , wherein the delay condition is determined based on historical performance of messages that were previously processed through each of the portions of the subset.

19 . The measurement indexing system of claim 17 , wherein the delay condition is configurable by a user.

20 . The measurement indexing system of claim 17 , wherein the instructions are further configured to cause the processor to increase a number of checkpoints within each of the portions of the subset.

21 . The measurement indexing system of claim 17 , wherein the delay condition comprises one of: (i) an amount of time that elapses for a message to traverse a portion of the plurality of portions of the application exceeds a threshold amount of time; (ii) the amount of time that elapses for a message to traverse the portion of the application exceeds the amount of time that elapses for a message to traverse a different portion of the application; (iii) the amount of time that elapses for a message to be processed by the portion of the application 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 the portion of the application exceeds a threshold number of messages.

22 . The measurement indexing system of claim 17 , wherein the instructions further cause the processor to:

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

23 . The measurement indexing system of claim 22 , wherein the limited query is faster than the query to search all of the data entries.

24 . The measurement indexing system of claim 17 , wherein the detection of whether the message processing latency through each of the portions of the subset satisfies the delay condition comprises determination of an elapse of time between times when the one or more messages traversed each of the portions of the subset.

25 . The measurement indexing system of claim 17 , wherein the instructions are further configured to cause the processor to determine the message processing latency through each of the portions of the subset based on the data entries stored in the data store and indicative of times when the one or more messages traversed each of the portions of the subset.

26 . The measurement indexing system of claim 17 , wherein the message processing latency of each of the portions of the subset is determined based on the data entries stored in the data store during the processing thereof of the pair of checkpoints.

27 . The measurement indexing system of claim 17 , wherein the limited query comprises one or more of: (i) a determination of percentiles associated with message processing; and (ii) a determination of the message processing latency through each of the portions of the subset over a specified timeframe.

28 . The measurement indexing system of claim 17 , 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.

29 . The measurement indexing system of claim 17 , wherein the evaluation occurs only after all of the plurality of messages have been processed by the application.

30 . The measurement indexing system of claim 17 , wherein the limited query is received only after all of the plurality of messages have been processed by the application.

31 . The measurement indexing system of claim 17 , wherein the pair of checkpoints are not consecutive.

32 . The measurement indexing system of claim 17 , wherein the instructions are further configured to cause the processor to modify all of the data entries between the pair of checkpoints defining each of the portions of the subset to indicate a delay.

33 . A measurement indexing system comprising:

means for evaluating a data store, which stores data entries tracing a progress of a traversal of each of a plurality of messages through a plurality of checkpoints of an application operative to process the plurality of messages upon a receipt of each thereof; and

means for defining each of a plurality of portions of the application by a pair of checkpoints of the plurality of checkpoints;

means for detecting that a message processing latency of one or more of the plurality of messages through a subset of the plurality of portions of the application satisfies a delay condition, and based thereon, augmenting each of the data entries associated with the pair of checkpoints defining the portions of the subset to indicate a delay; and

means for searching, upon receiving a query that is limited to portions of the application that indicate the delay, only the augmented data entries.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2024
From: KAVANAGH, KYLE DENNIS; ACUÑA-ROHTER, JOSÉ ANTONIO; WONG, DAVID MICHAEL
To: CHICAGO MERCANTILE EXCHANGE INC.
Reel/Frame 068689/0353 →
Continuity (4)
Continuation 18239356 · Aug 29, 2023
Continuation 17015184 · Sep 9, 2020
Continuation 15726922 · Oct 6, 2017
Related Publication 20240427753A1 · Dec 26, 2024
References Cited (31)
US 6771607B1 · Russell et al. · 2004 [cited by applicant]
US 7020167B2 · Russell et al. · 2006 [cited by applicant]
US 7039610B2 · Morano et al. · 2006 [cited by applicant]
US 7831491B2 · Newell et al. · 2010 [cited by applicant]
US 7853499B2 · Czupek et al. · 2010 [cited by applicant]
US 7870431B2 · Cirne · 2011 [cited by applicant]
US 10782990B1 · Suarez et al. · 2020 [cited by applicant]
US 20050096999A1 · Newell et al. · 2005 [cited by applicant]
US 20050203826A1 · Farrell et al. · 2005 [cited by applicant]
US 20050289160A1 · Ashwin et al. · 2005 [cited by applicant]
US 20060029016A1 · Peles · 2006 [cited by applicant]
US 20080177756A1 · Kosche et al. · 2008 [cited by applicant]
US 20080306711A1 · Bansal · 2008 [cited by applicant]
US 20090257319A1 · Henzler · 2009 [cited by applicant]
US 20100125661A1 · Peräläet al. · 2010 [cited by applicant]
US 20120290663A1 · Hsieh · 2012 [cited by examiner]
US 20140006243A1 · Boudreault et al. · 2014 [cited by applicant]
US 20150073962A1 · Bixby et al. · 2015 [cited by applicant]
US 20150120637A1 · Eom et al. · 2015 [cited by applicant]
US 20150127513A1 · Studnitzer et al. · 2015 [cited by applicant]
US 20150149625A1 · Piro, Jr. · 2015 [cited by applicant]
US 20150161727A1 · Callaway et al. · 2015 [cited by applicant]
US 20150347268A1 · Garrett et al. · 2015 [cited by applicant]
US 20160098697A1 · Dunsmore · 2016 [cited by applicant]
US 20160328435A1 · Kavanagh et al. · 2016 [cited by applicant]
US 20170310569A1 · Clemm et al. · 2017 [cited by applicant]
US 20180032574A1 · Vandenberg · 2018 [cited by applicant]
EP 1008938A2 · 2000 [cited by applicant]
WO 2012098341 · 2012 [cited by applicant]
Extended European Search Report, from EP 18198486.5, Dec. 3, 2018, EP. [cited by applicant]
Summons to Attend Oral Proceedings, issued in European Application No. 18198486, Nov. 25, 2021, EP. [cited by applicant]