Retroactive Tracing in Distributed Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current tracing solutions in distributed systems generate and collect large amounts of data, making it costly and inefficient, as tracing is typically enabled only for short periods, resulting in incomplete data availability during unexpected errors and challenging data identification for debugging.

Innovation Solution

Implementing a retroactive tracing system that stores trace data in local caches across nodes in a distributed system, allowing for the collection and generation of traces only when an error occurs, thereby reducing the need for continuous data collection and storage at a centralized controller.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If continuous trace data collection is enabled in distributed systems, then complete trace data is available for debugging, but resource usage and storage costs increase significantly

Engineering Contradiction:
Improvetrace data availabilityVSAvoidresource usage
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The system pre-collects and stores trace data in local caches at each node before errors occur, rather than collecting data continuously or only after errors. This preliminary action ensures trace data is readily available when needed while avoiding the resource overhead of continuous collection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each node in the distributed system maintains its own local cache for trace data, allowing data to be stored and managed locally rather than requiring centralized continuous collection. This local quality approach reduces network overhead and distributes storage responsibilities.

Inventive Principle:
Principle #3Local quality

2Use of energy by moving object

If tracing is enabled only for short periods during debugging, then resource usage is reduced, but trace data is unavailable when errors occur unexpectedly

Engineering Contradiction:
Improveresource usageVSAvoidtrace data availability
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The system continuously stores trace data in local caches in the background without requiring active tracing sessions. This preliminary action ensures that when errors occur unexpectedly, the trace data is already captured and available, providing reliability without requiring continuous active monitoring.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If large volumes of trace data are stored centrally, then complete tracing information is available, but data identification and retrieval become challenging

Engineering Contradiction:
Improvetrace data completenessVSAvoiddata identification complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The system segments trace data storage across multiple local caches at different nodes rather than centralizing all data in one location. Each local cache stores trace data relevant to its node, making data identification and retrieval more straightforward by reducing the search space and organizing data according to system architecture.

Inventive Principle:
Principle #1Segmentation

4Loss of information

If continuous trace data collection is performed, then full trace data is available for analysis, but the system introduces significant overhead and performance impact

Engineering Contradiction:
Improvetrace data completenessVSAvoidsystem performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

Instead of continuous active collection, the system uses periodic background storage of trace data in local caches. The actual data capture occurs continuously at minimal overhead, while the centralized collection and analysis happen periodically or on-demand when errors occur, reducing the performance impact of data processing operations.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS11409634B2Retroactive tracing in a distributed system
Publication Date: 2022.08.09 CISCO TECHNOLOGY INC
  • US11409634B2 patent drawing
  • US11409634B2 patent drawing
  • US11409634B2 patent drawing

AI summary

Embodiments herein describe a retroactive tracer that retroactively generates traces using data stored in local caches. Rather than continually generating and collecting tracing data in a distributed system (which may requires massive amounts of storage and bandwidth), the embodiments herein store tracing data in local caches corresponding to nodes in the distributed system (e.g., a service, application, virtual machine, server, network device, etc.). When an error is detected when executing a task, the retroactive tracer can broadcast a request that the nodes send any trace data they may have corresponding to that task. The tracer can then retroactively generate the trace from the collected trace data. In contrast, if a task completes without an error, the nodes delete the trace data from their local caches (i.e., the trace data is not collected by the retroactive tracer).