Message Tagging for Redundant Processing in Distributed Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed computing environments, there is a need to propagate state information between instances of an application running on different servers to avoid redundant processing of messages, particularly in load-balanced server applications where messages traverse multiple servers, and it is desirable to determine if a message has already been processed by another instance of the same application.

Innovation Solution

The solution involves using a tag or token within the message to indicate processing, allowing downstream instances to determine if a message has been processed, with the tag containing information about the application and its domain, enabling appropriate decision-making and ensuring that messages are processed only once per pool.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If messages are processed by multiple instances of an application in a load-balanced environment, then message handling capacity is improved, but redundant processing occurs when the same message is processed multiple times

Engineering Contradiction:
Improvemessage handling capacityVSAvoidredundant processing
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

A tag is introduced as an intermediary element attached to messages to carry state information. The tag contains a pool identifier that enables downstream instances to recognize and skip redundant processing without requiring complex inter-instance communication infrastructure

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The message is tagged with processing state information in advance (when first processed) so that downstream instances can immediately recognize and skip redundant processing without needing to query other instances or maintain complex state synchronization

Inventive Principle:
Principle #10Preliminary action

2Loss of energy

If state information is propagated between application instances, then redundant processing is prevented, but system complexity increases due to state management requirements

Engineering Contradiction:
Improveredundant processing preventionVSAvoidstate management complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The state information is extracted from the application instances and embedded directly into the message as a tag. This removes the need for complex inter-instance state synchronization mechanisms while maintaining the ability to prevent redundant processing

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The message is copied with its tag attached through multiple servers in the load-balanced environment. The tag travels with the message copy, enabling each instance to independently determine whether to process without complex state management

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If messages flow through multiple servers in a load-balanced environment, then processing flexibility is improved, but it becomes difficult to track whether a message has been processed by another instance

Engineering Contradiction:
Improveprocessing flexibilityVSAvoidmessage processing state information
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

A tag serves as an intermediary that carries processing state information through the message as it flows through multiple servers. The tag preserves this information throughout the message journey without requiring the message to return to the original processing instance

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The tag is nested within the message structure, allowing state information to be carried inside the message itself as it traverses through multiple servers and load balancers

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS8001205B2State management in a distributed computing system
Publication Date: 2011.08.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8001205B2 patent drawing
  • US8001205B2 patent drawing
  • US8001205B2 patent drawing

AI summary

Techniques to allow applications to propagate information to the other instances of the applications running on downstream servers are provided. An indicator, such as a token, tag, etc., is placed within or added to a message that is flowing through the distributed environment to signify that a process has been performed on the message. For example, when an instance of an application running on a server receives a message, the application instance can examine the indicator contained in the message and take appropriate action. If the application instance decides to process the message, the application instance can include an indicator in the message to signify that the application instance processed the message. The presence of the indicator signifies that the message has been processed by an upstream instance of the same application.