Message Handling via Non-Persistent Storage Delay
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Message-oriented middleware systems face inefficiencies in handling guaranteed messages, as they often require persistent storage for reliability, which increases resource usage and reduces performance, especially when dealing with a large number of clients and messages.
Innovation Solution
Implementing a method where guaranteed messages are initially stored in non-persistent storage, with periodic removal as they are delivered, and then transferred to persistent storage after a dynamically determined delay interval, allowing for faster message handling and reduced resource usage by minimizing the need for persistent storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If guaranteed messages are stored in persistent storage to ensure reliability, then message integrity is improved, but resource consumption and processing speed deteriorate
Solution Approach 1:
The system dynamically switches between non-persistent and persistent storage based on message delivery status. Messages are initially stored in non-persistent storage for fast access, and only transferred to persistent storage if delivery fails or timing requires it. This dynamic storage strategy resolves the contradiction by providing fast message handling when possible while ensuring reliability only when necessary.
Solution Approach 2:
The patent changes the storage parameter (from persistent to non-persistent) based on the delivery timing and system state. By adjusting the persistence parameter dynamically rather than using a fixed storage mode, the system achieves both high-speed message handling and guaranteed delivery reliability, resolving the trade-off between speed and reliability.
2Reliability
If guaranteed messages are immediately stored in persistent storage, then reliability is improved, but resource usage increases
Solution Approach 1:
Instead of immediately persisting all guaranteed messages, the system applies partial persistence only when necessary. Messages are held in non-persistent storage first, and only transferred to persistent storage if the delay interval expires or delivery conditions require it. This partial action approach reduces unnecessary storage resource consumption while maintaining delivery guarantees.
Solution Approach 2:
The system uses non-persistent storage (a cheaper, temporary storage medium) for guaranteed messages initially, replacing the need for immediate persistent storage. This allows the system to handle messages with minimal resource usage, only invoking expensive persistent storage when absolutely necessary to maintain reliability.
3Productivity
If messages are held in non-persistent storage without delay, then processing speed is improved, but reliability deteriorates
Solution Approach 1:
The system implements periodic checks and delayed persistence for messages in non-persistent storage. Instead of immediately persisting or immediately discarding messages, the system holds them temporarily and periodically evaluates whether to transfer to persistent storage based on timing intervals and delivery status. This periodic action maintains processing speed while periodically ensuring reliability.
Solution Approach 2:
The system performs preliminary storage in non-persistent storage before final persistent storage. This preliminary action allows fast processing initially, with the option to perform a second persistence action if needed. The preliminary non-persistent storage phase maintains speed, while the potential follow-up persistent storage phase ensures reliability.
Data Source
AI summary
The disclosure includes a description of a method of handling messages received at a messaging system server. The method includes storing, in non-persistent storage, messages received from at least one client, removing delivered messages from the non-persistent storage, and saving messages stored in the non-persistent storage to persistent storage after a delay interval.


