Lock-Free Polling for Interdependent Hardware State Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing hardware monitoring techniques face challenges in maintaining atomicity and consistency when polling interdependent hardware components, often resulting in blocking issues that hinder efficient data access and processing.

Innovation Solution

A polling process that utilizes a poller loop to maintain aggregate state information through a shared data structure, employing a lock-free routine to collect and update state information while using additional data structures to ensure atomicity without blocking, allowing for contradiction-free and non-blocking access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If atomicity is enforced through locking mechanisms to maintain consistency of aggregate state information, then data consistency is improved, but system performance deteriorates due to blocking

Engineering Contradiction:
Improvedata consistencyVSAvoidpolling performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the aggregate state data structure into multiple components: a shared read-only aggregate state structure and per-thread local copies. This segmentation allows multiple threads to read from the shared structure simultaneously without blocking, while each thread maintains its own local copy for writing operations, eliminating the need for global locks during polling operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs copying by having each polling thread maintain a local copy of the aggregate state structure. Instead of all threads sharing a single mutable structure that requires locking, each thread has its own copy that it can read and write without blocking other threads. The shared structure is copied to local memory at initialization, and updates are propagated asynchronously.

Inventive Principle:
Principle #26Copying

2Reliability

If locking mechanisms are used to ensure atomic access to aggregate state information, then data integrity is improved, but access time increases due to blocking

Engineering Contradiction:
Improvedata integrityVSAvoidaccess time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the data access pattern into read operations on shared immutable data and write operations on local private data. This segmentation eliminates the need for locks during read operations, allowing O(1) time complexity for reading aggregate state information without blocking other threads.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by copying the aggregate state structure to local memory at thread initialization or at intervals when changes occur. This pre-copying ensures that threads have immediate access to the latest state information without needing to acquire locks during their polling operations, significantly reducing access time.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If a single shared data structure is used for aggregate state information, then device complexity is reduced, but concurrency capability deteriorates due to blocking

Engineering Contradiction:
Improvedata structure complexityVSAvoidconcurrency capability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent segments the single shared data structure into a shared read-only aggregate state structure and multiple private local copies, one per polling thread. This segmentation enables concurrent read-write operations without blocking, as each thread operates on its own local copy while reading from the shared structure, significantly improving concurrency capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses copying to create private local copies of the aggregate state structure for each polling thread. These local copies are initialized from the shared structure and updated asynchronously, allowing multiple threads to perform polling operations concurrently without blocking each other, thereby enhancing concurrency capability while maintaining manageable data structure complexity.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10783134B2Polling process for monitoring interdependent hardware components
Publication Date: 2020.09.22 EMC IP HLDG CO LLC
  • US10783134B2 patent drawing
  • US10783134B2 patent drawing
  • US10783134B2 patent drawing

AI summary

Systems and methods are provided to implement a polling process for monitoring a system of interdependent hardware components. A shared aggregate state data structure comprising information of an aggregate state of the interdependent hardware components is maintained in a system memory. A poller loop process generates and utilizes two local instances in system memory of the shared aggregate state data structure, including a current state data structure and a previous state data structure. The current state data structure is utilized during a lock-free polling routine to store current aggregate state data of the interdependent hardware components, while other executing threads outside the poller loop process can access the shared aggregate state data structure. The shared aggregate state data structure is updated by performing a merge of state information contained in the shared aggregate state, current aggregate state, and previous aggregate state data structures.