Thread Synchronization via Context Data in Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems face challenges in efficiently managing and synchronizing threads for input/output operations across distributed storage systems, particularly in ensuring timely completion of synchronous threads and handling thread synchronization without external synchronization objects.

Innovation Solution

The method involves generating input/output (I/O) caller threads and associated background provider threads, which are synchronized using context data and synchronization objects defined within each thread's context, allowing for thread state synchronization without relying on external synchronization objects, and enabling detachment of expired threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If external synchronization objects are used for thread synchronization, then thread coordination can be achieved, but system complexity increases and responsiveness to clients decreases

Engineering Contradiction:
Improvethread synchronizationVSAvoidsynchronization object dependencies
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the synchronization mechanism from external objects and embeds it directly within the thread context. Each thread maintains its own context data and synchronization state internally, eliminating the need for external synchronization objects. This is achieved by having threads check and update their own context data to determine synchronization status, thereby reducing system complexity while maintaining reliable thread coordination.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Threads perform self-synchronization by autonomously checking their own context data and synchronization state without requiring external synchronization objects. The I/O caller thread and background provider thread each manage their own synchronization state through context data, allowing them to coordinate independently. This self-service approach eliminates external dependencies and improves system responsiveness.

Inventive Principle:
Principle #25Self-service

2Reliability

If synchronous threads wait for completion, then data consistency is ensured, but client responsiveness deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoidclient wait time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the thread execution into foreground I/O caller threads that immediately return to clients and background provider threads that handle data consistency operations. The I/O caller thread initiates the operation and returns control to the client without waiting for completion, while the background provider thread continues executing in the background to ensure data consistency. This segmentation allows the system to maintain both client responsiveness and data consistency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The I/O caller thread performs preliminary actions by initiating the I/O operation and setting up the background provider thread before returning to the client. The synchronization state is established in advance through context data, allowing the background thread to proceed with data consistency operations without blocking the client. This preliminary setup enables asynchronous execution while maintaining data integrity.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If background provider threads are implemented, then client responsiveness improves, but thread management complexity increases

Engineering Contradiction:
Improveclient responsivenessVSAvoidthread management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the thread management functionality into a unified context data structure that both I/O caller threads and background provider threads share. The context data contains synchronization state, operation identifiers, and other management information that allows both thread types to coordinate through a common interface. This merging reduces thread management complexity by providing a standardized mechanism for both foreground and background threads to interact, rather than requiring separate management systems.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10083067B1Thread management in a storage system
Publication Date: 2018.09.25 EMC IP HLDG CO LLC
  • US10083067B1 patent drawing
  • US10083067B1 patent drawing
  • US10083067B1 patent drawing

AI summary

Described embodiments provide systems and methods for operating a storage system. The storage system may generate one or more input/output (I/O) caller threads. For each of the I/O caller threads, one or more background provider threads may be generated that may be associated with the I/O caller thread. Instructions associated with the I/O caller threads and the background provider threads may be performed. Each of the one or more background provider threads may be synchronized with the associated I/O caller thread. Each thread may check a state of the associated threads, and based upon the state of the associated threads, each thread may post a state indicator to a mailbox field in a context of the associated threads.