Persistent caching for operating a persistent caching system
First Claim
1. A persistent caching system, the system comprising:
- a client, wherein the client (a) includes a processor and a computer readable storage medium and (b) is configured to;
i) access at least a portion of a data through a network, and ii) access at least a portion of virtual memory blocks through RDMA using one or more exported addresses; and
a caching server of a storage system, wherein the caching server (a) includes a processor, a computer readable storage medium, and the data, and (b) is configured to;
i) store the data in a number of virtual memory blocks, each of the virtual memory blocks referring to an associated memory-mapped file in a file system of the caching server, ii) export addresses of the virtual memory blocks to the client, and iii) page one or more virtual memory blocks being accessed by the client through RDMA to and/or from memory-mapped files associated with the accessed virtual memory blocks,wherein, after receiving an RDMA read request from the client at a network card of the caching server, the network card is configured to;
i) issue a DMA operation to the network card, the DMA operation includes instructions to copy the virtual memory block that was indicated by the RDMA read request, and ii) to transmit the copied virtual memory block to the client that submitted the RDMA read request.
1 Assignment
0 Petitions
Accused Products
Abstract
A persistent caching system is provided. The persistent caching system includes a storage system having a caching server for storing data, and a client for accessing the data through a network. The caching server is configured to store the data in a number of virtual memory blocks. The virtual memory blocks refer to an associated memory-mapped file in a file system of the caching server. The caching server is configured to export addresses of the virtual memory blocks to the client. The client is configured to access at least some of the virtual memory blocks through RDMA using the exported addresses. The caching server is configured to page virtual memory blocks being accessed by one or more clients through RDMA to and/or from the memory-mapped files associated with the accessed virtual memory blocks.
18 Citations
16 Claims
-
1. A persistent caching system, the system comprising:
-
a client, wherein the client (a) includes a processor and a computer readable storage medium and (b) is configured to;
i) access at least a portion of a data through a network, and ii) access at least a portion of virtual memory blocks through RDMA using one or more exported addresses; anda caching server of a storage system, wherein the caching server (a) includes a processor, a computer readable storage medium, and the data, and (b) is configured to;
i) store the data in a number of virtual memory blocks, each of the virtual memory blocks referring to an associated memory-mapped file in a file system of the caching server, ii) export addresses of the virtual memory blocks to the client, and iii) page one or more virtual memory blocks being accessed by the client through RDMA to and/or from memory-mapped files associated with the accessed virtual memory blocks,wherein, after receiving an RDMA read request from the client at a network card of the caching server, the network card is configured to;
i) issue a DMA operation to the network card, the DMA operation includes instructions to copy the virtual memory block that was indicated by the RDMA read request, and ii) to transmit the copied virtual memory block to the client that submitted the RDMA read request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for operating a persistent caching system, the method comprising:
-
storing, by one or more processors, a data in a virtual memory block of a caching server, wherein the virtual memory block refers to an associated memory-mapped file in a file system of the caching server, wherein the caching server is configured to serve RDMA read operations from the client directly from an operating system page cache of the caching server, and wherein the caching server is configured to serve RDMA read operations from the client directly from the operating system page cache of the caching server using an in-kernel soft-RDMA stack; exporting, by one or more processors, an address of the virtual memory block from the caching server to a client; in response to a request from the client that includes the address, accessing, by one or more processors, the virtual memory block through RDMA using the address; and paging, by one or more processors, the virtual memory block being accessed by the client through RDMA using the memory-mapped files associated with the virtual memory block.
-
-
16. A non-transitory computer program product for operating a persistent caching system, the computer program product comprising:
one or more computer-readable storage media and program instructions stored on the one or more computer-readable storage media, the program instructions comprising; program instructions to store a data in a virtual memory block of a caching server, wherein the virtual memory block refers to an associated memory-mapped file in a file system of the caching server; program instructions that instruct the caching server to serve RDMA read operations directly from an operating system page cache of the caching server, wherein the RDMA read operations are from the client; program instructions to export an address of the virtual memory block from the caching server to a client; program instructions to respond to a request from the client that includes the address, by accessing the virtual memory block through RDMA using the address; and program instructions to page the virtual memory block being accessed by the client through RDMA using the memory-mapped files associated with the virtual memory block.
Specification