Message Queue Management via Consumer Processing History

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In message queue management systems, there is a challenge in preventing excessive accumulation of messages that have been unsuccessfully processed by consumers, leading to reduced message throughput due to repeated redistribution of messages to consumers that cannot handle them.

Innovation Solution

A processing history is maintained to track consumers that have previously failed to process messages, allowing the system to distribute messages to consumers that have not failed or have failed fewer times, thereby reducing the risk of message accumulation and improving throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If messages are redistributed to consumers that have previously failed to process them, then message throughput is maintained through continuous retry attempts, but message accumulation occurs in the queue leading to reduced overall throughput

Engineering Contradiction:
Improvemessage throughputVSAvoidmessage accumulation in queue
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system implements feedback by tracking the processing history of each message and identifying consumers that have previously failed to process specific messages. This feedback mechanism allows the queue manager to make informed distribution decisions, avoiding sending messages to consumers with poor success rates and thereby preventing message accumulation while maintaining throughput.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary action by maintaining a processing history that records which consumers have successfully or unsuccessfully processed which messages. Before distributing a message, the queue manager checks this pre-established history to determine the most suitable consumer, preventing potential failures before they occur and reducing message accumulation.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If consumers are monitored and message distribution is adjusted based on their processing success rates, then message throughput is improved by avoiding unsuccessful consumers, but system complexity increases due to tracking and monitoring requirements

Engineering Contradiction:
Improvemessage throughputVSAvoidtracking and monitoring system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system applies self-service by having consumers automatically report their processing results (success or failure) back to the queue manager. This eliminates the need for complex external monitoring infrastructure, as the consumers themselves provide the necessary feedback data, simplifying the overall system architecture while maintaining throughput optimization.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The processing history mechanism serves multiple functions: it tracks consumer performance, guides message distribution decisions, and provides statistics for system analysis. This multi-functionality reduces the need for separate tracking systems, thereby minimizing added complexity while achieving throughput improvement.

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

Data Source

PatentUS10536416B2Intelligent message queue management
Publication Date: 2020.01.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10536416B2 patent drawing
  • US10536416B2 patent drawing
  • US10536416B2 patent drawing

AI summary

Aspects include managing distribution of messages from a message queue to a plurality of consumers for processing by maintaining a processing history for the messages in the message queue. The processing history identifies each message in the message queue by a message identifier and consumers having previously failed to successfully process a message in the message queue having the message identifier. Aspects also include considering the suitability of a particular consumer to receive a next message to be processed from the message queue by determining the message identifier of the next message and the consumer identifier of the particular consumer. Aspects further include distributing the next message to be processed to the particular consumer if the consumer identifier of the particular consumer is not present in the checked set of consumer identifiers.