Dynamic I/O Job Redistribution via Job Bins

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage systems face challenges in redistributing I/O jobs among active OS threads efficiently, leading to timing out of I/O operations and resource consumption when threads become inactive or are reactivated, which impacts performance and requires new I/O requests.

Innovation Solution

The method involves creating job bins and bin groups on a processing node, distributing I/O jobs among these groups, and re-associating them with active threads upon changes in the number of active threads, allowing for dynamic redistribution of I/O jobs to maintain efficient execution without gaps in thread associations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If I/O jobs are statically assigned to OS threads, then thread association is simple to maintain, but I/O operations time out when threads become inactive and require new I/O requests

Engineering Contradiction:
ImproveI/O operation completionVSAvoidthread job association management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces job bins as an intermediary layer between I/O jobs and OS threads. Instead of directly assigning jobs to threads, jobs are grouped into bins that can be dynamically reassigned. This mediator allows the system to maintain job associations even when threads become inactive, preventing I/O timeouts while managing complexity through the bin abstraction layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements dynamic reassociation of job bins to OS threads based on thread availability. When threads become inactive or are reactivated, the system dynamically updates the associations between job bins and threads, ensuring that I/O jobs are always assigned to active threads. This dynamic approach prevents timeouts while adapting to changing thread states.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If the number of active threads changes, then system can adapt to load variations, but existing I/O job associations become invalid requiring redistribution

Engineering Contradiction:
Improvethread quantity adaptationVSAvoidI/O job redistribution time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments I/O jobs into discrete job bins that can be independently managed and reassigned. When the number of active threads changes, only the affected job bins need to be redistributed rather than all jobs. This segmentation reduces the time loss associated with redistribution by limiting the scope of changes needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent maintains job bin structures in advance that can be quickly reassigned when thread quantities change. By having job bins pre-formed and organized, the system can perform rapid redistribution when threads are added or removed, minimizing the time loss during adaptation without requiring complete job reassignment.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If threads are frequently activated and deactivated, then resource utilization is optimized, but I/O job associations become unstable causing timeouts

Engineering Contradiction:
Improveresource utilizationVSAvoidI/O job association stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The job bin intermediary layer absorbs the instability caused by frequent thread activation and deactivation. When threads change state, the job bins remain as stable containers that can be reassigned without affecting the underlying I/O job structures. This mediator protects I/O operation reliability while allowing flexible thread management for optimized resource utilization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12067416B2Dynamically redistributing I/O jobs among operating system threads
Publication Date: 2024.08.20 EMC IP HLDG CO LLC
  • US12067416B2 patent drawing
  • US12067416B2 patent drawing
  • US12067416B2 patent drawing

AI summary

A thread may be de-activated (terminated or hibernated) or activated (e.g., re-activated or create anew if allowed) on a processing node, in response to which it may be desirable to redistribute the I/O jobs among the now active threads. Redistributing the I/O jobs may involve re-associating one or more active threads resulting from the activation or de-activation with one or more of the bin groups and/or re-assigning one or more job bins with one or more bin groups, for example, as will now be described. The bin groups may be re-associated with remaining active threads. I/O jobs may be redistributed among the active threads re-assigning job bins to bin groups. One or more queued I/O jobs may be moved to the thread that now owns the I/O job.