Event Scheduler Subsystem for Aggregated, Prioritized Serialization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software systems face challenges in determining the order and timing of processing events from multiple producer applications on a shared processor, as they lack concurrent support for serialization, aggregation, and prioritization based on event types, and are not user-programmable.
Innovation Solution
An event scheduler sub-system that supports concurrent serialization, aggregation, and prioritization of events, allowing flexible programming to handle events with different priorities and types, and includes a priority queue system with insertion order numbers for efficient processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If events are processed using serialized processing with a queue-based actor thread, then events are processed in order, but processing efficiency decreases due to sequential handling
Solution Approach 1:
The patent segments events into different priority levels (high priority and low priority queues) and processes them separately. High priority events are handled immediately when the consumer application is scheduled, while low priority events are processed when high priority events are exhausted. This segmentation allows parallel processing paths within the same consumer application thread, improving efficiency while maintaining order within each priority level.
2Productivity
If events are aggregated using a lookup-table based on map or hash, then redundant events are reduced, but event type flexibility is limited
Solution Approach 1:
The patent implements dynamic aggregation where the aggregation behavior adapts based on event characteristics. The system determines whether to aggregate events or process them individually based on real-time conditions such as event type, source, and current queue state. This dynamic approach allows the system to aggregate similar events for efficiency while maintaining the ability to process unique or high-priority events individually, providing both productivity improvement and flexibility.
3Productivity
If events are prioritized using a priority queue, then high priority events are processed first, but concurrent support for multiple processing strategies is lacking
Solution Approach 1:
The patent creates a universal event processing framework that combines multiple processing strategies within a single consumer application. The system maintains both high priority and low priority queues, implements aggregation logic for similar events, and provides serialization capabilities. This multi-functional approach allows the same consumer application to handle prioritization, aggregation, and sequential processing based on event characteristics, eliminating the need for separate processing systems.
4Productivity
If multiple events from the same producer application accumulate before CPU scheduling, then CPU resource constraints are exposed, but determining processing order becomes complex
Solution Approach 1:
The patent applies preliminary action by pre-classifying events into priority categories and organizing them in separate queues before CPU scheduling occurs. The system performs aggregation checks and priority assignments in advance, so when the consumer application is scheduled on the CPU, events are already organized and ready for efficient processing. This preliminary organization reduces the complexity of determining processing order during actual execution.
Data Source
AI summary
Disclosed herein are methods and systems involving an event scheduler sub-system configured for aggregation, prioritization, and serialization of software application events, including a method comprising receiving event and associated event data; determining event type and event object key; storing the event data in an event handler data table; generating a priority group number and an insertion order number associated with the event; generating a new queue element comprising the priority group number, the insertion order number, a reference to the event handler, the object key, and the event type; inserting the new queue element to an event scheduler priority queue; sending a signal from the event handler to the event scheduler indicating availability of the new queue element to process; retrieving the event data associated with a queue element with a highest priority in the priority queue; and passing the event data to an admin application for processing.


