Asynchronous Logging Thread for Application Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Critical software applications face performance issues due to the high cost of input/output mechanisms, which hinder logging and thus the detection and correction of malfunctions, especially in parallel processing environments where response times are constrained.

Innovation Solution

A logging method that involves executing application and logging threads over a cluster of information processing devices, using asynchronous communication interfaces like ZeroMQ to transmit and publish logging information efficiently, minimizing the impact on processing time and allowing for synchronization to prevent data loss.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If logging is implemented in critical software applications, then malfunction detection capability is improved, but processing time and application performance deteriorate

Engineering Contradiction:
Improvemalfunction detection capabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The logging function is segmented into a separate dedicated thread that operates independently from the main application threads. This segmentation allows logging operations to be performed without blocking the critical application logic, thereby maintaining processing time while enabling malfunction detection through separate logging thread execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A logging thread acts as an intermediary between application threads and the logging output mechanism. Application threads transmit logging information to the logging thread, which then handles the costly I/O operations. This intermediary approach isolates the performance impact of logging from the critical application paths.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If parallel programming techniques are used to handle large quantities of calculations, then processing capacity is improved, but logging complexity increases

Engineering Contradiction:
Improveprocessing capacityVSAvoidlogging complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The logging thread is designed as a universal component that can serve multiple application threads simultaneously. It provides a common logging interface and handles logging for all parallel threads through a unified mechanism, thereby managing logging complexity centrally while supporting parallel processing capacity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The logging thread serves as a mediator that centralizes logging operations for all parallel application threads. Instead of each thread implementing its own logging logic, the intermediary logging thread manages all logging requests, simplifying the overall logging architecture despite the complexity of parallel processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of information

If input/output mechanisms are used for logging, then information export capability is improved, but processing overhead increases

Engineering Contradiction:
Improveinformation export capabilityVSAvoidprocessing overhead
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The expensive I/O operations are extracted from the critical application threads and performed exclusively by the dedicated logging thread. This extraction isolates the processing overhead of information export to a non-critical path, allowing efficient logging without impacting the main application performance.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Logging information is prepared and transmitted to the logging thread in advance of the actual I/O operations. The application threads perform preliminary actions of generating and sending log data, while the logging thread handles the costly export operations, thereby separating information preparation from information export overhead.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11874758B2High-performance mechanism for generating logging information within application thread in respect of a logging event of a computer process
Publication Date: 2024.01.16 BULL SA
  • US11874758B2 patent drawing

AI summary

Some embodiments are directed to a logging within a software application executed over an assembly of information processing devices. More particularly, some embodiments relate to a method allowing process logging in the case of a software application operating with several processes and/or threads.