IP Library › Granted Patent US 10,628,240
Granted Patent B2
US 10,628,240 · App. 15/843,605 · Granted Apr 21, 2020

Heterogeneous event queue

Inventor: Craig W. Stanfill (Lincoln, MA)
Assignee: Ab Initio Technology LLC
G06F9/542G06F9/4881G06F9/546G06F2209/548
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,628,240
App. No.
15/843,605
Granted
Apr 21, 2020
Kind
B2
Abstract

Processing multiple kinds of event messages in a computing system includes storing the event messages as records associated with event messages. Each event message includes a timestamp and the records include a field indicating a target delivery time for an event result for the event message, the target delivery time being determined according to a kind of the event message. The event messages are processed to deliver event results based on information in the event messages and the target delivery times. Event messages are prioritized to deliver event results according to information indicating priority. A target delivery time is computed for event messages having a same priority based on fixed delays relative to their timestamps. Event results are delivered based on a comparison of their target delivery times to a clock time.

Claims (39)

1. A method for processing multiple kinds of event messages in a computing system, the method including:

storing received event messages in a data storage system, the data storage system including storage for a first plurality of records associated with event messages, where each event message includes a timestamp, and records associated with event messages include a field indicating a target delivery time for an event result for the event message, the target delivery time for at least some event messages being determined according to a kind of the event message; and

processing the stored event messages to deliver event results based on information in the stored event messages and the target delivery times in the records associated with the event messages, the processing including:

prioritizing event messages to deliver event results according to information stored in the event messages indicating priority,

computing a target delivery time for each event message in a first set of one or more event messages that store information indicating a same priority for all of the event messages in the first set based on a fixed delay relative to its respective timestamp, and

delivering event results for event messages that are deliverable based on a comparison of their target delivery times to a clock time.

2. The method of claim 1 wherein the processing further includes reordering a second set of event messages containing fewer than all of the stored event messages to process event messages in the second set of event messages according to the timestamps in the event messages instead of processing event messages in the second set of event messages according to an order in which those event messages were received.

3. The method of claim 2 wherein the target delivery time associated with a particular event message is computed after the particular event message is received using a function that is defined at least in part by information included in the particular event message.

4. The method of claim 3 wherein, for event messages associated with a first event class, the function returns a target delivery time that is based on the clock time.

5. The method of claim 4 wherein event messages associated with the first event class are not in the second set that is reordered, and are processed according to the order in which those event messages were received.

6. The method of claim 4 wherein, for event messages associated with a second event class of lower priority than the first event class, the function returns a target delivery time that is a sum of the fixed delay and a timestamp in the event message.

7. The method of claim 6 wherein event messages associated with the second event class are in the second set that is reordered, and are reordered according to timestamps stored in the event messages associated with the second class.

8. The method of claim 6 wherein, for event messages associated with a third event class of lower priority than the second event class, the function returns a target delivery time that is based on a timestamp stored in the event message.

9. The method of claim 8 wherein event messages associated with the third event class are in the second set that is reordered, and are reordered according to timestamps stored in the event messages associated with the third class.

10. The method of claim 6 wherein, for event messages associated with a third event class of lower priority than the second event class, the function returns a target delivery time that is based on a repeating schedule.

11. The method of claim 2 wherein the second set includes event messages that all include a common key value.

12. The method of claim 1 wherein prioritizing event messages to deliver event results according to information stored in the event messages includes storing event messages associated with event classes of different priorities in different respective ordered queues, and selecting a next event message to evaluate for potential delivery of an event result from a front of an ordered queue of a highest priority that is not empty.

13. The method of claim 1 wherein:

event messages of first set of one or more of the event messages are associated with a first event class with a first priority,

event messages of a second set of one or more of the event messages are associated with a second event class with a second priority, lower than the first priority, and

the computed target delivery time for each event message of the second set of one or more event messages is a sum of the fixed delay and a timestamp in the event message.

14. Software stored in a non-transitory form on a computer-readable medium, for processing event messages in a computing system, the software including instructions for causing the computing system to:

store received event messages in a data storage system, the data storage system including storage for a first plurality of records associated with event messages, where each event message includes a timestamp, and records associated with event messages include a field indicating a target delivery time for an event result for the event message, the target delivery time for at least some event messages being determined according to a kind of the event message; and

process the stored event messages to deliver event results based on information in the stored event messages and the target delivery times associated with the event messages, the processing including:

prioritizing event messages to deliver event results according to information stored in the event messages indicating priority,

computing a target delivery time for each event message in a first set of one or more event messages that store information indicating a same priority for all of the event messages in the first set based on a fixed delay relative to its respective timestamp, and

delivering event results for event messages that are deliverable based on a comparison of their target delivery times to a clock time.

15. A computing system for processing event messages, the computing system including:

a data storage system for storing received event messages, the data storage system including storage for a first plurality of records associated with event messages, where each event message includes a timestamp, and records associated with event messages include a field indicating a target delivery time for an event result for the event message, the target delivery time for at least some event messages being determined according to a kind of the event message; and

at least one processor configured to process the stored event messages to deliver event results based on information in the stored event messages and the target delivery times associated with the event messages, the processing including:

prioritizing event messages to deliver event results according to information stored in the event messages indicating priority,

computing a target delivery time for each event message in a first set of one or more event messages that store information indicating a same priority for all of the event messages in the first set based on a fixed delay relative to its respective timestamp, and

delivering event results for event messages that are deliverable based on a comparison of their target delivery times to a clock time.

16. A computing system for processing event messages, the computing system including:

means for storing received event messages and storing a first plurality of records associated with event messages, where each event message includes a timestamp, and records associated with event messages include a field indicating a target delivery time for an event result for the event message, the target delivery time for at least some event messages being determined according to a kind of the event message; and

means for processing the stored event messages to deliver event results based on information in the stored event messages and the target delivery times associated with the event messages, the processing including:

prioritizing event messages to deliver event results according to information stored in the event messages indicating priority,

computing a target delivery time for each event message in a first set of one or more event messages that store information indicating a same priority for all of the event messages in the first set based on a fixed delay relative to its respective timestamp, and

delivering event results for event messages that are deliverable based on a comparison of their target delivery times to a clock time.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2018
From: STANFILL, CRAIG W.
To: AB INITIO SOFTWARE LLC
Reel/Frame 044771/0310 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2018
From: AB INITIO SOFTWARE LLC
To: AB INITIO ORIGINAL WORKS LLC
Reel/Frame 044771/0345 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2018
From: AB INITIO ORIGINAL WORKS LLC
To: AB INITIO TECHNOLOGY LLC
Reel/Frame 044771/0375 →
Continuity (2)
Provisional Application 62434472 · Dec 15, 2016
Related Publication 20180173577A1 · Jun 21, 2018