Automated Performance Bottleneck Detection in Microservice Traces

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Detecting and fixing performance bugs in computer code is time-consuming and resource-intensive, as developers must manually analyze performance traces to identify and address bottlenecks, which can lead to inefficient resource usage and user experience degradation.

Innovation Solution

A bottleneck detection system that uses performance traces from profilers to establish resource usage thresholds, identifies performance bottlenecks, and provides recommendations for code modifications by analyzing sequences of functions and their resource consumption, allowing developers to focus on fixing user-written code issues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers manually analyze performance traces to identify bottlenecks, then they can detect performance issues, but the process is time-consuming and resource-intensive

Engineering Contradiction:
Improveperformance bug detectionVSAvoidmanual trace analysis time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables self-service by automatically analyzing performance traces and identifying bottlenecks without requiring manual intervention. The automated bottleneck detection system processes traces, identifies problematic code sequences, and provides recommendations independently, freeing developers from time-consuming manual analysis while maintaining reliable performance bug detection.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical manual analysis process with an automated computational system. Instead of developers manually reviewing performance traces, the system uses automated algorithms to detect bottlenecks, substitute human labor with machine processing, and eliminate the time-consuming manual trace analysis while preserving detection accuracy.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If developers manually review performance traces, then they can identify performance issues, but it increases operational complexity and reduces productivity

Engineering Contradiction:
Improveperformance issue identificationVSAvoidcode modification efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The automated bottleneck detection system performs self-service by independently analyzing performance traces, identifying bottlenecks, and generating recommendations without requiring developer involvement in the analysis process. This maintains reliable performance issue identification while significantly improving productivity by eliminating manual review requirements.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary action by automatically completing the bottleneck identification and initial recommendation generation before developers need to act. The automated system prepares the analysis work in advance, so when developers receive the results, they only need to review and implement recommendations rather than performing the entire analysis process.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the system automatically identifies performance bottlenecks, then productivity improves, but device complexity increases

Engineering Contradiction:
Improvebottleneck detection speedVSAvoidprofiler system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer between the profiler and the developer. The automated bottleneck detection system acts as a mediator that receives raw performance trace data, processes it through automated analysis, and presents simplified recommendations to developers. This intermediary layer handles the complexity internally while maintaining high productivity and presenting results in an accessible format.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system extracts and isolates the complex analysis functionality into a separate automated module. By taking out the bottleneck detection logic from manual developer processes and encapsulating it in an automated system, the patent achieves high productivity while managing complexity through modular design and separation of concerns.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12164412B2System and method for identifying performance bottlenecks
Publication Date: 2024.12.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12164412B2 patent drawing
  • US12164412B2 patent drawing
  • US12164412B2 patent drawing

AI summary

A computer implemented method includes accessing performance trace data for executed code of multiple services. Symbols corresponding to functions of the executed code are identified. First sequences of functions from the identified symbols are identified and a first performance threshold for each identified first sequence of functions is computed. The method includes receiving an incoming performance trace, detecting second sequences of functions from the incoming performance trace, identifying second sequences equivalent to the first sequences, and comparing performance of the identified second sequences to the first performance threshold for each of the equivalent first sequences to identify second sequences as comprising a performance bottleneck.