Parallel I/O Processing with Range Priority Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data protection systems struggle to efficiently handle both sequential and random I/O operations, particularly in large backup files, leading to performance issues with excessive file/dedupe metadata access and latency, while maintaining read/write consistency and requiring minimal changes to client applications.

Innovation Solution

Implementing a method that combines range-based I/O ordering with priority queues to process random I/O operations efficiently, utilizing separate I/O paths for sequential and random requests, and caching metadata in solid-state disks to reduce latency and improve IOPS without compromising sequential I/O performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If serial processing of I/O operations is used to maintain read/write consistency, then consistency is preserved, but I/O performance and productivity deteriorate

Engineering Contradiction:
Improveread/write consistencyVSAvoidI/O performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the I/O processing system into multiple independent worker threads that can process different I/O operations concurrently. Each worker thread handles a portion of the I/O stream independently, allowing parallel processing while maintaining consistency through coordinated access to shared data structures (priority queues and range queues) that track processing state.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic load balancing where worker threads can be added or removed based on system conditions and I/O workload. The number of active workers is adjusted dynamically to optimize performance while maintaining consistency, allowing the system to adapt to varying throughput requirements without compromising read/write consistency.

Inventive Principle:
Principle #15Dynamics

2Productivity

If parallel processing of I/O operations is implemented to improve productivity, then I/O performance improves, but maintaining read/write consistency becomes more difficult

Engineering Contradiction:
ImproveI/O performanceVSAvoidread/write consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces intermediary data structures (priority queues and range queues) that act as mediators between parallel worker threads and the final I/O output. These queues buffer and order I/O operations, ensuring that even though workers process in parallel, the final output maintains the correct sequential order and consistency requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements feedback mechanisms where worker threads continuously monitor the state of shared data structures and adjust their behavior accordingly. When a worker detects that another worker is processing a dependent range, it waits or adjusts its processing, providing real-time feedback to maintain consistency while allowing maximum parallelism when safe.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If metadata access is increased to support random I/O operations, then random I/O capability improves, but access latency increases

Engineering Contradiction:
Improverandom I/O capabilityVSAvoidaccess latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-loading and caching metadata into memory before random I/O operations need to access it. The system anticipates metadata access needs and prepares data structures in advance, reducing the latency penalty of random access by having metadata readily available in fast memory rather than requiring slow disk access at the moment of need.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the physical state and location of metadata from disk-based storage to in-memory storage, fundamentally altering the access parameters. By moving metadata from slow disk storage to fast memory, the system maintains random I/O capability while dramatically reducing access latency through the parameter change of storage medium.

Inventive Principle:
Principle #35Parameter changes

4Adaptability or versatility

If separate I/O paths are created for sequential and random requests, then I/O versatility improves, but system complexity increases

Engineering Contradiction:
ImproveI/O operation typesVSAvoidsystem architecture
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal I/O processing architecture where the same worker threads and data structures handle both sequential and random I/O operations. Rather than building separate specialized paths, the system uses multi-functional components that can adapt to different I/O patterns, reducing overall complexity while maintaining versatility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent implements dynamic routing where the I/O processing path is determined at runtime based on the characteristics of each I/O request. The system dynamically adjusts which workers handle which operations and how data flows through the system, allowing a single flexible architecture to serve multiple I/O patterns without requiring separate static paths for each type.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10235248B1Processing I/O operations in parallel while maintaining read/write consistency using range and priority queues in a data protection system
Publication Date: 2019.03.19 EMC IP HLDG CO LLC
  • US10235248B1 patent drawing
  • US10235248B1 patent drawing
  • US10235248B1 patent drawing

AI summary

In one example, a method includes receiving a stream that identifies I/O operations requested to be performed with respect to a data grouping, and identifying, in the stream, random I/O requests and sequential I/O requests. Next, the stream is split into an incoming queue containing the sequential I/O requests and a priority/processing queue containing the random I/O requests. A metadata load queue is then defined by assigning each of the random I/O requests to a respective range of metadata. The metadata of each range is loaded, and the random I/O requests re-queued. Using the loaded metadata, a random I/O operation is performed that corresponds to one of the random I/O requests. Finally, the random I/O operation and a sequential I/O operation are performed concurrently with each other.