Coordinating Interdependent Asynchronous Reads in Hierarchical Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data storage systems incur increased latency and overhead due to the need for synchronous reads of indirect blocks before issuing asynchronous read requests, especially in hierarchical data structures with multiple levels of metadata, which impacts performance and delays data access.

Innovation Solution

The system coordinates interdependent asynchronous reads by identifying the highest uncached indirect block in a hierarchical data structure and recording a context item to reissue the I/O request asynchronously once the indirect block is read, allowing for efficient prefetching and reducing latency by bringing all necessary indirect blocks into faster storage media without waiting for synchronous metadata accumulation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronous reads of indirect blocks are performed before issuing asynchronous read requests, then data access correctness is ensured, but latency and overhead increase

Engineering Contradiction:
Improvedata access correctnessVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by issuing asynchronous read requests for indirect blocks in advance, before the actual data read operation. The I/O manager queues these preliminary read requests and coordinates their execution, allowing the indirect blocks to be loaded into cache memory before they are needed for data block address translation. This eliminates the need to wait for synchronous completion of indirect block reads before issuing data read requests.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The I/O manager acts as an intermediary component that coordinates between the read requests for data blocks and the indirect blocks. It maintains a data structure tracking pending I/O requests and their dependencies, matching indirect block reads with subsequent data reads. This intermediary coordination allows asynchronous operations to proceed without compromising data access correctness.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If multiple levels of indirect blocks are read synchronously to traverse the hierarchical data structure, then the target data block location is accurately determined, but performance deteriorates due to multiple synchronous reads

Engineering Contradiction:
Improvedata block location accuracyVSAvoidperformance
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system performs preliminary asynchronous read requests for all levels of indirect blocks in the hierarchical data structure before the actual data read operation. The I/O manager queues these preliminary read requests and coordinates their execution, allowing multiple levels of indirect blocks to be loaded into cache memory in advance. This eliminates the need to perform multiple synchronous reads during the actual data access operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically manages the I/O request queue and adapts the read coordination based on the hierarchical structure of indirect blocks. The I/O manager tracks the completion status of each indirect block read and dynamically issues subsequent read requests as blocks become available in cache, rather than waiting for a fixed synchronous sequence to complete.

Inventive Principle:
Principle #15Dynamics

3Stability of the object's composition

If the read request is locked until metadata is accumulated, then data consistency is maintained, but latency increases due to waiting for metadata accumulation

Engineering Contradiction:
Improvedata consistencyVSAvoidlatency
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

The system performs preliminary actions by issuing asynchronous read requests for all necessary indirect blocks in advance of the actual data read operation. The I/O manager queues these requests and coordinates their completion, so that when the data read is needed, the metadata is already available in cache memory. This maintains data consistency while eliminating the waiting period.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains continuous useful action by keeping the I/O request queue actively processing read requests for indirect blocks in the background, rather than locking and pausing operations. The I/O manager continuously monitors the completion of indirect block reads and immediately issues subsequent data read requests without interruption or locking, maintaining steady workflow.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10241920B2Systems and methods for coordinating interdependent asynchronous reads
Publication Date: 2019.03.26 ORACLE INT CORP
  • US10241920B2 patent drawing
  • US10241920B2 patent drawing
  • US10241920B2 patent drawing

AI summary

Implementations described and claimed herein provide a coordination of interdependent asynchronous reads. In one implementation, an input/output request for a target data block stored on a block device at a virtual address is received. A highest level indirect block from which the target data block depends in a hierarchical data structure pointing to the virtual address of the target data block is identified. The highest level indirect block is uncached. A context item is recorded to an input/output structure for the highest level indirect block. The context item indicates that an ultimate objective of a read request for the highest level indirect block is to retrieve the target data block. The input/output request is asynchronously reissued for the target data block upon receipt of the read request for the highest level indirect block.