Unified Tracing Service Dynamic Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing tracing mechanisms in software debugging are inefficient and costly to enable by default, often leading to limited diagnostic information for first-failure diagnosis, and suffer from issues like trace eviction and lack of structured control mechanisms, making it difficult to diagnose bugs, especially in non-reproducible cases.

Innovation Solution

A unified tracing service that records trace elements with structured metadata in a predetermined format, allowing for dynamic memory optimization and unified processing across multiple software programs, enabling efficient in-memory and on-disk tracing with controlled trace output.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If tracing is enabled by default, then diagnostic information is improved, but system performance and overhead are worsened

Engineering Contradiction:
Improvediagnostic informationVSAvoidsystem performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The tracing system dynamically adjusts its behavior based on runtime conditions. The unified tracing service can enable or disable tracing for different components, adjust tracing levels, and manage memory allocation dynamically, allowing the system to optimize between diagnostic information collection and performance overhead rather than operating in a static enabled/disabled state

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes tracing parameters dynamically - including trace depth, verbosity level, memory buffer sizes, and enabled/disabled states for different components. This allows the system to collect sufficient diagnostic information while controlling overhead by adjusting parameters like memory allocation and tracing intensity based on current system conditions

Inventive Principle:
Principle #35Parameter changes

2Speed

If in-memory tracing is used, then tracing speed is improved, but memory usage and trace eviction are worsened

Engineering Contradiction:
Improvetracing speedVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The unified tracing service manages memory resources universally across all tracing components. It implements a centralized memory management system that allocates and deallocates buffer space dynamically, allowing the system to maintain high-speed in-memory tracing while efficiently controlling overall memory usage through shared resource management

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

Solution Approach 2:

The system implements controlled trace eviction and memory recovery mechanisms. When memory buffers are full, the unified tracing service intelligently evicts less important or older traces while preserving critical diagnostic information. Memory is recovered and reallocated based on current tracing needs, allowing continuous high-speed operation without unbounded memory growth

Inventive Principle:
Principle #34Discarding and recovering

3Ease of operation

If structured trace format is implemented, then ease of processing is improved, but complexity of implementation is worsened

Engineering Contradiction:
Improveease of processingVSAvoidimplementation complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The trace record structure is segmented into distinct fields (trace identifier, timestamp, component identifier, message, metadata). This segmentation allows each field to be processed independently, simplifying parsing and analysis operations while maintaining a comprehensive structured format that balances processing ease with implementation requirements

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8863091B2Unified tracing service
Publication Date: 2014.10.14 ORACLE INT CORP
  • US8863091B2 patent drawing
  • US8863091B2 patent drawing
  • US8863091B2 patent drawing

AI summary

A computer is programmed with multiple software programs to record structures including (a) unstructured information to denote a transition between portions of code, and (b) metadata related to one or more attributes of the information. In addition, the computer writes two additional types of structures: section type, and dump type. The section type structure has metadata to indicate a beginning and an end, to bracket a group of structures located therebetween. The dump type has a dump header and a dump body. The dump header includes a symbol to indicate it's of dump type. The dump body is a set of values of an object used by the software program(s) during execution by the computer. A group of structures, within a section type, may include structures of each of the trace record type, dump type and section type.