Producer-Side Message Prioritization via Target Time Queuing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing Java Message Service (JMS) prioritization scheme is consumer-based and relative, leading to higher priority messages being processed continuously, causing lower priority messages to languish in the queue and fail to meet service level objectives, even if the application could have processed them later without impacting higher priority messages.

Innovation Solution

Implementing producer-side prioritization by using a command producer to apply priority information to determine target times for commands, which are then queued and processed by a command consumer, allowing for dynamic adjustment of processing times based on priority and system state, thereby converting relative priorities to absolute urgency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If consumer-based relative prioritization is used (JMS), then higher priority messages can be processed continuously, but lower priority messages will languish in the queue and fail to meet service level objectives

Engineering Contradiction:
Improveprocessing speed of high priority messagesVSAvoidservice level objective compliance of low priority messages
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent inverts the traditional consumer-based prioritization approach by implementing producer-side prioritization. Instead of consumers selecting messages from the queue based on priority, the producer assigns target times to messages when creating them. This inversion shifts control from the consumer to the producer, allowing the system to guarantee service level objectives for all priority levels while maintaining high productivity for urgent messages.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent applies preliminary action by having the producer determine and assign target times to messages at the moment of message creation. This preliminary assignment of processing timing allows the system to pre-plan the processing schedule, ensuring that both high and low priority messages receive appropriate attention without requiring complex consumer-side selection logic.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If multiple JMS consumers are run for different priority ranges, then priority-based processing can be improved, but idle threads are created when no messages are available in specific priority ranges

Engineering Contradiction:
Improvepriority-based processing accuracyVSAvoidwasted processing resources from idle threads
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent makes the consumer universal by designing it to handle all priority levels through a single consumer instance. The consumer retrieves messages based on target times assigned by the producer, rather than requiring separate consumers for different priority ranges. This universal approach eliminates idle threads while maintaining accurate priority-based processing, as the single consumer dynamically adapts to the actual message mix in the queue.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Loss of energy

If a limited number of threads are allocated to process messages in a priority range, then resource usage is controlled, but processing bottlenecks occur when many messages are in the queue

Engineering Contradiction:
Improveprocessing resource allocation controlVSAvoidmessage processing throughput
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent introduces dynamics by making the message processing schedule flexible and adaptive through target time assignments. The producer assigns target times based on current system state and message priority, allowing the processing rate to dynamically adjust to demand. This dynamic approach enables the system to scale processing throughput when needed while maintaining resource control, eliminating the rigid bottleneck of fixed thread allocation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11922236B2Producer-side prioritization of message processing
Publication Date: 2024.03.05 OPEN TEXT GXS ULC
  • US11922236B2 patent drawing
  • US11922236B2 patent drawing
  • US11922236B2 patent drawing

AI summary

Systems, methods, and computer program products for producer-side prioritization of message processing. Producer-side prioritization of message processing may include receiving an input message according to a messaging protocol for communicating between software components, where the input message comprises message priority information for the input message, producing a command for a next step in the processing flow, the command including a target time determined using the message priority information from the input message, queuing the command in a command queue, selecting the command from the command queue based on a determination that the target time has expired, and processing the command.