Persistent Message Queue for Software Execution Logging

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata persistenceVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #1Segmentation

2Loss of information

If execution information is recorded routinely during application execution, then data completeness is improved, but resource consumption increases burdening the application

Engineering Contradiction:
Improvedata completenessVSAvoidresource consumption
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveproblem determination capabilityVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9146843B2Recording execution information
Publication Date: 2015.09.29 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9146843B2 patent drawing
  • US9146843B2 patent drawing
  • US9146843B2 patent drawing

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.