RDMA-based link establishment method and apparatus, device and storage medium
AssigneeCloud Intelligence Assets Holding (Singapore) Private Limited
InventorsYunqi Han, Liang You, Xin Long
Life of this patent
Estimating the term…
Abstract
Embodiments of the present application provide an RDMA-based link establishment method and apparatus, a device and a storage medium. In the embodiments of the present application, for a scenario where a plurality of communication links are required to be established between upper-layer applications of two sides, i.e., a client and a server, virtual links are abstracted in an RDMA link, a plurality of virtual links are allowed to be created in one RDMA link, and the plurality of virtual links share resources of one RDMA link, such that the upper-layer applications of the two sides realize multi-path data transmission by means of the plurality of virtual links carried in the same RDMA link.
Claims18
A remote direct memory access (RDMA) based link establishment method, applied to a client, wherein a first application is running on a side of the client, and the method comprises:
- receiving a first link establishment request initiated by the first application to a second application on a side of a server, wherein the first link establishment request is any link establishment request of a plurality of link establishment requests initiated by the first application to the second application;
- acquiring, based on the first link establishment request, a first RDMA link, between the client and the server, reusable by the first application;
- creating, in the first RDMA link, a first virtual link corresponding to the first link establishment request, to enable the first application and the second application to perform one-path data transmission through the first virtual link carried in the first RDMA link;
- wherein in a case that a plurality of virtual links are created in the first RDMA link, the plurality of virtual links share a resource of the first RDMA link, to enable the first application and the second application to perform multi-path data transmission through the plurality of virtual links carried in the first RDMA link;
- wherein the acquiring, based on the first link establishment request, the first RDMA link, between the client and the server, reusable by the first application comprises:
- determining, based on the first link establishment request, whether an RDMA link already created for the first application exists between the client and the server;
- in a case that at least one RDMA link already created for the first application exists between the client and the server, identifying, based on the number of virtual links currently carried in each RDMA link, whether a candidate RDMA link in which the number of virtual links currently carried is less than a corresponding maximum number of virtual links exists among the at least one RDMA link;
- in a case that the candidate RDMA link exists, selecting an RDMA link from the candidate RDMA link as the first RDMA link.
A remote direct memory access (RDMA) based link establishment method, comprising:
- receiving a first channel identifier transmitted by a client through a first RDMA link between the client and a server, wherein the first channel identifier is a channel identifier of an idle state selected from multiple channel identifiers supported by the first RDMA link, and the first RDMA link is an RDMA link, between the client and the server, reusable by a first application in the client;
- returning a reply message to the client based on the first RDMA link, wherein the reply message comprises at least a message indicating reception of the first channel identifier, for creating a first virtual link corresponding to the first channel identifier in the first RDMA link, and the first virtual link is used for data transmission by the first application to a second application in the server through the first RDMA link;
- wherein the first RDMA link, between the client and the server, reusable by the first application is acquired by a process applied to the client comprising:
- receiving a first link establishment request initiated by the first application to the second application, wherein the first link establishment request is any link establishment request of a plurality of link establishment requests initiated by the first application to the second application;
- determining, based on the first link establishment request, whether an RDMA link already created for the first application exists between the client and the server;
- in a case that at least one RDMA link already created for the first application exists between the client and the server, identifying, based on the number of virtual links currently carried in each RDMA link, whether a candidate RDMA link in which the number of virtual links currently carried is less than a corresponding maximum number of virtual links exists among the at least one RDMA link;
- in a case that the candidate RDMA link exists, selecting an RDMA link from the candidate RDMA link as the first RDMA link.
An electronic device, applied to a client, wherein a first application is running on a side of the client, and the electronic device comprises:
- a memory and a processor;
- wherein the memory is configured to store a computer program, and the processor is coupled with the memory and configured to execute the computer program to:
- receive a first link establishment request initiated by the first application to a second application on a side of a server, wherein the first link establishment request is any link establishment request of a plurality of link establishment requests initiated by the first application to the second application;
- acquire, based on the first link establishment request, a first remote direct memory access (RDMA) link, between the client and the server, reusable by the first application;
- create, in the first RDMA link, a first virtual link corresponding to the first link establishment request, to enable the first application and the second application to perform one-path data transmission through the first virtual link carried in the first RDMA link;
- wherein in a case that a plurality of virtual links are created in the first RDMA link, the plurality of virtual links share a resource of the first RDMA link, to enable the first application and the second application to perform multi-path data transmission through the plurality of virtual links carried in the first RDMA link;
- wherein when acquiring, based on the first link establishment request, the first RDMA link, between the client and the server, reusable by the first application, the processor is further configured to:
- determine, based on the first link establishment request, whether an RDMA link already created for the first application exists between the client and the server;
- in a case that at least one RDMA link already created for the first application exists between the client and the server, identify, based on the number of virtual links currently carried in each RDMA link, whether a candidate RDMA link in which the number of virtual links currently carried is less than a corresponding maximum number of virtual links exists among the at least one RDMA link;
- in a case that the candidate RDMA link exists, select an RDMA link from the candidate RDMA link as the first RDMA link.
Dependencies are inferred from the claim text.