Non-Greedy Dataflow Execution Blocks for Scalable Load Balancing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If target nodes consume data greedily, then data is processed quickly, but nodes become overwhelmed or consume data before needing it
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.
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.
Data Source
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.


