Mirrored Lock Synchronization for Non-Disruptive Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing access rights in networked storage systems is challenging, particularly in maintaining non-disruptive data access when nodes fail, as existing solutions require costly shared memory architectures and special hardware.

Innovation Solution

Implementing mirrored lock data structures that are synchronized with original lock data structures across cluster nodes, allowing seamless takeover and maintenance of data storage without disrupting client access, even during volume moves and aggregate relocations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If shared memory architecture is used to store lock information for failover, then reliability is improved, but device complexity and cost increase

Engineering Contradiction:
Improvefailover capabilityVSAvoidshared memory architecture
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a mirrored copy of the lock data structure on the partner node. When the primary node fails, the partner node already possesses an identical copy of the lock information, enabling immediate failover without requiring complex shared memory architectures. This copying approach simplifies the system while maintaining reliability.

Inventive Principle:
Principle #26Copying

2Ease of operation

If lock information is stored in shared memory accessible by multiple nodes, then ease of operation for failover is improved, but device complexity increases

Engineering Contradiction:
Improvefailover processVSAvoidshared memory hardware
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

Instead of using shared memory hardware, the patent copies the lock data structure to the partner node's local memory. This eliminates the need for special shared memory hardware while maintaining easy failover operation, as the partner node can access its local copy immediately upon taking over.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent extracts the lock information from the shared memory architecture and places it locally on the partner node. This extraction removes the dependency on complex shared memory hardware while preserving the ease of failover operation.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If batch transfer of lock metadata is implemented, then productivity is improved, but measurement precision of lock state synchronization may be affected

Engineering Contradiction:
Improvelock synchronization speedVSAvoidlock state accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent performs preliminary actions by maintaining a mirrored copy of the lock data structure on the partner node before failover is needed. This preliminary mirroring ensures that when batch transfer occurs, the partner node already has the lock state information, enabling both high productivity and accurate lock state synchronization without conflict.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10530855B2Lock state synchronization for non-disruptive persistent operation
Publication Date: 2020.01.07 NETAPP INC
  • US10530855B2 patent drawing
  • US10530855B2 patent drawing
  • US10530855B2 patent drawing

AI summary

Techniques for synchronization between data structures for original locks and mirror lock data structures are disclosed herein. The mirror lock data structures are being maintained during various scenarios including volume move and aggregate relocation, in order to preserve the non-disruptive persistent operation on storage initiated by clients. According to one embodiment, a storage node determines a plurality of data container locks to be synchronized to a partner node of the storage node and transfers metadata that indicates states of variables that represent the plurality of data container locks to the partner node in a batch. When a client initiates a data access operation that causes an attempt to modify a data container lock of the plurality of data container locks, the storage node sends a retry code to a client that prompts the client to retry the data access operation after a predetermined time period.