Asynchronous Event Matching via Adaptive Logic Tree
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing conditional instruction processing systems using batch-processing architectures cannot operate in real-time, leading to significant delays in processing instructions, which is detrimental in applications where speed of execution is critical.
Innovation Solution
An asynchronous event-based instruction processing system that employs an adaptive queuing system, event matching processor with parallel processing resources, and an adaptive logic tree data structure to continuously match and process asynchronous event records with expected event records, allowing for real-time processing and recycling of unmatched records.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If batch-processing architecture is used for conditional instruction processing, then the system can handle complex instruction processing requirements, but the processing speed is significantly delayed and cannot operate in real-time
Solution Approach 1:
The batch processing system is segmented into multiple parallel processing channels, each capable of independently processing instructions. This allows the system to maintain real-time processing capabilities while handling complex instruction sets, as multiple segments work simultaneously rather than sequentially through a single batch process
Solution Approach 2:
The system dynamically adjusts its processing mode between batch and real-time operations based on workload characteristics and priority levels. High-priority instructions can be routed to real-time processing channels while lower-priority tasks continue through batch processing, enabling the system to optimize speed without sacrificing overall productivity
2Measurement precision
If the system processes large volumes of asynchronous events with complex matching rules, then processing accuracy is improved, but the processing time increases significantly
Solution Approach 1:
The system performs preliminary filtering and pre-matching of asynchronous events against expected event patterns before applying complex matching rules. This preliminary action reduces the volume of events that require full complex matching, thereby maintaining high accuracy while reducing overall processing time
Solution Approach 2:
The matching process operates continuously rather than in discrete batches, with events being matched against expected patterns as they arrive. This continuous operation maintains high accuracy through thorough matching while minimizing time loss by eliminating idle periods between processing cycles
3Reliability
If the system maintains a queue for asynchronous events, then processing reliability is improved, but the queue management complexity increases
Solution Approach 1:
The queue system automatically manages itself through configurable parameters such as maximum queue size, timeout values, and priority assignments. This self-service capability maintains processing reliability by ensuring events are processed in order and none are lost, while reducing management complexity by eliminating the need for manual queue intervention
Data Source
Figure 1
Figure 2A~2B
Figure 3A
AI summary
There is described an asynchronous event-based instruction processing system (120) for processing conditional instruction records (123) continuously in real-time, each conditional instruction record having one or more associated asynchronous event records (129), which need to be received by the system for an instruction of the conditional instruction record (123) to be executed, the system comprising: an adaptive queuing system (130) for receiving a plurality of asynchronous event records (129) and temporarily storing the same in a queue (202), each asynchronous event record (129) pertaining to an event occurring asynchronously to the generation of the associated conditional instruction record (123) to which the asynchronous event record relates, the adaptive queuing system (130) comprising a queue length monitoring module (204) for monitoring the length of the queue of asynchronous event records and providing queue length information (205) to an event matching processor (128); an instruction processor (122) for receiving a conditional instruction record (123) having a plurality of parameters, the instruction processor being arranged to generate an expected event record (125) using at least some of the parameters (136,138) of the received conditional instruction record (123), wherein the expected event record (125) comprises static parameters (138) which remain static throughout the processing of the conditional instruction record (123) and variable parameters (138) which can vary during the processing of the conditional instruction record (123); the event matching processor (128) for processing each of the received asynchronous event records (129) to determine if they correspond to any of the received conditional instruction records (123); the event matching processor (128) comprising: a plurality of processing resources (242) which operate in parallel and a resource allocation network (240), the resource allocation network being arranged to access a proportional amount of the available processing resources (242) dependent on the size of the queue (202) as determined by the queue length information (205); and an adaptive logic tree data structure (246) arranged to be used concurrently by the processing resources (242) for matching the plurality of received asynchronous event records (129) with the parameters of each of the expected event records (125), the adaptive logic tree data structure (246) comprising a plurality of nodes, including at least one static node representing a static parameter (136) of an expected event record (125) and at least one variable node representing a variable parameter (138) of an expected event record (125); wherein the event matching processor (128) is arranged to indicate to the instruction processor (122) if the events specified by any expected event records (125) have occurred as determined by the presence of one or more correctly matched asynchronous event records (129); and a recycling engine (132) for recycling any asynchronous event records (129) which have been determined using the adaptive tree structure (246) not to match an expected event record (125) at a current moment in time, the recycling engine placing the asynchronous event record (129) back in the queue (202) of the adaptive queuing system (130); wherein the system is arranged to continually create expected event records (125) as conditional instruction records (123) are received and to match these continuously with asynchronous event records (129) present in the system which have not been matched to the expected event records.