Dynamic Thread Core Availability in Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In information processing systems, the always-polling model used by multi-core processors leads to high core utilization by certain applications, leaving limited processing resources available for other applications, especially when these applications have low or moderate activity levels.

Innovation Solution

The implementation of dynamic truck threads that can operate in multiple modes, including a mode where they suspend execution and allow other threads to utilize the core resources, and a disabled mode where resources are fully available for other applications, dynamically adjusting based on utilization thresholds.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the always-polling model is used by multi-core processors, then the block application can maintain high core utilization and quick response, but other applications have limited processing resources available when the block application has low or moderate activity levels

Engineering Contradiction:
Improvecore utilizationVSAvoidresource availability for other applications
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The polling thread is implemented as a dynamic thread that can change its operational state based on system conditions. It transitions between active polling state and suspended state, allowing the system to adapt resource allocation dynamically. When the block application requires resources, the thread is active; when resources should be freed for other applications, the thread suspends itself, thus resolving the contradiction between maintaining high utilization and freeing resources.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The thread's execution parameter (active vs. suspended state) is changed based on utilization thresholds. The system monitors resource utilization and dynamically adjusts the thread's operational parameters, switching between different execution modes to optimize both core utilization and resource availability for other applications at different times.

Inventive Principle:
Principle #35Parameter changes

2Speed

If the polling thread continuously monitors interfaces for data, then data processing responsiveness is improved, but processing resources are consumed even when there is no data to process

Engineering Contradiction:
Improvedata processing responsivenessVSAvoidprocessing resource consumption
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

Instead of continuous polling, the thread performs periodic polling only when in active state. The polling action is interrupted by suspending the thread when no data is present for extended periods, converting continuous resource consumption into periodic action. This maintains responsiveness when data arrives while reducing resource consumption during idle periods.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The polling thread autonomously monitors its own execution conditions and suspends itself when utilization thresholds indicate that resources should be freed. The thread service manages its own resource allocation by self-suspending, eliminating the need for external intervention and reducing wasted processing resources during low-activity periods.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If the polling thread suspends execution to free resources, then resource availability for other applications improves, but the block application may experience delays when data needs processing

Engineering Contradiction:
Improveresource availabilityVSAvoiddata processing delay
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system implements feedback mechanisms that monitor both resource utilization and data arrival patterns. When data is detected on interfaces, the thread is awakened from suspended state to process it. This feedback loop ensures that the thread suspends only when appropriate (freeing resources) but quickly resumes when needed (preventing delays), balancing resource availability with processing timeliness.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10884799B2Multi-core processor in storage system executing dynamic thread for increased core availability
Publication Date: 2021.01.05 EMC IP HLDG CO LLC
  • US10884799B2 patent drawing
  • US10884799B2 patent drawing
  • US10884799B2 patent drawing

AI summary

At least one processor of a storage system comprises a plurality of cores and is configured to execute a first thread in a plurality of modes of operation. When operating in a first mode of operation, the first thread polls at least one interface of the storage system for data to be processed. Responsive to detecting the data, the first thread processes the data. Responsive to having no remaining data to be processed, the first thread suspends execution on the first core if another thread is executing on a second core and operating in a second mode of operation. When operating in the second mode of operation, the first thread polls at least one interface associated with a second thread operating executing on a second core and operating in the first mode of operation for data to be processed. Responsive to detecting the data, the first thread causes the second thread to resume execution.