Storage Area Network Path Routing for Data Prefetching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In enterprise SAN environments, sequential I/O operations that span multiple storage components not sharing the same cache lead to cache invalidation, resulting in ineffective use of data prefetching and performance degradation due to path congestion.
Innovation Solution
Servicing sequential data block requests over multiple paths, allowing groups of requests to arrive at storage components sharing the same cache, thereby utilizing prefetching features effectively while avoiding path congestion by distributing requests across multiple paths.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If sequential I/O requests are routed to storage components sharing the same cache, then data prefetching effectiveness is improved, but path congestion occurs
Solution Approach 1:
The patent segments sequential I/O requests into groups and distributes them across multiple paths. By dividing the stream of requests and routing different segments through different paths, the system maintains cache effectiveness for prefetching while avoiding congestion on any single path. This segmentation allows the storage system to detect sequential patterns and utilize cache effectively without overwhelming a single path.
Solution Approach 2:
The patent introduces path diversity as an additional dimension for routing decisions. Instead of routing all sequential requests through a single optimal path, the system leverages multiple paths as a new degree of freedom. This dimensional expansion allows simultaneous optimization for both prefetching effectiveness and path load distribution, resolving the contradiction between these two objectives.
2Productivity
If all sequential block requests are serviced over a single path, then data prefetching is utilized effectively, but path congestion increases
Solution Approach 1:
The patent segments the stream of sequential block requests into multiple groups and distributes them across different paths. This segmentation maintains the sequential nature of requests for prefetching effectiveness while spreading the load across multiple paths, thereby reducing congestion. The system processes segments sequentially through different paths rather than flooding a single path with all requests.
Solution Approach 2:
The patent implements dynamic path selection based on the current state of the storage system and network conditions. The system adapts its routing decisions in real-time, selecting optimal paths for each segment of requests. This dynamic approach allows the system to maintain prefetching effectiveness while adapting to changing load conditions, preventing path congestion before it occurs.
3Adaptability or versatility
If sequential requests span multiple storage components not sharing the same cache, then path flexibility is improved, but cache invalidation occurs
Solution Approach 1:
The patent introduces the storage controller as an intermediary that manages the relationship between sequential requests and cache. The controller detects sequential patterns in requests and coordinates caching operations to maintain validity. This intermediary role allows the system to handle requests spanning multiple components while preserving cache effectiveness through intelligent coordination of prefetching and invalidation operations.
Solution Approach 2:
The patent implements feedback mechanisms where the storage system monitors cache status and request patterns in real-time. Based on this feedback, the system adjusts its prefetching and routing decisions to maintain cache validity. When sequential requests span multiple components, the feedback loop detects potential invalidation scenarios and takes corrective action to preserve cache effectiveness, thus maintaining reliability while allowing path flexibility.
Data Source
AI summary
A method of retrieving data blocks in a storage area network, the method comprising selecting a first one of a plurality of paths to a storage device; retrieving a first number of sequential data blocks from the storage device along the first path; and selecting a second one of the plurality of paths for retrieving subsequent sequential data blocks from the storage device. One or both of the selected paths may be the path with the lowest average turnaround time of all of the available paths.


