Compressed Message Tracing to Minimize Application Observer Effect
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional performance monitoring systems impact the performance of the application being monitored due to resource competition, leading to a performance penalty known as the 'observer effect'.
Innovation Solution
A monitoring system that assigns reusable identifiers to in-flight messages, limits data collection to a computer word size, persists logged data in a separate data structure, and parses the data during post-processing to minimize resource usage and reduce performance impact.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional logging mechanisms are used to monitor application performance, then monitoring data is collected and recorded, but the performance of the monitored application deteriorates due to resource competition
Solution Approach 1:
The patent divides the monitoring system into separate components: a logging system that writes to a data structure and a parser that processes the logged data. This segmentation allows the logging operations to proceed independently without blocking the monitored application, reducing resource contention and performance impact while maintaining comprehensive monitoring capabilities.
Solution Approach 2:
The patent introduces an intermediary data structure (log file or memory buffer) that acts as a buffer between the monitored application and the analysis system. Logged data is written to this intermediary structure asynchronously, allowing the monitoring system to collect data without directly interfering with the application's execution flow, thereby minimizing the observer effect.
2Measurement precision
If comprehensive data is collected and recorded during monitoring, then monitoring accuracy is improved, but resource usage increases and performance penalty worsens
Solution Approach 1:
The patent implements partial action by allowing the logging system to capture comprehensive data without processing or analyzing it immediately. The full data is recorded in the intermediary structure, but analysis is performed selectively on subsets of data as needed, reducing the computational resources required for continuous processing while maintaining the option to perform deep analysis when necessary.
Solution Approach 2:
The logged data structure is designed to be self-contained and efficiently organized, allowing the parser to quickly extract needed information without requiring extensive processing resources. The data is structured with fixed-size entries and clear delimiters, enabling efficient scanning and retrieval operations that minimize resource consumption during analysis.
3Loss of information
If detailed logging is performed during application execution, then monitoring information is obtained, but the logging operations compete for CPU and memory resources
Solution Approach 1:
The patent performs preliminary action by pre-allocating and pre-structuring the log data format before actual logging begins. The data structure is prepared in advance with fixed fields and sizes, so that during runtime, logging operations simply write predefined formats without requiring complex processing or memory allocation, significantly reducing CPU and memory competition during application execution.
Data Source
AI summary
A monitoring system monitors processing of incoming messages and logs data related to performance of an application that processes the messages. The monitoring system temporarily associates reusable identifiers with the messages and logs data upon each message traversing different points in the application. Each of the identifiers is sized such that the storage space necessary to store the identifier is less than the storage space necessary to store an identifier sized to uniquely identify all of the plurality of messages, and the identifiers and the logged data are configured to minimize a performance penalty of monitoring the application. The monitoring system parses the data, e.g., during post-processing, to determine, from a plurality of data entries that refers to the same identifier, a subset of the data entries where the same identifier was associated with the same message.


