Branch Trace Compression Using Prime Number Assignment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Saving entire stack traces or branch traces in log messages is inefficient due to brevity loss and high memory and execution costs, making them impractical for debugging and diagnostics.

Innovation Solution

Generating metadata files for possible stack and branch traces, updating run-time trace values using mathematical operations, and matching these values to compress and represent the calling context efficiently, allowing for concise logging without performance sacrifices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If entire stack traces or branch traces are saved in log messages, then debugging information is complete and accurate, but log message brevity is lost and memory and execution costs increase

Engineering Contradiction:
Improvedebugging information accuracyVSAvoidmemory usage
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent divides the stack trace into two parts: a compressed representation (hash value or bitmap) that is saved in the log message, and the full stack trace that can be reconstructed later using metadata files. This segmentation allows the log message to remain brief while the complete debugging information is preserved separately.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a compressed copy (hash value or bitmap) of the stack trace that can be stored in the log message. This copy contains sufficient information to identify the stack trace without storing the entire trace, thus reducing memory usage while maintaining debugging capability.

Inventive Principle:
Principle #26Copying

2Measurement precision

If entire stack traces or branch traces are saved in log messages, then debugging information is complete and accurate, but log message brevity is lost

Engineering Contradiction:
Improvedebugging information accuracyVSAvoidlog message length
Core Design Contradiction:
Measurement precisionVSLength of moving object

Solution Approach 1:

The patent segments the stack trace information into a compact identifier (hash or bitmap) for the log message and the full trace data stored separately in metadata files. This allows the log message to remain brief while complete debugging information is preserved.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a compact copy (hash value or bitmap) of the stack trace that fits within the log message. This copy serves as a reference key that can be used to retrieve the full stack trace from metadata files, maintaining both brevity and debugging accuracy.

Inventive Principle:
Principle #26Copying

3Measurement precision

If entire stack traces or branch traces are saved in log messages, then debugging information is complete, but execution speed decreases

Engineering Contradiction:
Improvedebugging information accuracyVSAvoidexecution speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments stack trace handling into two phases: a fast phase where only a compressed identifier is computed and stored in the log message, and a slower phase where the full trace is reconstructed from metadata files only when needed for debugging. This segmentation improves execution speed while maintaining debugging accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a lightweight copy (hash or bitmap) of the stack trace that can be computed and stored quickly. The full stack trace is not copied or processed unless debugging is required, thus improving execution speed while preserving complete debugging information when needed.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10175983B2Branch trace compression
Publication Date: 2019.01.08 VMWARE INC
  • US10175983B2 patent drawing
  • US10175983B2 patent drawing
  • US10175983B2 patent drawing

AI summary

Exemplary methods, apparatuses, and systems assign a plurality of branch instructions within a computer program to a plurality of prime numbers. Each branch instruction is assigned a unique prime number within the plurality of prime numbers. A run-time branch trace value is determined to be divisible, without a remainder, by a first prime number of the plurality of prime numbers. The run-time branch trace value was generated during execution of the computer program. An output is generated indicating that a first branch instruction assigned to the first prime number was executed.