Rdma data sending and receiving methods, electronic device, and readable storage medium
US-2021089492-A1 · Mar 25, 2021 · US
US12335339B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12335339-B2 |
| Application number | US-202118247543-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 30, 2021 |
| Priority date | Jan 19, 2021 |
| Publication date | Jun 17, 2025 |
| Grant date | Jun 17, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system of prefetching a target address is applied to a server. The system includes: an Application Programming Interface (API) module, a threshold module, a control module and a first engine module, wherein the API module, the threshold module, the control module and the first engine module are all arranged in a first server; the API module acquires a Remote Direct Memory Access (RDMA) instruction in the first server; a threshold of the first engine module is set in the threshold module, and when a size of RDMA data corresponding to the RDMA instruction exceeds the threshold, the threshold module sends a thread increasing instruction to the control module; and the control module controls, according to the thread increasing instruction sent by the threshold module, a network card of the first server to increase the number of threads of the first engine module.
Opening claim text (preview).
What is claimed is: 1. A system of prefetching a target address, applied to a server, wherein the system comprises: an Application Programming Interface (API) module, a threshold module, a control module, a first engine module, and a write function module, wherein the API module, the threshold module, the control module and the first engine module are all arranged in a first server: the API module acquires a Remote Direct Memory Access (RDMA) instruction in the first server: a threshold of the first engine module is set in the threshold module, and when a size of RDMA data corresponding to the RDMA instruction exceeds the threshold, the threshold module sends a thread increasing instruction to the control module; and the control module controls, according to the thread increasing instruction sent by the threshold module, a network card of the first server to increase a number of threads of the first engine module: wherein the threshold module identifies a storage space capacity of the first engine module and establishes the threshold, and sends the thread increasing instruction to the control module when a size of first RDMA data currently sent or received by the first engine module and a size of second RDMA data to be sent or received by the first engine module are both greater than the threshold: wherein the control module receives the thread increasing instruction and sends enabling information to the network card, and the network card increases the number of threads of the first engine module according to the enabling information and sends or receives the second RDMA data; wherein when the RDMA instruction comprises a first instruction which is a write instruction, the write function module maps the first RDMA data from a memory of the first server into a first RDMA Engine, wherein the first engine module comprises the first RDMA Engine; when the RDMA instruction also comprises a second instruction which is an instruction after the first instruction, and the second instruction indicates to receive the second RDMA data of a second server, the threshold module determines whether the size of the first RDMA data currently sent exceeds the threshold, and determines whether the size of the second RDMA data to be received does not exceed the threshold; in a case where the threshold module determines that the size of the first RDMA data exceeds the threshold and the size of the second RDMA data does not exceed the threshold, the control module does not control the network card to create a new thread, the first RDMA Engine receives the second RDMA data after completion of the sending of the first RDMA data, and the first RDMA Engine maps the second RDMA data into the memory of the first server; in a case where the threshold module determines that the size of the first RDMA data exceeds the threshold, and determines that the size of the second RDMA data to be received also exceeds the threshold, the threshold module notifies the control module, the control module controls the network card to create a RDMA Engine, and the new RDMA Engine receives the second RDMA data, and maps the second RDMA data into the memory of the first server. 2. The system according to claim 1 , wherein the first server is connected to the second server, each of the first server and the second server is provided with a memory, and the second server is provided with a second engine module; the memory of the first server maps the RDMA data to the first engine module according to the RDMA instruction; the first engine module sends the RDMA data to the second engine module; and the second engine module receives the RDMA data in segments according to a storage space capacity of the second engine module. 3. A method of prefetching a target address, comprising: address presetting: presetting address information corresponding to a Remote Direct Memory Access (RDMA) instruction according to the RDMA instruction in a server; data mapping: mapping, by a memory of the server, RDMA data corresponding to the RDMA instruction to an engine module in a network card of the server according to the RDMA instruction; size determining: when a size of first RDMA data currently sent or received by the engine module and a size of second RDMA data to be sent or received by the engine module are both greater than a storage space capacity of the engine module, sending a thread increasing instruction to the network card; and thread increasing: increasing, by the network card, a number of threads of the engine module; wherein the thread increasing comprises: sending or receiving, by the increased thread of the engine module, the second RDMA data, and when the engine module receives the second RDMA data, mapping, by the engine module, the second RDMA data to the memory of the server, wherein the control module receives the thread increasing instruction and sends enabling information to the network card, and the network card increases the number of threads of the first engine module according to the enabling information and sends or receives the second RDMA data; wherein when the RDMA instruction comprises a first instruction which is a write instruction, a write function module of a first server maps the first RDMA data from a memory of the first server into a first RDMA Engine, wherein the first engine module comprises the first RDMA Engine, and the server comprises the first server; when the RDMA instruction also comprises a second instruction which is an instruction after the first instruction, and the second instruction indicates to receive the second RDMA data of a second server, a threshold module of the first server determines whether the size of the first RDMA data currently sent exceeds the threshold set in the threshold modules, and determines whether the size of the second RDMA data to be received does not exceed the threshold; in a case where the threshold module determines that the size of the first RDMA data exceeds the threshold and the size of the second RDMA data does not exceed the threshold, a control module of the first server does not control the network card to create a new thread, the first RDMA Engine receives the second RDMA data after completion of the sending of the first RDMA data, and the first RDMA Engine maps the second RDMA data into the memory of the first server; in a case where the threshold module determines that the size of the first RDMA data exceeds the threshold, and determines that the size of the second RDMA data to be received also exceeds the threshold, the threshold module notifies the control module, the control module controls the network card to create a RDMA Engine, and the new RDMA Engine receives the second RDMA data, and maps the second RDMA data into the memory of the first server. 4. The method according to claim 3 , wherein the size determining comprises: when the size of the first RDMA data and/or the size of the second RDMA data are/is not greater than the storage space capacity of the engine module, sending or receiving, by the engine module, the second RDMA data in sequence. 5. One or more non-transitory computer-readable storage media storing computer-readable instructions, the computer-readable instructions, when executed by the one or more processors, enabling the one or more processors to perform following operations: address presetting: presetting address information corresponding to a Remote Direct Memory Access (RDMA) instruction according to the RDMA instruction in a server: data mapping: mapping, by a memory of the server, RDMA data corresponding to the RDMA instruction to an engine module in a network card of the server according to the RDMA instruction: size determining: when a size of first RDMA data currently sent or received by the engine module and a size of second RDMA data to be sent o
Distributed shared memory [DSM], e.g. remote direct memory access [RDMA] · CPC title
Information transfer, e.g. on bus (G06F13/14 takes precedence) · CPC title
Remote · CPC title
Buffers; Shared memory; Pipes · CPC title
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.