Persistent Message Queue for Software Execution Logging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Recording execution information for software applications is burdensome and resource-intensive, often requiring a compromise between performance and reliability, as existing methods either lose data upon failure or slow down the application with non-volatile storage.
Innovation Solution
Storing execution information in a persistent message queue accessible by the software application, allowing it to persist beyond execution without additional resource burdens, and enabling processing without impacting the application's performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If execution information is recorded to non-volatile storage device, then data persistence is improved, but application performance deteriorates due to slow read and write operations
Solution Approach 1:
The patent introduces a message queue as an intermediary component between the software application and the storage system. The message queue receives execution information from the application and handles persistence operations independently, allowing the application to continue executing without being blocked by slow storage operations. This mediator absorbs the performance penalty of non-volatile storage while ensuring data persistence.
Solution Approach 2:
The patent segments the recording function into a separate message queue component that is independent from the main software application. By dividing the system into the application process and the message queue process, the performance burden of persistence operations is isolated from the application, allowing the application to maintain high performance while the message queue handles storage operations asynchronously.
2Loss of information
If execution information is recorded routinely during application execution, then data completeness is improved, but resource consumption increases burdening the application
Solution Approach 1:
The message queue operates as a self-service component that independently manages the recording of execution information. It autonomously receives information from the application, determines what needs to be persisted, and handles storage operations without requiring the application to actively manage recording operations. This eliminates the resource burden on the application while ensuring complete data capture.
Solution Approach 2:
The message queue acts as an intermediary that takes over the resource-intensive recording operations from the application. By delegating these operations to the message queue, the application is freed from the burden of routine recording tasks, reducing its resource consumption while maintaining data completeness through the queue's persistent storage capability.
3Reliability
If facilities for generation and recording of execution information are included in software application, then problem determination capability is improved, but a compromise must be made between performance and reliability
Solution Approach 1:
The patent extracts the recording facilities from the software application and places them in a separate message queue component. This extraction removes the performance burden from the application while preserving the reliability benefits of comprehensive execution information recording. The application can focus on its core functionality with improved performance, while the message queue handles persistence for problem determination.
Solution Approach 2:
The system is segmented into the application process and the message queue process, with the recording functionality assigned to the message queue. This segmentation allows the application to maintain high performance by not carrying the overhead of recording operations, while the message queue provides the reliability needed for problem determination through persistent storage of execution information.
Data Source
AI summary
A method for recording execution information for a software application executable in a computer system, the computer system including a message queue, the method comprising the steps of: generating the execution information by the software application; and recording the execution information to the message queue for subsequent retrieval, wherein the message queue is accessible by the software application and persistent with respect to the software application.


