IP Library Granted Patent US 9,843,550
Granted Patent B2
US 9,843,550 · App. 14/953,354 · Granted Dec 12, 2017

Processing messages in a data messaging system using constructed resource models

Inventors: John Hosie (Hursley, GB); Martin A. Ross (Hursley, GB); Craig H. Stirling (Hursley, GB); Dominic J. Storey (Hursley, GB)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L51/26G06F9/546H04L47/2416H04L47/2441H04L47/50H04L47/56
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 9,843,550
App. No.
14/953,354
Granted
Dec 12, 2017
Kind
B2
Abstract

A data messaging system includes a plurality of processing nodes. Each message processed by the data messaging system has associated with it a priority level. A first message is received for processing at a processing node of the plurality of processing nodes. It is determined if the processing node has an associated message staging area, and if a second message received by the data messaging system has a higher priority value than the first message. Based on a determination that the second message has a higher priority value than the first message, the processing of the first message by the processing node is delayed, and the second message is processed using the processing node instead.

Claims (50)

1. A computer-implemented method of processing messages in a data messaging system comprising a plurality of processing nodes, wherein each message processed by the data messaging system has associated with it a priority level, comprising:

constructing, by a processor of a data messaging system comprising a plurality of processing nodes, a resource model for each processing node of the plurality of processing nodes, the constructing comprising:

monitoring, by the processor, the plurality of processing nodes;

capturing statistical data, by the processor, from each of the plurality of processing nodes about the processing of messages processed by each of the plurality of processing nodes of the data messaging system; and

building the resource model, by the processor, for each of the plurality of processing nodes based on the captured statistical data such the data messaging system is configured to determine what resources will be used by each of plurality of processing nodes when processing subsequent messages;

based on the constructed resource models, identifying, by the processor, a processing node in the plurality of processing nodes that will experience limiting processing resources during operation of the data messaging system and then associating, by the processor, a staging area with the identified processing node;

after associating the staging area with the identified processing node, receiving, by the processor, a first message for processing at a processing node of the plurality of processing nodes;

determining that the processing node has an associated message staging area;

determining, by the processor, that a second message received by the data messaging system has a higher priority value than the first message;

after determining that the second message received by the data messaging system has a higher priority value than the first message:

determining, by the processor, based on the constructed resource model of the processing node, an amount of at least one processing resource required by the first message;

determining, by the processor, based on the constructed resource model of the processing node, an amount of the at least one processing resource required by the second message;

determining, by the processor, the amount of the at least one processing resource available to the processing node; and

delaying processing of the first message by the processing node based only on a determination, using the determined amounts, that processing of the first message by the processing node would delay the processing of the second message.

2. A computer-implemented method as claimed in claim 1 , further comprising the step of saving the priority values of messages received by the data messaging system in a global store.

3. A computer-implemented method as claimed in claim 1 , wherein the processing delay is caused by CPU availability, memory availability, disk I/O queues, or processing thread availability.

4. A computer-implemented method as claimed in claim 1 , wherein the processing of the first message is delayed only if it has been previously delayed less than a predetermined number of times.

5. A computer-implemented method as claimed in claim 1 , wherein the processing of the first message is delayed by temporarily suspending the processing thread in which the first message is being processed.

6. A data messaging system for processing messages comprising a processor communicatively coupled to a memory, a plurality of processing nodes, wherein each message processed by the data messaging system has associated with it a priority level, wherein the data messaging system is configured to:

construct a resource model for each processing node of the plurality of processing nodes by at least:

monitoring the plurality of processing nodes;

capturing statistical data, by the processor, from each of the plurality of processing nodes about the processing of messages processed by each of the plurality of processing nodes of the data messaging system; and

building the resource model, by the processor, for each of the plurality of processing nodes based on the captured statistical data such the data messaging system is configured to determine what resources will be used by each of plurality of processing nodes when processing subsequent messages;

based on the constructed resource models, identify a processing node in the plurality of processing nodes that will experience limiting processing resources during operation of the data messaging system, and then associate a staging area with the identified processing node in the data messaging system

after associating the staging area with the identified processing node, receive a first message for processing at a processing node of the plurality of processing nodes;

determine that the processing node has an associated message staging area;

determine that a second message received by the data messaging system has a higher priority value than the first message;

after determining that the second message received by the data messaging system has a higher priority value than the first message:

determine, based on the constructed resource model of the processing node, an amount of at least one processing resource required by the first message;

determine, based on the constructed resource model of the processing node, an amount of the at least one processing resource required by the second message;

determine the amount of the at least one processing resource available to the processing node; and

delay processing of the first message by the processing node based only on a determination, using the determined amounts, that the processing of the first message by the processing node would delay the processing of the second message.

7. A data messaging system as claimed in claim 6 , further comprising a global store, and further arranged to save the priority values of messages received by the data messaging system in the global store.

8. A data messaging system as claimed in claim 6 , wherein the processing delay is caused by CPU availability, memory availability, disk I/O queues, or processing thread availability.

9. A data messaging system as claimed in claim 6 , wherein the processing of the first message is delayed only if it has been previously delayed less than a predetermined number of times.

10. A data messaging system as claimed in claim 6 , arranged to delay the processing of the first message by temporarily suspending the processing thread in which the first message is being processed.

11. A computer program product for processing messages in a data messaging system comprising a plurality of processing nodes, wherein each message processed by the data messaging system has associated with it a priority level, the computer program product comprising a non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code configured to perform a method comprising:

constructing, by a processor of a data messaging system comprising a plurality of processing nodes, a resource model for each processing node of the plurality of processing nodes, the constructing comprising:

monitoring, by the processor, the plurality of processing nodes;

capturing statistical data, by the processor, from each of the plurality of processing nodes about the processing of messages processed by each of the plurality of processing nodes of the data messaging system; and

building the resource model, by the processor, for each of the plurality of processing nodes based on the captured statistical data such the data messaging system is configured to determine what resources will be used by each of plurality of processing nodes when processing subsequent messages;

based on the constructed resource models, identifying, by the processor, a processing node in the plurality of processing nodes that will experience limiting processing resources during operation of the data messaging system and then associating, by the processor, a staging area with the identified processing node;

after associating the staging area with the identified processing node, receiving, by the processor, a first message for processing at a processing node of the plurality of processing nodes;

determining that the processing node has an associated message staging area;

determining, by the processor, that a second message received by the data messaging system has a higher priority value than the first message;

after determining that the second message received by the data messaging system has a higher priority value than the first message:

determining, by the processor, based on the constructed resource model of the processing node, an amount of at least one processing resource required by the first message;

determining, by the processor, based on the constructed resource model of the processing node, an amount of the at least one processing resource required by the second message;

determining, by the processor, the amount of the at least one processing resource available to the processing node; and

delaying processing of the first message by the processing node based only on a determination, using the determined amounts, that the processing of the first message by the processing mode would delay the processing of the second message.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DOORDASH, INC.
Reel/Frame 057826/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2015
From: HOSIE, JOHN; ROSS, MARTIN A.; STIRLING, CRAIG H.; STOREY, DOMINIC J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037161/0636 →
Continuity (1)
Related Publication 20170155610A1 · Jun 1, 2017