Remote Storage Location Cache for Networked Storage Race Conditions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional networked storage systems experience latency in processing read requests due to the need for forwarding requests between storage nodes, which can impact performance, especially in SAN environments.

Innovation Solution

Implementing a remote storage location cache (R-SLC) and remote hash data structure (R-HAC) between partner storage nodes allows the non-LUN owning node to directly respond to read requests, reducing latency by caching storage location information and managing inode attributes, and using sequence numbers and transaction identifiers to ensure data accuracy and freshness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If read requests are forwarded between storage nodes in conventional systems, then data can be accessed, but latency increases

Engineering Contradiction:
Improveread request latencyVSAvoidrequest forwarding mechanism
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by creating cache entries in the R-SLC before read requests arrive. When a write operation occurs, the system proactively caches the storage location information and sends notifications to partner nodes, so that subsequent read requests can be served directly without forwarding delays

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The R-SLC acts as an intermediary between partner nodes and storage data. Instead of directly forwarding read requests between nodes, the R-SLC intercepts and processes read requests locally using cached location information, eliminating the need for request forwarding while maintaining data access capability

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the non-LUN owning node directly responds to read requests using R-SLC, then latency is reduced, but race conditions may occur

Engineering Contradiction:
Improveread request processing speedVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements feedback mechanisms where partner nodes send notifications to each other about write operations and cache invalidations. When a node detects a write operation, it notifies partner nodes to invalidate their cache entries, ensuring that subsequent reads return consistent data while maintaining high performance

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The R-SLC implementation is dynamic, allowing nodes to switch between direct response mode and forwarded request mode based on cache validity. The system dynamically invalidates cache entries when write operations occur, enabling fast direct responses for valid caches while falling back to consistent forwarded requests when needed

Inventive Principle:
Principle #15Dynamics

3Speed

If cache entries are stored in R-SLC for fast access, then read performance improves, but memory resources are consumed

Engineering Contradiction:
Improveread access speedVSAvoidmemory resources
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The R-SLC stores only essential cache entry information locally at each partner node, specifically the storage location metadata needed for fast read access. This localized caching of critical information enables fast reads while minimizing memory consumption compared to storing complete data copies

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12056056B2Methods and systems for managing race conditions during usage of a remote storage location cache in a networked storage system
Publication Date: 2024.08.06 NETAPP INC
  • US12056056B2 patent drawing
  • US12056056B2 patent drawing
  • US12056056B2 patent drawing

AI summary

Methods and systems for a networked storage system are provided. One method includes: generating, by a first node, a dummy entry in a storage location cache of the first node, the dummy entry associated with a read request received by the first node for data stored using a logical object owned by a second node; receiving, by the first node, an invalidation request to invalidate any storage location entry associated with the data, the invalidation request sent in response to the second node receiving a write request to modify the data; invalidating, by the first node, the dummy entry; receiving, by the first node, a response to the read request from the second node with the requested data; and replacing, by the first node, the dummy entry with a storage location entry and invalidating the storage location entry based on the invalidated dummy entry.