In-Memory Logging Framework for Runtime Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex software systems require rigorous runtime behavior management, but excessive logging for detailed analysis consumes large amounts of memory, leading to storage inefficiencies and increased costs.

Innovation Solution

A logging framework with an API that dynamically decides what information to log during runtime, reserving space in-memory, writing logs based on operation results, and persisting only relevant data, thereby reducing memory usage and storage needs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If comprehensive logging of all decisions, states, inputs, and outputs is implemented, then analysis capability is improved, but memory consumption increases

Engineering Contradiction:
Improvelogging completenessVSAvoidmemory usage
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent applies local quality by making logging behavior context-dependent rather than uniform. Different logging levels (error, warning, info, debug) are applied to different parts of the system based on their importance. Critical operations and error-prone areas log at higher detail levels, while routine operations use minimal logging, optimizing the balance between information completeness and memory efficiency.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements partial action by selectively logging only the necessary portion of system operations. Instead of logging everything uniformly, the system logs only relevant events based on configured criteria, operational context, and importance thresholds. This partial logging approach captures sufficient information for analysis while avoiding the memory overhead of comprehensive logging.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If detailed logging is enabled for runtime analysis, then understanding of system behavior is improved, but storage requirements increase

Engineering Contradiction:
Improvesystem understandingVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSVolume of stationary object

Solution Approach 1:

The patent segments log data into different categories and priority levels (errors, warnings, information, debug). Each segment is handled differently in terms of retention policy and storage allocation. Critical error logs are retained with high detail, while routine information logs are summarized or retained at lower detail levels, reducing overall storage requirements while maintaining system understanding capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically adjusts logging parameters such as log level, detail depth, and retention period based on system state, operational phase, and configured policies. During critical operations or error conditions, logging detail increases automatically. During normal operations, logging detail decreases. This parameter adaptation allows the system to maintain reliability for analysis while optimizing storage utilization.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11112970B2Software system logging based on runtime analysis
Publication Date: 2021.09.07 SAP SE
  • US11112970B2 patent drawing
  • US11112970B2 patent drawing
  • US11112970B2 patent drawing

AI summary

In some embodiments, a logging framework reserves space in an in-memory storage for a log entry upon receiving a first function call from an application being executed. Upon receiving a second function call from the application being executed, the framework writes the log entry in the space in the in-memory storage. Upon receiving a third function call from the application being executed, the framework selects a configuration for the application and comparing an indicator that is generated based on the executing of the application to the configuration. When the indicator meets a condition of the configuration, the framework copies the log entry from the space in the in-memory storage to a persistent storage space. The log entry is deleted from the space in the in-memory storage at a time after performing the comparing.