Lock-Free Statistics Collection in Multi-Core Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for collecting application performance statistics in multi-core CPU environments are unsuitable for production environments due to significant performance degradation caused by cache synchronization and data locking overhead, making it difficult to monitor application uptime effectively.

Innovation Solution

Implementing a lock-free collection of runtime statistics using the Compare and Swap (CAS) instruction, which allows atomic operations to prevent thread interference and reduce overhead, enabling efficient collection of function call elapsed times and performance data without the need for critical sections or thread synchronization primitives.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional data locking and cache synchronization methods are used to collect performance statistics in multi-core CPU environments, then data integrity is maintained, but significant performance degradation occurs making it unsuitable for production environments

Engineering Contradiction:
Improvedata integrityVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the statistics collection process into separate worker threads, each responsible for collecting data from specific applications or modules. This segmentation allows parallel collection without requiring global locking, as each worker operates independently on its assigned targets, thus maintaining data integrity while improving overall collection throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary aggregation thread that collects results from multiple worker threads. This intermediary layer decouples the collection process from the actual data sources, allowing workers to write to their own buffers without synchronization overhead, while the aggregator consolidates results atomically, resolving the contradiction between reliability and productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If code instrumentation is used to collect function call statistics, then detailed performance data is obtained, but substantial performance degradation occurs due to probing overhead

Engineering Contradiction:
Improveperformance data detailVSAvoidprobing overhead
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary instrumentation during application deployment or loading phase, where measurement hooks are established in advance. During runtime, these pre-instrumented points automatically capture performance data without requiring active probing or intervention, thus obtaining detailed function call statistics while minimizing runtime overhead.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The instrumentation mechanism is designed to be self-service, where the monitoring system instruments itself during application loading. The application code is enhanced with measurement points automatically, and the instrumentation logic is embedded within the application runtime environment, eliminating the need for external probing operations that would add overhead.

Inventive Principle:
Principle #25Self-service

3Stability of the object's composition

If critical sections and thread synchronization primitives are used to ensure atomic operations, then data consistency is maintained, but overhead increases significantly reducing collection efficiency

Engineering Contradiction:
Improvedata consistencyVSAvoidsynchronization overhead
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent extracts the synchronization requirement from the data collection process itself. Worker threads collect statistics without any synchronization mechanisms, writing directly to their own memory buffers. The consistency guarantee is extracted and applied only at the aggregation stage, where the aggregator thread consolidates results using minimal atomic operations, thereby eliminating most synchronization overhead while maintaining data consistency.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9128749B1Method and system for lock free statistics collection
Publication Date: 2015.09.08 DELL EMC
  • US9128749B1 patent drawing
  • US9128749B1 patent drawing
  • US9128749B1 patent drawing

AI summary

Lock free collection of performance data from an application program executing in a computer system having a multi-core central processing unit is described. A data collection mechanism creates a water mark queue that includes a data structure to store an array and plurality of pointers, including head, tail, high water mark and low water mark pointers. A plurality of worker threads is spawned, each configured to collect and store data from the application program. The data collection includes incrementing the head pointer, reading an index from a head element of the array and incrementing the high water mark pointer in a single transaction. A context is retrieved corresponding to the retrieved index. An operation is performed based on information contained in the retrieved context. Subsequently, the tail pointer is incremented, the index is written to a tail element of the array and the low water mark pointer is incremented.