Server-based persistence management in user space
AssigneeNetApp, Inc.
InventorsGirish Chandrashekar, Sourav Basu, Vasudev Jakhar
Life of this patent
Estimating the term…
Abstract
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.
Claims14
A method comprising:
- intercepting a read request from an application by a first process of a user space of a server executing a file system, the read request specifying data storage location of a remote storage device managed by a remote storage operating system;
- determining by a second process of the user space that a first data portion for the read request is located at a cache of the server managed by the second process and a second data portion is located at the remote storage device, based on a size specified by the read request and a configurable extent size for the cache;
- queuing by the second process, a write request for the cache before receiving the second data portion from the remote storage device;
- retrieving the second data portion from the remote storage device by the file system, based on a request from the second process sent to the file system via an application programming interface (API) executed in the user space;
- providing the first and second data portions to the application by the second process;
- and
- asynchronously executing the write request by the second process to write the second data portion at the cache;
- wherein the second process exposes larger cache capacity to the application than physical cache capacity by maintaining a first queue for used metadata and a second queue for metadata evicted from the first queue by the second process, based on a least recently used parameter.
A non-transitory, machine-readable storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to:
- intercept a read request from an application by a first process of a user space of a server executing a file system, the read request specifying data storage location of a remote storage device managed by a remote storage operating system;
- determine by a second process of the user space that a first data portion for the read request is located at a cache of the server managed by the second process and a second data portion is located at the remote storage device, based on a size specified by the read request and a configurable extent size for the cache;
- queue by the second process, a write request for the cache before receiving the second data portion from the remote storage device;
- retrieve the second data portion from the remote storage device by the file system, based on a request from the second process sent to the file system via an application programming interface (API) executed in the user space;
- provide the first and second data portions to the application by the second process;
- and
- asynchronously execute the write request by the second process to write the second data portion at the cache;
- wherein the second process exposes larger cache capacity to the application than physical cache capacity by maintaining a first queue for used metadata and a second queue for metadata evicted from the first queue by the second process, based on a least recently used parameter.
A system, comprising:
- a memory containing machine readable medium comprising machine executable code having stored thereon instructions;
- and a processor coupled to the memory, configured to execute the machine executable code to:
- intercept a read request from an application by a first process of a user space of a server executing a file system, the read request specifying data storage location of a remote storage device managed by a remote storage operating system;
- determine by a second process of the user space that a first data portion for the read request is located at a cache of the server managed by the second process and a second data portion is located at the remote storage device, based on a size specified by the read request and a configurable extent size for the cache;
- queue by the second process, a write request for the cache before receiving the second data portion from the remote storage device;
- retrieve the second data portion from the remote storage device by the file system, based on a request from the second process sent to the file system via an application programming interface (API) executed in the user space;
- provide the first and second data portions to the application by the second process;
- and
- asynchronously execute the write request by the second process to write the second data portion at the cache;
- wherein the second process exposes larger cache capacity to the application than physical cache capacity by maintaining a first queue for used metadata and a second queue for metadata evicted from the first queue by the second process, based on a least recently used parameter.
Dependencies are inferred from the claim text.