Parallel Data Stack Lockless Threading I/O Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data storage systems, contention between control and data paths due to synchronization primitives degrades I/O performance and scalability, as they contend for shared data objects, leading to delays and reduced parallelism.

Innovation Solution

A parallel data stack is implemented with a lockless threading model where control and data paths operate independently without synchronization primitives, allowing multiple data paths to access shared data structures simultaneously without inconsistency, eliminating the need for synchronization between control and data paths.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronization primitives are used between control path and data path to ensure data object consistency, then data integrity is maintained, but I/O performance degrades and scalability is reduced due to contention and overhead

Engineering Contradiction:
Improvedata integrityVSAvoidI/O performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the data path into multiple independent threads, each with its own work queue. This segmentation allows parallel processing of I/O operations without requiring synchronization between threads, as each thread operates independently on its own queue. The control path is also segmented into multiple control path threads, each managing specific data objects. This segmentation eliminates contention while maintaining data integrity through ownership boundaries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces work queues as intermediary structures between the control path and data path. Instead of direct synchronization between control and data path threads, management operations are submitted to work queues that data path threads process asynchronously. This intermediary mechanism decouples the control and data paths, eliminating the need for synchronization primitives while ensuring operations are completed in order.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If synchronization primitives are acquired by data path processes to protect data objects, then consistency is ensured, but overhead increases and parallelism is reduced

Engineering Contradiction:
Improvedata object consistencyVSAvoidsynchronization overhead
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

Each data path thread serves itself by processing operations from its own dedicated work queue. The thread independently manages its queue without needing to acquire locks or synchronize with other threads. This self-service approach eliminates synchronization overhead while maintaining consistency through the ordered processing of queue elements and the ownership model where each thread is responsible for its own queue's data objects.

Inventive Principle:
Principle #25Self-service

3Productivity

If control path and data path access the same data objects, then resource utilization is improved, but contention increases leading to delays

Engineering Contradiction:
Improveresource utilizationVSAvoidaccess delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system segments data objects into groups owned by specific control path threads. Each control path thread manages a subset of data objects, and data path threads process operations on these objects without contention because the ownership relationships are established through the work queue mechanism. This segmentation allows multiple control and data path threads to operate simultaneously on different data objects, improving resource utilization without access delays.

Inventive Principle:
Principle #1Segmentation

4Reliability

If synchronization mechanisms are implemented to protect data object accesses, then race conditions are prevented, but performance and parallelism are degraded

Engineering Contradiction:
Improverace condition preventionVSAvoidparallelism
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically assigns ownership of data objects to control path threads based on the operation type and data object characteristics. This dynamic ownership assignment allows the system to adapt to different access patterns and minimize contention. The work queue mechanism dynamically routes operations to appropriate data path threads, enabling parallel processing while preventing race conditions through the ownership model rather than static synchronization mechanisms.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10222995B2System and method for providing a zero contention parallel data stack
Publication Date: 2019.03.05 SAMSUNG ELECTRONICS CO LTD
  • US10222995B2 patent drawing
  • US10222995B2 patent drawing
  • US10222995B2 patent drawing

AI summary

According to one embodiment, a method includes: assigning a target port to a control path thread of an application to access data stored in a storage device of a data storage system; creating a storage device path corresponding to the target port; running the data path thread to access the data stored in the storage device; and running a control path thread to process a management work request to operate on one of objects including the target port, the storage device path, and the storage device. The control path thread is configured to send the management work request to the data path thread asynchronously. The data path thread is configured to complete the management work request and send a management work request completion response to the control path thread asynchronously.