Pattern Matching Scheduler for Message Passing Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In message passing environments, especially with large numbers of interrelated processes, existing systems face inefficiencies in waking up idle processes to match incoming messages, leading to computationally expensive operations and delayed execution of waiting processes.
Innovation Solution
A process scheduler identifies upstream processes by extracting and storing message patterns in a data structure, allowing for expedited execution of waiting processes by matching incoming messages with these patterns without awakening each idle process, thereby reducing computational overhead and speeding up process execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the system wakes up idle processes to match incoming messages, then message delivery can be ensured, but computational overhead increases and execution is delayed
Solution Approach 1:
The system performs preliminary actions by extracting message patterns from processes before the processes actually need the messages. These patterns are stored in a data structure in advance, so when messages arrive, the system can quickly match them against pre-extracted patterns without waking up idle processes, thus ensuring reliable message delivery while minimizing execution delay
Solution Approach 2:
The patent introduces an intermediary mechanism - a data structure storing extracted message patterns - that acts as a mediator between incoming messages and idle processes. Instead of directly waking up processes to match messages, the system uses this intermediary pattern database to perform matching, reducing the need to activate idle processes and thereby decreasing execution delay while maintaining message delivery reliability
2Reliability
If the system wakes up idle processes to match incoming messages, then message matching can be performed, but computational expense increases
Solution Approach 1:
The system extracts and stores message patterns from processes in advance, before they are needed for matching. This preliminary extraction and storage in a data structure reduces the computational expense during actual message matching operations, as the system can quickly query pre-processed patterns rather than performing full message matching on idle processes
Solution Approach 2:
The patent creates copies of message patterns from the original messages and stores them in a data structure. These pattern copies can be quickly matched against incoming messages without requiring the original idle processes to be activated, significantly reducing computational expense while ensuring accurate message matching through the pattern copies
3Adaptability or versatility
If the system manages many interrelated processes, then system functionality increases, but complexity of process management increases
Solution Approach 1:
The system extracts message patterns from processes and stores them separately in a data structure. This extraction separates the message matching functionality from the process management complexity, allowing the system to handle many interrelated processes more efficiently by managing their patterns independently rather than managing each process individually
Solution Approach 2:
The data structure storing message patterns serves multiple functions: it enables message matching, tracks process dependencies, and facilitates upstream process identification. This universal pattern-based approach allows the system to manage many interrelated processes through a single unified mechanism rather than requiring separate management structures for each process, thereby reducing overall complexity while maintaining system functionality
Data Source
AI summary
Processes in a message passing system may be launched when messages having data patterns match a function on a receiving process. The function may be identified by an execution pointer within the process. When the match occurs, the process may be added to a runnable queue, and in some embodiments, may be raised to the top of a runnable queue. When a match does not occur, the process may remain in a blocked or non-executing state. In some embodiments, a blocked process may be placed in an idle queue and may not be executed until a process scheduler determines that a message has been received that fulfills a function waiting for input. When the message fulfills the function, the process may be moved to a runnable queue.


