Change Notify Watch Emulation in Virtualized Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtualized storage systems face challenges in supporting Change Notify watches due to the client's local operating system being unaware of physical storage locations and the logical volumes being minimally aware of file and directory changes, making it difficult to monitor and report changes across clustered storage systems.

Innovation Solution

The system emulates Change Notify features by leveraging inode-to-path mapping to traverse the file system tree and determine applicable watches on ancestor directories, allowing changes to be reported to clients across different protocols, and uses caching techniques to enhance performance and retain watch state during data movements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If virtualized storage systems use clustered architecture with distributed file system control, then storage capacity and reliability are improved, but the complexity of monitoring and reporting file changes across the cluster increases

Engineering Contradiction:
Improvestorage system reliabilityVSAvoidchange monitoring complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a file system control module as an intermediary between the distributed file system and the client. This control module centralizes the logic for monitoring file changes and generating change notify events, thereby simplifying the overall system architecture while maintaining the reliability benefits of clustered storage. The intermediary translates physical storage changes into logical file system events that clients can observe.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The file system control module performs multiple functions: it manages file system operations, tracks file changes, generates change notify events, and communicates with clients. By consolidating these diverse functions into a single control module, the system reduces complexity while maintaining reliability across the clustered architecture.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If the system traverses the inode-to-path mapping to determine watched directories for every change event, then accurate change notification is achieved, but processing time and computational overhead increase

Engineering Contradiction:
Improvechange notification accuracyVSAvoidchange event processing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system pre-establishes the mapping between inodes and file system paths during file creation and modification operations. When a change event occurs, the control module can quickly retrieve the pre-computed path information without performing a complete tree traversal, significantly reducing processing time while maintaining notification accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The inode-to-path mapping is maintained locally within the file system control module, allowing rapid access to path information without requiring global system state queries. This localized storage of mapping information enables fast lookups specific to each change event while preserving accurate change notification.

Inventive Principle:
Principle #3Local quality

3Productivity

If the system caches triggered watch events to improve performance, then processing speed increases, but additional storage requirements are created

Engineering Contradiction:
Improvechange notification processing speedVSAvoidstorage space for caching
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system implements selective caching of change events based on predefined criteria such as event type, frequency, and client subscription patterns. Not all change events are cached—only those that meet specific conditions are stored, thereby improving processing speed for frequent events while minimizing additional storage requirements through targeted rather than comprehensive caching.

Inventive Principle:
Principle #16Partial or excessive action

4Adaptability or versatility

If the client's local operating system is unaware of physical storage locations, then storage virtualization flexibility is improved, but the ability to monitor file changes at the client side is reduced

Engineering Contradiction:
Improvestorage virtualization flexibilityVSAvoidfile change detection capability
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The file system control module actively pushes change notification events to clients based on watched directories, creating a feedback mechanism that informs clients of file changes without requiring them to know physical storage locations. This feedback loop maintains storage virtualization flexibility while restoring file change detection capability through server-initiated notifications.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The file system control module serves as an intermediary that translates physical storage changes into logical file system events and delivers them to clients. This intermediary layer decouples clients from physical storage details, preserving virtualization flexibility while enabling change detection through standardized file system event notifications.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7958169B1System and method for supporting change notify watches for virtualized storage systems
Publication Date: 2011.06.07 NETAPP INC
  • US7958169B1 patent drawing
  • US7958169B1 patent drawing
  • US7958169B1 patent drawing

AI summary

A technique supports Change Notify watches in virtualized storage systems. In particular, techniques of the present invention advantageously emulate Change Notify features (e.g., as documented by the CIFS protocol) on virtualized storage systems by leveraging virtualization mapping information (e.g., an inode-to-path or “I2P” mapping) to walk a file system tree backwards from the data blocks to their ancestors to determine whether there are applicable watches on ancestor directories, and to obtain a pathname (e.g., relative) of the watched (changed) data. In particular, changes to data received from different protocols (e.g., CIFS, NFS, HTTP, etc.) can trigger watches to clients on the virtualized storage system. Also, performance may be enhanced using various caching techniques, and watch state may be retained while moving watched data across volumes of the virtualized storage system.