Prefetching Data in Distributed Storage via Prediction Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed storage systems, predicting and prefetching data is challenging due to the lack of centralized logging for input/output patterns, leading to inaccurate or impossible predictions across storage nodes without load information.

Innovation Solution

Implementing an asynchronous message passing mechanism with a prediction engine that analyzes metadata from client requests to determine likely subsequent IO operations, sending notifications to storage nodes to prefetch data before client requests, thereby reducing read IO latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If distributed storage systems store multiple replicas of data across storage nodes, then availability and redundancy are improved, but read IO latency increases due to lack of centralized logging for IO patterns

Engineering Contradiction:
Improvedata availabilityVSAvoidread IO latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by predicting future IO operations based on observed patterns and prefetching the required data blocks to storage nodes before they are actually requested. This allows data to be ready in advance, eliminating wait time during actual read operations while maintaining distributed storage architecture for reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms by continuously monitoring IO patterns across the distributed storage system, using this information to refine predictions of future IO operations, and dynamically adjusting prefetching strategies. This closed-loop approach optimizes data placement and reduces latency while preserving system reliability.

Inventive Principle:
Principle #23Feedback

2Productivity

If storage nodes operate independently without centralized logging, then system scalability is improved, but prediction accuracy deteriorates due to lack of load information

Engineering Contradiction:
Improvesystem scalabilityVSAvoidprediction accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system introduces an intermediary prediction component that collects IO pattern information from multiple independent storage nodes, analyzes the aggregated data to identify patterns, and generates predictions that are sent back to the nodes. This mediator enables accurate predictions across distributed nodes while preserving their operational independence and system scalability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system merges IO pattern information from multiple independent storage nodes into a unified analysis framework, combining observations from across the distributed system to improve prediction accuracy. This allows the system to maintain node independence while leveraging collective information for better predictions.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11860788B2Prefetching data in a distributed storage system
Publication Date: 2024.01.02 RED HAT LLC
  • US11860788B2 patent drawing
  • US11860788B2 patent drawing
  • US11860788B2 patent drawing

AI summary

Data can be prefetched in a distributed storage system. For example, a computing device can receive a message with metadata associated with at least one request for an input/output operation from a message queue. The computing device can determine, based on the message from the message queue, an additional IO operation predicted to be requested by a client subsequent to the at least one request for the IO operation. The computing device can send a notification to a storage node of a plurality of storage nodes associated with the additional IO operation for prefetching data of the additional IO operation prior to the client requesting the additional IO operation.