User Space Data Flow for Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional network storage systems face inefficiencies and latency due to hypervisor processing and contention among multiple storage servers accessing hardware devices, which hinder maximum performance and fault tolerance.

Innovation Solution

The implementation of Excessive Symmetric Multi-Processing (XSMP) allows multiple user space processes to share a read-only address space that maps the entire physical memory, enabling direct access to hardware devices and efficient communication through synchronous non-blocking queues, thereby achieving fault isolation and high performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If hypervisor processing is used to manage multiple storage servers, then fault tolerance is provided through redundancy, but system latency increases and performance efficiency decreases

Engineering Contradiction:
Improvefault toleranceVSAvoidsystem latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the hypervisor layer from the system architecture and replaces it with direct user-space process execution. Multiple storage server processes run directly on the host operating system without hypervisor mediation, eliminating the performance overhead while maintaining fault tolerance through process-level redundancy and isolation.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a shared read-only address space as an intermediary mechanism between multiple user-space processes and hardware devices. This shared address space enables efficient communication and coordination without requiring hypervisor intervention, reducing latency while preserving fault tolerance capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple storage servers access hardware devices through hypervisor, then fault isolation is achieved, but contention increases and performance efficiency decreases

Engineering Contradiction:
Improvefault isolationVSAvoidperformance efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the storage server functionality into multiple independent user-space processes, each with its own address space. These processes can access hardware devices independently through the shared read-only address space, achieving fault isolation at the process level while eliminating hypervisor-induced contention and improving overall performance efficiency.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If shared read-only address space is implemented among multiple user space processes, then direct hardware device access is enabled and latency is reduced, but system complexity increases

Engineering Contradiction:
Improveaccess latencyVSAvoidsystem complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent merges multiple user-space processes into a shared read-only address space that maps the entire physical memory. This consolidation enables direct hardware device access for all processes simultaneously, reducing access latency while the shared nature of the address space actually simplifies the system by eliminating the need for complex hypervisor-mediated memory management.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9891839B2System and method for achieving high performance data flow among user space processes in storage systems
Publication Date: 2018.02.13 NETAPP INC
  • US9891839B2 patent drawing
  • US9891839B2 patent drawing
  • US9891839B2 patent drawing

AI summary

Fault isolation capabilities made available by user space can be provided for a embedded network storage system without sacrificing efficiency. By giving user space processes direct access to specific devices (e.g., network interface cards and storage adapters), processes in a user space can initiate Input/Output requests without issuing system calls (and entering kernel mode). The multiple user spaces processes can initiate requests serviced by a user space device driver by sharing a read-only address space that maps the entire physical memory one-to-one. In addition, a user space process can initiate communication with another user space process by use of transmit and receive queues similar to transmit and receiver queues used by hardware devices. And, a mechanism of ensuring that virtual addresses that work in one address space reference the same physical page in another address space is used.