Filter Framework for Data Storage I/O Blocking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current file system filter architectures in data storage systems face issues such as I/O blocking, lack of control over filter sequence and load order, systematic conflicts, and performance degradation due to redundancy and inefficiency in handling requests and responses, especially in network-connected environments.

Innovation Solution

A filter framework that includes a filter controller to manage requests and responses, allowing filters to operate in user or kernel mode, with asynchronous release configurations to avoid I/O blocking and enable consistent state loading and unloading, and provides metadata exposure and incremental backup capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If file system filters are implemented in traditional architectures, then filtering functionality is provided, but I/O blocking occurs and performance degrades

Engineering Contradiction:
Improvefiltering functionalityVSAvoidI/O performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The filter architecture is segmented into independent filter modules that can be loaded and unloaded dynamically. Each filter operates as a separate entity within the filter framework, allowing I/O operations to bypass blocked filters through alternative paths or asynchronous handling, thus preventing system-wide I/O blocking while maintaining necessary filtering functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The filter framework acts as an intermediary layer between the file system and filters. It manages filter invocations, handles asynchronous operations, and coordinates filter loading/unloading. This intermediary structure allows I/O requests to be processed efficiently by managing filter execution without direct blocking of the I/O path, resolving the contradiction between filtering reliability and I/O performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple filters are loaded simultaneously, then comprehensive filtering coverage is achieved, but control over filter sequence and conflicts increases

Engineering Contradiction:
Improvefiltering coverageVSAvoidfilter management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The filter framework performs preliminary actions by pre-defining filter invocation sequences and managing filter loading orders. Filters are registered with the framework in advance, allowing the system to establish a controlled execution sequence before actual I/O operations occur. This preliminary organization reduces conflicts and simplifies management while maintaining comprehensive filtering coverage.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The filter framework implements dynamic filter management where filters can be loaded, unloaded, and reconfigured at runtime based on system needs. The invocation sequence is dynamically adjusted to prevent conflicts between filters. This dynamic approach allows comprehensive filtering coverage through multiple filters while maintaining simple control through adaptive sequence management rather than fixed complex configurations.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If filters operate in synchronous mode, then simple invocation is maintained, but I/O blocking and performance degradation occur

Engineering Contradiction:
Improvefilter invocation simplicityVSAvoidsystem performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The filter framework changes the operational parameter of filter execution from synchronous to asynchronous mode. Filters are invoked using asynchronous function pointers that allow the system to continue processing I/O operations without waiting for filter completion. This parameter change maintains ease of operation through simple filter registration and invocation while dramatically improving system performance by eliminating I/O blocking.

Inventive Principle:
Principle #35Parameter changes

4Adaptability or versatility

If filters are loaded and unloaded dynamically, then system adaptability is improved, but consistent state management becomes difficult

Engineering Contradiction:
Improvefilter dynamic loadingVSAvoidfilter state consistency
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The filter framework implements feedback mechanisms that track the state of loaded filters and their associated I/O operations. When filters are unloaded, the framework receives feedback about pending operations and manages their completion or cancellation appropriately. This feedback system ensures that filter state transitions are consistent and that no I/O operations are lost or corrupted during dynamic loading and unloading, maintaining stability while enabling adaptability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7809868B1System and method for filtering information in a data storage system
Publication Date: 2010.10.05 NETAPP INC
  • US7809868B1 patent drawing
  • US7809868B1 patent drawing
  • US7809868B1 patent drawing

AI summary

A storage system filter provides protocol aware filter operations that avoid I/O blocking or calling thread holding. A filter framework includes a filter controller that handles request and response calls to filters that are registered with the filter framework. Filters may be loaded and unloaded in a consistent state, and the filter framework provides services for the filters for common functions. Filters may operate in a user mode or a kernel mode and may be invoked in a synchronous, an asynchronous, or an asynchronous release mode. Filter registration may include registration for I/O resources, and may include tagging of I/O requests and responses to contribute to preventing conflicts.