Non-Greedy Dataflow Execution Blocks for Scalable Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In dataflow networks, target nodes often become overwhelmed with incoming data or fail to consume data in a timely manner, leading to non-scalable systems due to greedy consumption patterns, where nodes wait for availability, occupying underlying processors or threads.

Innovation Solution

Implementing non-greedy consumption by execution nodes that maintain input queues and indicators of postponed messages, allowing them to postpone new offers until they have sufficient resources to process messages, and requesting messages from sources when ready, thereby avoiding unnecessary resource occupation and enabling dynamic load-balancing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If blocking is used to throttle data flow, then data consumption is controlled, but processors or threads are occupied leading to non-scalable systems

Engineering Contradiction:
Improvedata consumption controlVSAvoidsystem scalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the blocking mechanism from the traditional thread-based model and implements it through a non-greedy consumption model where execution blocks independently manage their message queues without occupying processor threads. This allows data flow control without the overhead of thread blocking, resolving the contradiction between reliable data consumption control and system scalability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces dynamic resource allocation where execution blocks can dynamically adjust their message queue capacity and consumption behavior based on available resources and demand. This dynamic approach allows the system to scale efficiently while maintaining controlled data consumption, eliminating the need for static thread-based blocking.

Inventive Principle:
Principle #15Dynamics

2Productivity

If target nodes consume data greedily, then data is processed quickly, but nodes become overwhelmed or consume data before needing it

Engineering Contradiction:
Improvedata processing speedVSAvoidnode overload prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent inverts the traditional greedy consumption model by implementing a non-greedy approach where execution blocks deliberately limit their data consumption based on available processing capacity. Instead of consuming all available data immediately, the system consumes only what can be processed, preventing node overload while maintaining efficient data flow through the network.

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

Solution Approach 2:

The patent implements feedback mechanisms where execution blocks continuously monitor their processing capacity and adjust their message consumption accordingly. This feedback loop ensures that nodes consume data at a rate matched to their processing capability, preventing overload while maintaining high productivity through coordinated data flow across the network.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8799378B2Non-greedy consumption by execution blocks in dataflow networks
Publication Date: 2014.08.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8799378B2 patent drawing
  • US8799378B2 patent drawing
  • US8799378B2 patent drawing

AI summary

Processing messages in dataflow networks. The method includes, at a first entity, receiving from a second entity a first offer of a first message to process. The method further includes determining to not process the first message. As a result of determining to not process the first message, such an indication is made to the second entity. Further as a result of determining to not process the first message, an indication is stored that the second entity offered a message. The indication includes an indicator correlated to the second entity. Subsequent to indicating to the second entity, using the indication the method includes indicating to the second entity availability to process a message.