User-Space Persistence Manager for Server File Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional caching solutions in file servers, especially those using remote storage appliances, face inefficiencies due to slow data transfer speeds over networks, particularly when storage appliances are located off-site, and face challenges in providing persistence management without modifying the operating system kernel, which is hindered by open source licensing issues and ownership concerns.

Innovation Solution

A server-based persistence management system that intercepts file system API calls to cache frequently accessed data in a high-speed persistent cache on the server, allowing applications to function unchanged and providing caching for both POSIX-compliant and cloud-native applications, with features like application-aware caching, snapshot management, and replication for high availability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is cached at a remote file server, then data access speed is improved, but network latency and transfer time increase when storage appliances are located off-site

Engineering Contradiction:
Improvedata access speedVSAvoidnetwork transfer time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent introduces a persistence manager as an intermediary layer between applications and the file server. This persistence manager implements a local cache on the server machine itself, acting as a mediator that intercepts file system calls and serves data from local cache rather than requiring network transfers to remote storage appliances.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent moves the caching function from the network dimension (remote file server) to the local dimension (server machine's persistence manager). By implementing caching at the application server rather than at the storage appliance, the system eliminates the network transfer dimension for cached data access.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Ease of operation

If a persistence manager is implemented in user space, then application compatibility and ease of deployment are improved, but system control and performance optimization are limited compared to kernel space implementation

Engineering Contradiction:
Improvedeployment easeVSAvoidsystem control complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The persistence manager acts as an intermediary library that sits in user space and intercepts standard file system API calls. This allows it to provide persistence management functionality without requiring kernel modifications, maintaining application compatibility while enabling caching and snapshot capabilities through a user-space mediator.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The persistence manager is designed as a universal user-space component that can serve multiple applications simultaneously. It implements a standardized interface that works with POSIX-compliant applications and provides multiple functions including caching, snapshot management, and replication through a single user-space library.

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

3Adaptability or versatility

If open source licensing is maintained for the operating system kernel, then software freedom and adaptability are improved, but the ability to modify the kernel for persistence management is restricted

Engineering Contradiction:
Improvesoftware freedomVSAvoidkernel modification ease
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The persistence manager serves as a user-space intermediary that provides kernel-like persistence management functionality without actually modifying the kernel. This allows the operating system to remain open source and unmodified while still enabling advanced persistence features through a user-space library that intercepts and manages file system calls.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Instead of modifying the kernel to add persistence management capabilities (which would violate open source licensing constraints), the patent inverts the approach by implementing persistence management in user space. This reverses the traditional architecture where such functionality would reside in the kernel, allowing open source compliance while achieving the same functional goals.

Inventive Principle:
Principle #13The other way round (Inversion)

4Reliability

If data is written back to remote storage immediately, then data consistency is improved, but write performance and application responsiveness are reduced

Engineering Contradiction:
Improvedata consistencyVSAvoidwrite performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The persistence manager performs preliminary actions by caching write operations locally before they are committed to remote storage. It maintains a cache of modified data and only writes back to remote storage when necessary, such as when the cache is full or periodic synchronization is required, rather than immediately writing back after each write operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The persistence manager allows write operations to skip the remote storage step by caching them locally. Applications can proceed with their operations without waiting for remote write-back completion, and the persistence manager will handle the synchronization to remote storage in the background or according to its own timing and consistency requirements.

Inventive Principle:
Principle #21Skipping (Rushing through)

Data Source

PatentEP3387558B1Server-based persistence management in user space
Publication Date: 2022.03.16 NETAPP INC
  • EP3387558B1 patent drawingFigure 1
  • EP3387558B1 patent drawingFigure 2
  • EP3387558B1 patent drawingFigure 3

AI summary

A persistence management system performs, at a server, operations associated with a number of applications. At the server, a persistence manager can intercept a file system call from one of the applications, wherein the file system call specifies a file located on a remote persistent storage device separate from the server. The persistence manager can determine that data belonging to the file requested by the file system call is stored on a local persistent storage device at the server, retrieve the data from the local persistent storage, and respond to the file system call from the application with the data.