User Space Block Device IO Transfer Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage systems face inefficiencies in IO load balancing and submission, as they rely on kernel space-based functionality, which requires additional resources and time, limiting throughput and efficiency.

Innovation Solution

Implementing user space block devices and kernel space block devices to enable IO load balancing and submission functionality in the user space, allowing applications to distribute IO operations across multiple paths without relying on kernel space-based IO stacks and interrupts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If kernel space block devices are used for IO operations, then applications can access storage systems through standard kernel interfaces, but IO operations require additional kernel space resources and processing time which reduces throughput and efficiency

Engineering Contradiction:
Improvecompatibility with standard interfacesVSAvoidIO throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a user space block device as an intermediary component that receives IO operations from applications through kernel space block devices and forwards them to storage systems. This mediator enables kernel space applications to utilize user space IO processing capabilities, achieving both interface compatibility and improved throughput by bypassing kernel space processing bottlenecks.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If kernel space IO stacks and interrupts are used for pathing and communication, then standard device communication protocols are maintained, but additional resources and time are consumed which limits efficiency

Engineering Contradiction:
Improvestandard communication protocolsVSAvoidIO processing time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent extracts the IO processing functionality from kernel space to user space by implementing a user space block device. This extraction removes the dependency on kernel space IO stacks and interrupts for time-consuming operations, while maintaining standard communication protocols through the block device interface. The user space implementation handles pathing and communication without kernel space overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If user space block devices are implemented to improve IO efficiency, then throughput and processing speed increase, but additional complexity is introduced in interfacing kernel space applications with user space functionality

Engineering Contradiction:
ImproveIO throughputVSAvoiddual space block device interface
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates a user space block device that replicates the functionality of kernel space block devices. This copying approach allows kernel space applications to interact with storage systems through familiar block device interfaces while the actual IO processing occurs in user space. The duplicated interface abstracts the complexity, presenting a standard kernel space interface to applications while leveraging user space efficiency.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11175840B2Host-based transfer of input-output operations from kernel space block device to user space block device
Publication Date: 2021.11.16 EMC IP HLDG CO LLC
  • US11175840B2 patent drawing
  • US11175840B2 patent drawing
  • US11175840B2 patent drawing

AI summary

An apparatus in one embodiment comprises a host device comprising a processor coupled to memory. The host device is configured to communicate over a network with at least one storage system. The host device is further configured to generate a user space block device and to generate a kernel space block device corresponding to the user space block device. The host device is further configured to receive an input-output operation at the kernel space block device from an application executing on the host device and to transfer the input-output operation from the kernel space block device to the corresponding user space block device. The host device is further configured to submit the input-output operation to the at least one storage system based at least in part on the user space block device.