Ordered Message Processing via Grouped Identifiers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Asynchronous directed graph models for high-throughput data flow processing cannot guarantee that documents are processed in order, leading to complexities in document ingestion and indexing, especially when documents have multiple components or attachments that require different processing times.
Innovation Solution
A highly parallel, asynchronous data flow processing system uses message identifiers to group dependent messages, ensuring that messages within a group are processed in order by maintaining a buffer for complete message receipt verification, allowing other messages to be processed independently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all messages are processed in order to ensure document processing order, then document processing integrity is maintained, but system throughput and parallelism are reduced
Solution Approach 1:
The patent segments messages into different groups based on their dependency relationships. Messages are divided into independent groups that can be processed in parallel, while maintaining order within each group. This segmentation allows the system to process multiple message groups simultaneously without compromising the ordering requirement within each group, thus resolving the contradiction between throughput and integrity.
Solution Approach 2:
The patent applies partial ordering rather than complete ordering to all messages. Only messages within the same dependent group require ordered processing, while messages from different groups can be processed in any order. This partial application of ordering constraints maintains document processing integrity for dependent messages while allowing parallel processing of independent messages, thereby improving system throughput.
2Productivity
If messages are processed in parallel to improve throughput, then system productivity increases, but message processing order cannot be guaranteed
Solution Approach 1:
The patent segments the message stream into multiple independent groups based on message identifiers and dependency relationships. Each group can be processed in parallel by different processing nodes, achieving high throughput. Within each segment, message order is preserved through buffer management mechanisms, thus maintaining reliability for dependent messages while enabling parallel processing of independent groups.
Solution Approach 2:
The patent introduces buffers as intermediary components between message reception and processing. These buffers temporarily store messages and manage their release in the correct order within each group. The buffer acts as a mediator that decouples the parallel processing capability from the ordering requirement, allowing messages to be processed in parallel while maintaining order through the intermediary buffer management.
3Productivity
If bounded queues are inserted between computation nodes to enable asynchronous processing, then node decoupling and parallel execution are achieved, but blocking occurs when queues are full
Solution Approach 1:
The patent dynamically manages buffer allocation and message routing based on the state of downstream nodes and queues. When queues are full, the system dynamically adjusts by routing messages to alternative buffers or processing paths, preventing blocking. This dynamic adaptation allows the system to maintain high parallel execution capability while minimizing blocking time through flexible resource allocation.
4Reliability
If message identifiers are used to track and group dependent messages, then ordered processing within groups is achieved, but message processing complexity increases
Solution Approach 1:
The patent uses a universal message identifier format that serves multiple functions: identifying the message source, indicating dependency relationships, and enabling group classification. This multi-functional identifier reduces the need for separate tracking mechanisms for each function, thereby maintaining ordered processing reliability while minimizing the increase in processing complexity through a consolidated identification approach.
Data Source
AI summary
A data flow processing system represents processing by a directed graph including processing nodes that generate, and process, groups of dependent messages and that can process such groups of messages in order. To identify a group of messages, the system applies message identifiers to messages. Processing of a message may generate child messages. A child message is assigned a message identifier that incorporates the message identifier of the parent message. The message identifier of the parent message is annotated to indicate the number of related child messages. The processing node maintains a buffer to store messages in the group. When a message is received, its message identifier indicates whether it is in a group and information about the group. From this information the processing node determines whether all messages within the group have been received, at which time the processing node can process the messages in order.


