Circular Mirroring of Flexible Volumes Preventing Deadlocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In network storage systems, bi-directional or circular mirroring of flexible volumes creates a deadlock situation because each filer's cache flush depends on the other filer's completion, leading to synchronization issues and potential data loss in case of a failure.

Innovation Solution

A source filer maintains multiple log files on the destination filer, equal to or exceeding the number of cache flush operations, allowing for pre-creation or dynamic creation and reuse of log files to avoid dependency on the destination filer's cache flush completion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If bi-directional or circular mirroring is implemented, then data redundancy and availability are improved, but deadlock situations occur due to mutual dependency on cache flush completion

Engineering Contradiction:
Improvedata availabilityVSAvoidsynchronization complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-allocating multiple log files on the destination filer before mirroring operations begin. These log files are prepared in advance to receive cache flush data, eliminating the need for the source filer to wait for destination filer cache flush completion. This breaks the circular dependency that causes deadlock while maintaining data redundancy and availability.

Inventive Principle:
Principle #10Preliminary action

2Stability of the object's composition

If cache flush dependency is maintained for synchronization, then data consistency is ensured, but system performance deteriorates due to waiting and potential deadlocks

Engineering Contradiction:
Improvedata consistencyVSAvoidmirroring operation speed
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent segments the cache flush operation into multiple independent log files on the destination filer. Instead of requiring a single synchronized flush between source and destination, the system divides the logging function across multiple files, allowing the source filer to write to pre-allocated log files without waiting for destination filer cache flush completion. This maintains data consistency through the log file structure while dramatically improving mirroring operation speed by eliminating the performance-deteriorating wait condition.

Inventive Principle:
Principle #1Segmentation

3Reliability

If multiple log files are pre-allocated on destination filer, then deadlock is prevented, but storage space consumption increases

Engineering Contradiction:
Improvedeadlock preventionVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements discarding and recovering by managing multiple log files on the destination filer in a rotational manner. As log files are written and then archived or closed, the storage space they occupied is recovered and made available for reuse. This allows the system to maintain multiple log files for deadlock prevention while controlling overall storage space consumption through the systematic reuse of log file space after its purpose is fulfilled.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentEP1955208B1Circular and bi-directional mirroring of flexible volumes
Publication Date: 2011.09.07 NETAPP INC
  • EP1955208B1 patent drawingFigure 1
  • EP1955208B1 patent drawingFigure 2
  • EP1955208B1 patent drawingFigure 3A

AI summary

A method and system mirror flexible volumes in a circular or bi-directional configuration, without creating a deadlock. A source filer maintains a number of log files on a destination filer, where the number of log files is greater than or equal to the number of cache flush operations the primary filer performs between cache flush operations on the destination filer. The source filer can create the log files in advance. Alternatively or in addition, the source filer can create the log files as needed, i.e., the source filer can create a log file when the source filer flushes its cache. Once the destination filer flushes its cache, the log files created prior to the destination filer cache flush can be deallocated or reused.