Hybrid Message-Based Scheduling for Storage I/O

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multiprocessor concurrency techniques face inefficiencies due to conflicting approaches of workload balancing and code path length optimization, which are hindered by caching effects and frequent locking, leading to reduced processor resource utilization and increased context-switch costs.

Innovation Solution

A hybrid message-based scheduling technique that combines non-blocking and blocking services within a single coherent programming model, utilizing a messaging kernel to allocate logical processors for non-blocking services and operating system kernel for blocking services, and implementing a synchronization primitive that allows signaling between them using a spinlock instead of mutual exclusion objects.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If workload balancing is implemented in a multiprocessor system, then processor resource utilization is improved, but caching effects occur when work is moved among processors which slows down execution

Engineering Contradiction:
Improveprocessor resource utilizationVSAvoidcode execution speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The system segments work into discrete messages that can be independently routed to different processors. Each message contains all necessary context and data, allowing efficient distribution without requiring complex state sharing or cache coherence protocols across processors.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A message passing mechanism serves as an intermediary between processors, eliminating direct memory access conflicts and cache coherence issues. The message queue acts as a centralized coordination structure that decouples processor operations and enables efficient workload distribution.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If frequent locking is used for synchronization, then thread safety is improved, but context-switch costs increase and efficiency decreases

Engineering Contradiction:
Improvethread safetyVSAvoidcontext-switch cost
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts synchronization logic from traditional thread-based locking mechanisms and relocates it to message-based event notification. This separation allows threads to continue executing without frequent locks, reducing context switching while maintaining synchronization through message-driven coordination.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system replaces mechanical locking mechanisms with event-driven message passing for synchronization. Instead of using mutexes and semaphores that require atomic operations and context switches, the system uses asynchronous message notifications that trigger actions without blocking or forcing context changes.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Ease of manufacture

If thread-based blocking services are used, then simplicity of implementation is improved, but processor utilization decreases due to blocking and spinning

Engineering Contradiction:
Improveimplementation simplicityVSAvoidprocessor utilization
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The system dynamically switches between blocking and non-blocking service modes based on workload characteristics. The messaging kernel can operate in non-blocking mode for I/O operations to maximize processor utilization, while falling back to blocking mode for operations requiring synchronous completion, combining the advantages of both approaches.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The messaging kernel is designed to handle multiple service types uniformly through a single abstraction layer. It can process blocking, non-blocking, synchronous, and asynchronous operations using the same message passing infrastructure, eliminating the need for separate implementation mechanisms and improving overall system efficiency.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10185681B2Hybrid message-based scheduling technique
Publication Date: 2019.01.22 NETAPP INC
  • US10185681B2 patent drawing
  • US10185681B2 patent drawing
  • US10185681B2 patent drawing

AI summary

A hybrid message-based scheduling technique efficiently load balances a storage I/O stack partitioned into one or more non-blocking (i.e., free-running) messaging kernel (MK) threads that execute non-blocking message handlers (i.e., non-blocking services) and one or more operating system kernel blocking threads that execute blocking services. The technique combines the blocking and non-blocking services within a single coherent extended programming environment. The messaging kernel (MK) operates on processors apart from the operating system kernel that are allocated from a predetermined number of logical processors (i.e., hyper-threads) for use by an MK scheduler to schedule the non-blocking services within storage I/O stack as well as allocate a remaining number of logical processors for use by the blocking services. In addition, the technique provides a variation on a synchronization primitive that allows signaling between the two types of services (i.e., non-blocking and blocking) within the extended programming environment.