Queue Serving Engine for Time-Sensitive Data Delivery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Publish/subscribe systems face challenges in efficiently delivering time-sensitive data to a large number of recipients while maintaining scalability and ensuring that higher-priority messages are not impeded by lower-priority messages, leading to potential data staleness and increased hardware and bandwidth requirements.
Innovation Solution
Implementing a message broker with separate queues for each client terminal, using a queue serving engine that prioritizes higher-priority messages and fragments lower-priority messages to avoid blocking, and dynamically allocating threads to manage resource usage, allowing for efficient transmission of time-sensitive data without overwhelming the system.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If a message broker manages transmission to a large number of subscribers, then data delivery coverage is improved, but hardware and bandwidth requirements increase
Solution Approach 1:
The patent segments the subscriber base into multiple groups, with each queue serving a specific group of subscribers. This segmentation allows the system to manage and serve subscribers in smaller batches, reducing the peak bandwidth and hardware requirements compared to serving all subscribers simultaneously.
Solution Approach 2:
The patent implements periodic action through scheduled queue servicing, where queues are served at different times rather than all at once. The system uses time-based prioritization and periodic queue processing to distribute the load over time, reducing instantaneous hardware and bandwidth demands while maintaining delivery coverage.
2Reliability
If lower-priority messages are transmitted, then message completeness is improved, but higher-priority message delivery is impeded
Solution Approach 1:
The patent implements dynamic queue prioritization where the serving order of queues is not fixed but changes based on the priority of messages available. The system dynamically adjusts which queues are serviced and in what order, ensuring that higher-priority messages are always delivered first while still eventually delivering lower-priority messages to maintain completeness.
Solution Approach 2:
The system uses feedback mechanisms to monitor message priorities and queue states, then adjusts queue servicing decisions accordingly. When high-priority messages are detected, the system feedback-drivenly prioritizes those queues, ensuring speed for critical messages while maintaining overall message completeness through continuous monitoring and adjustment.
3Speed
If data is delivered rapidly to many subscribers, then time-sensitivity is improved, but system scalability is compromised
Solution Approach 1:
The patent segments the system into multiple independent queues that can be served separately, allowing the system to scale by adding more queues rather than increasing the capacity of a single centralized broker. This segmentation enables rapid data delivery to each segment while maintaining overall system scalability through modular expansion.
Solution Approach 2:
The queue serving engine is designed with multi-functionality to handle different queue priorities, message types, and subscriber groups through a single unified component. This universality allows the system to maintain fast delivery performance while scaling to accommodate diverse and growing subscriber requirements without compromising adaptability.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Time-sensitive data delivery is described. In one example, time-sensitive data is transmitted from a server to a plurality of client terminals using a separate queue for each of the client terminals and at least one queue serving engine for serving the queues. Requests are received from the client terminals to subscribe to a topic, and, when a data message relating to the topic is received, the message is stored and a reference to the message added to the client terminal queues. Each queue is independently served by its associated queue serving engine. The queue serving engine determines when to transmit the message to the queue's associated client terminal independence on the queue contents. For example, each queue comprises a low-priority and a higher-priority sub-queue. Low-priority messages are only transmitted when no higher-priority messages are pending, and low-priority messages are divided into fragments such that their transmission does not impede incoming higher-priority messages.