IP Library › Granted Patent US 11,360,929
Granted Patent B2
US 11,360,929 · App. 16/927,795 · Granted Jun 14, 2022

Pre-registering memory regions for remote direct memory access in a distributed file system

Inventors: Mohammed Rafi Kavungal Chundattu Parambil (Malappuram, IN); Raghavendra Talur (Bangalore, IN)
Assignee: Red Hat, Inc.
G06F15/17331G06F9/54H04L67/1097H04L49/9005
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,360,929
App. No.
16/927,795
Granted
Jun 14, 2022
Kind
B2
Abstract

The subject matter of this specification can be implemented in, among other things, a method that includes pre-registering, at a client device, one or more input/output (IO) buffers for a remote direct memory access (RDMA) interface at the client device. In response to pre-registering the one or more IO buffers at the client device, an application executed by the client device is provided with access to a distributed file system through the RDMA interface. In response to determining that data of a requested file in the distributed file system has been designated for caching, a first IO buffer among the IO buffers is designated as a cache for the data of the file. The data for the file is received via the RDMA interface and from the distributed file system, for the first IO buffer.

Claims (40)

1. A method comprising:

pre-registering, at a client device, one or more input/output (IO) buffers for a remote direct memory access (RDMA) interface at the client device, wherein pre-registering comprises specifying multiple levels of access for the one or more IO buffers due to a level of access for the IO buffers determined in view of a level of access subsequently used by an application executed by the client device, wherein the level of access is unknown at a time the IO buffers are pre-registered;

responsive to pre-registering the one or more IO buffers at the client device, providing the application executed by the client device with access to a distributed file system through the RDMA interface;

determining whether data of a requested file in the distributed file system has been designated for caching;

responsive to determining that the data of the requested file in the distributed file system has been designated for caching, designating a first IO buffer among the IO buffers as a cache for the data of the file; and

receiving, via the RDMA interface and from the distributed file system, the data of the file for the first IO buffer.

2. The method of claim 1 , wherein the one or more IO buffers are pre-registered during initialization of the RDMA interface.

3. The method of claim 1 , wherein the one or more IO buffers comprise a plurality of IO buffers that comprise a first set of IO buffers designated for caching data received from the distributed file system and a second set of IO buffers that are not designated for caching the data received from the distributed file system, and wherein the first set of IO buffers comprises the first IO buffer.

4. The method of claim 3 , wherein the data of the file received for the first IO buffer is used for a subsequent request to access the file from the client device, and wherein the method further comprises determining that the data of the file in the first IO buffer relative to the data of the file in the distributed file system has not changed prior to using the data of the file in the first IO buffer.

5. The method of claim 1 , further comprising:

receiving a request to access the file in the distributed file system from the application at the client device, wherein the request to access the file comprises a system call or a file operation of an operating system, and wherein the system call or the file operation accesses a virtual file system.

6. A system comprising:

a remote direct memory access (RDMA) interface at a client device;

a memory, at the client device, comprising multiple memory regions; and

a processing device, at the client device, to communicate with the RDMA interface and the memory, the processing device to:

pre-register a plurality of input/output (IO) buffers for the RDMA interface at the client device;

responsive to pre-registering the plurality of IO buffers at the client device, provide an application executed by the client device with access to a distributed file system through the RDMA interface;

determine whether data of a requested file in the distributed file system has been designated for caching;

responsive to determining that the data of the requested file in the distributed file system has been designated for caching;

designate a first IO buffer among the plurality of IO buffers as a cache for the data of the file, wherein the first IO buffer is included in a first set of IO buffers of the plurality of IO buffers that are designated for caching data received from the distributed file system; and

receive, via the RDMA interface and from the distributed file system, the data of the file for the first IO buffer; and

responsive to determining that the data of the requested file in the distributed file system has not been designated for caching, cause the data of the file to be stored in a second IO buffer among the plurality of IO buffers, wherein the second IO buffer is included in a second set of IO buffers of the plurality of IO buffers that are not designated for caching data received from the distributed file system.

7. The system of claim 6 , wherein at least one of the plurality of IO buffers is pre-registered during initialization of the RDMA interface.

8. The system of claim 6 , wherein the data of the file received for the first IO buffer is used for a subsequent request to access the file from the client device, and wherein the processing device is further to:

determine that the data of the file in the first IO buffer relative to the data of the file in the distributed file system has not changed prior to using the data of the file in the first IO buffer.

9. The system of claim 6 , wherein pre-registering comprises specifying multiple levels of access for the plurality of IO buffers due to a level of access for the plurality of IO buffers, wherein the level of access for the plurality of IO buffers is determined in view of a level of access subsequently used by the application not yet being known at a time the plurality of IO buffers are pre-registered.

10. A non-transitory, computer readable medium having instructions that, when executed by a processing device, cause the processing device to:

pre-register, at a client device, a plurality of input/output (IO) buffers for a remote direct memory access (RDMA) interface at the client device;

responsive to pre-registering the plurality of IO buffers at the client device, provide an application executed by the client device with access to a distributed file system through the RDMA interface;

determine whether data of a requested file in the distributed file system has been designated for caching;

responsive to determining that the data of the requested file in the distributed file system has been designated for caching;

designate a first IO buffer among the plurality of IO buffers as a cache for the data of the file, wherein the first IO buffer is included in a first set of IO buffers of the plurality of IO buffers that are designated for caching data received from the distributed file system; and

receive, via the RDMA interface and from the distributed file system, the data of the file for the first IO buffer; and

responsive to determining that the data of the requested file in the distributed file system has not been designated for caching, cause the data of the file to be stored in a second IO buffer among the plurality of IO buffers, wherein the second IO buffer is included in a second set of IO buffers of the plurality of IO buffers that are not designated for caching data received from the distributed file system.

11. The non-transitory, computer readable medium of claim 10 , wherein at least one of the plurality of IO buffers is pre-registered during initialization of the RDMA interface.

12. The non-transitory, computer readable medium of claim 10 , wherein the data of the file received for the first IO buffer is used for a subsequent request to access the file from the client device, and wherein the processing device is further to:

determine that the data of the file in the first IO buffer relative to the data of the file in the distributed file system has not changed prior to using the data of the file in the first IO buffer.

13. The non-transitory, computer readable medium of claim 10 , wherein pre-registering comprises specifying multiple levels of access for the plurality of IO buffers, wherein the level of access for the plurality of IO buffers is determined in view of a level of access for the plurality of IO buffers due to a level of access subsequently used by the application not yet being known at a time the plurality of IO buffers are pre-registered.

14. The non-transitory, computer readable medium of claim 10 , wherein the processing device is further to:

receive a request to access the file in the distributed file system from the application at the client device, wherein the request to access the file comprises a system call or a file operation of an operating system, and wherein the system call or the file operation accesses a virtual file system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2020
From: PARAMBIL, MOHAMMED RAFI KAVUNGAL CHUNDATTU; TALUR, RAGHAVENDRA
To: RED HAT, INC.
Reel/Frame 053196/0020 →
Continuity (2)
Continuation 14994959 · Jan 13, 2016
Related Publication 20200341940A1 · Oct 29, 2020