Distributed Metrics Manager In-Memory Aggregation Pipeline

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current performance monitoring tools in high-scale environments face scalability issues due to high I/O operations and latency when processing large volumes of metrics, limiting their ability to support real-time analytics.

Innovation Solution

A scalable distributed metrics manager processes metrics in a pipeline with multiple aggregation stages, maintaining results in memory for fast access and analysis, and persisting them to persistent storage, reducing I/O operations and enabling real-time analytics.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If metrics are saved to a database for analysis, then metrics can be stored and processed, but the high number of I/O operations causes poor scalability and latency

Engineering Contradiction:
Improvenumber of metrics processedVSAvoidprocessing speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent extracts the aggregation function from the database processing workflow and performs it in-memory before storage. This separates the high-frequency metric collection and aggregation operations from the lower-frequency database write operations, reducing I/O overhead and improving processing speed while maintaining the ability to handle large volumes of metrics

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary aggregation of metrics in-memory at the collector before writing to the database. By pre-processing and consolidating metrics data before storage, the system reduces the volume of I/O operations required and enables faster real-time analysis without compromising the quantity of metrics that can be processed

Inventive Principle:
Principle #10Preliminary action

2Reliability

If metrics are stored in a database, then data can be persisted, but the latency and processing overhead prevent real-time analytics

Engineering Contradiction:
Improvedata persistenceVSAvoidanalytics latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces an in-memory aggregation buffer as an intermediary between metric collection and database storage. This intermediary layer allows real-time analytics to operate on aggregated data in memory with low latency, while simultaneously maintaining reliable persistence by periodically flushing data to the database, thus resolving the conflict between data persistence and real-time processing speed

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If multiple applications generate metrics simultaneously, then comprehensive monitoring is achieved, but the system cannot scale to handle billions of metrics per hour

Engineering Contradiction:
Improvemulti-application monitoringVSAvoidmetrics processing capacity
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the metrics processing system into independent collector components, each capable of aggregating metrics from multiple applications. This segmentation allows the system to scale horizontally by adding more collector instances, each handling a portion of the total metric volume, thereby maintaining the ability to monitor comprehensive multi-application environments while scaling processing capacity to handle billions of metrics per hour

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11283697B1Scalable real time metrics management
Publication Date: 2022.03.22 VMWARE INC
  • US11283697B1 patent drawing
  • US11283697B1 patent drawing
  • US11283697B1 patent drawing

AI summary

Managing performance metrics includes: obtaining a plurality of performance metrics associated with a plurality of sources on a network; aggregating, at a first rate, the plurality of performance metrics associated with the plurality of sources to generate a plurality of first aggregated results; maintaining at least some of the plurality of first aggregated results in one or more memories; aggregating, at a second rate, the plurality of first aggregated results to generate a plurality of second aggregated results, the second rate being a lower rate than the first rate; and maintaining at least some of the plurality of second aggregated results in the one or more memories.