User-Space Persistence Manager for Server File Caching
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
4Reliability
If data is written back to remote storage immediately, then data consistency is improved, but write performance and application responsiveness are reduced
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.
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.
Data Source
Figure 1
Figure 2
Figure 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.