CN116436869A - Universal RDMA stream priority scheduling method, device, equipment and medium - Google Patents

Universal RDMA stream priority scheduling method, device, equipment and medium Download PDF

Info

Publication number
CN116436869A
CN116436869A CN202310457839.7A CN202310457839A CN116436869A CN 116436869 A CN116436869 A CN 116436869A CN 202310457839 A CN202310457839 A CN 202310457839A CN 116436869 A CN116436869 A CN 116436869A
Authority
CN
China
Prior art keywords
data
transmission
priority
queue
rdma
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310457839.7A
Other languages
Chinese (zh)
Inventor
李丹
汪锡峥
王帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202310457839.7A priority Critical patent/CN116436869A/en
Publication of CN116436869A publication Critical patent/CN116436869A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

The application relates to the technical field of data center networks, in particular to a general RDMA stream priority scheduling method, device, equipment and medium, wherein the method comprises the following steps: acquiring transmission data and priority of the transmission data of an upper application through an interface; determining a target position of transmission data in a sending queue in the RDMA connection according to the priority, and inserting the transmission data into the target position in the sending queue to obtain an optimal transmission sequence of the sending queue; and transmitting the data in the transmission queue according to the optimal transmission sequence. Therefore, the problems that the message transmission sequence of RDMA in the related technology only strictly obeys the sequence submitted by the application, the queue head is blocked and the like possibly are caused, the performance of the application is influenced and the like are solved.

Description

Universal RDMA stream priority scheduling method, device, equipment and medium
Technical Field
The present disclosure relates to the field of data center networks, and in particular, to a method, an apparatus, a device, and a medium for scheduling priority of a stream of general RDMA (RemoteDirect Memory Access, remote memory direct access).
Background
Data centers are an important component of cloud computing services, and today network broadband has become a major bottleneck affecting data center performance. In order to achieve higher network bandwidth, RDMA technology is being widely used in data centers. RDMA technology migrates protocol stack processing onto a hardware network card and achieves high bandwidth and low latency far superior to TCP/IP (Transmission Control Protocol/Internet Protocol ) by virtue of the excellent performance of the hardware.
RDMA can only perform transfer tasks in exactly the order of delivery of upper layer applications, which can cause cases where urgent data is blocked. In this scenario, RDMA cannot perform data transfer in the optimal order, which makes RDMA underutilized or application performance degraded.
The related art achieves efficient utilization of RDMA resources or improves application performance through scheduling, however, this typically requires extensive modification of application logic and services to a single application, or requires support by other devices such as switches, which is not conducive to large-scale deployment within a data center.
Disclosure of Invention
The application provides a general RDMA stream priority scheduling method, device, equipment and medium, which are used for solving the problems that the message transmission sequence of RDMA in the related technology can only strictly adhere to the sequence submitted by an application, the situation of blocking a queue head and the like can be caused, the performance of the application is influenced and the like.
An embodiment of a first aspect of the present application provides a general RDMA stream priority scheduling method, where RDMA provides an interface to an upper layer application facing a data center network, the method including the steps of: acquiring transmission data of an upper layer application and the priority of the transmission data through the interface; determining a target position of the transmission data in a sending queue in the RDMA connection according to the priority, and inserting the transmission data into the target position in the sending queue to obtain an optimal transmission sequence of the sending queue; and transmitting the data in the transmission queue according to the optimal transmission sequence. .
Optionally, the interface defines a field with a priority flag, and the upper layer application specifies the priority of the transmission data by defining the field.
Optionally, the inserting the transmission data into the target position in the sending queue further includes: identifying an actual capacity of the transmission data; if the actual capacity of the transmission data is larger than the preset capacity, splitting the transmission data into a plurality of data blocks, wherein the actual capacity of each data block is smaller than or equal to the preset capacity; and sequentially inserting the plurality of data blocks into the target position.
Optionally, the inserting the transmission data into the target position in the sending queue further includes: and inserting the transmission data into the target position by a method of presetting a linked list insertion element.
Optionally, the determining, according to the priority, a target location of the transmission data in a transmit queue inside the RDMA connection includes: identifying the position range of the data with the same priority in the transmission queue; and determining the target position according to the last position of the position range.
Optionally, the determining, according to the priority, a target location of the transmission data in a transmit queue inside the RDMA connection includes: if the priority of the transmission data is greater than the priority of all the data in the transmission queue, taking the first position of the transmission queue as the target position; and if the priority of the transmission data is smaller than the priority of all the data in the transmission queue, taking the last position of the transmission queue as the target position.
Embodiments of a second aspect of the present application provide a generic RDMA stream priority scheduler, the RDMA providing an interface to an upper layer application facing a data center network, comprising: the acquisition module is used for acquiring transmission data of the upper layer application and the priority of the transmission data through the interface; the determining module is used for determining a target position of the transmission data in a sending queue in the RDMA connection according to the priority, inserting the transmission data into the target position in the sending queue, and obtaining the optimal transmission sequence of the sending queue; and the transmission module is used for transmitting the data in the sending queue according to the optimal transmission sequence.
Optionally, the interface defines a field with a priority flag, and the upper layer application specifies the priority of the transmission data by defining the field.
Optionally, the determining module is further configured to: identifying an actual capacity of the transmission data; if the actual capacity of the transmission data is larger than the preset capacity, splitting the transmission data into a plurality of data blocks, wherein the actual capacity of each data block is smaller than or equal to the preset capacity; and sequentially inserting the plurality of data blocks into the target position.
Optionally, the determining module is further configured to: and inserting the transmission data into the target position by a method of presetting a linked list insertion element.
Optionally, the determining module is further configured to: identifying the position range of the data with the same priority in the transmission queue; and determining the target position according to the last position of the position range.
Optionally, the determining module is further configured to: if the priority of the transmission data is greater than the priority of all the data in the transmission queue, taking the first position of the transmission queue as the target position; and if the priority of the transmission data is smaller than the priority of all the data in the transmission queue, taking the last position of the transmission queue as the target position.
An embodiment of a third aspect of the present application provides an electronic device, including: a memory, a processor, and a computer program stored on the memory and executable on the processor, the processor executing the program to implement the general RDMA stream priority scheduling method as described in the above embodiments.
A fourth aspect of the present application provides a computer readable storage medium having stored thereon a computer program for execution by a processor for implementing a generic RDMA stream priority scheduling method as described in the above embodiments.
Therefore, the application has at least the following beneficial effects:
according to the embodiment of the application, the interface provided by RDMA to the upper layer can be modified, so that the upper layer application can transmit the priority information together with the transmission request to the driver through a new interface, and RDMA message scheduling is realized by modifying the position of the transmission request in the transmission queue; the method has the advantages that data transmission can be scheduled before being initiated by an upper layer and not really executed by a network card, all messages waiting to be initiated in a queue can be rearranged according to certain priority information, the problem that the expected data transmission sequence of an application is inconsistent with the transmission sequence of a bottom network is solved, and further the advantages of efficient utilization of RDMA resources, performance improvement of distributed application and the like are achieved. Therefore, the technical problems that the message transmission sequence of RDMA in the related technology only strictly obeys the sequence submitted by the application, and the situation of blocking the queue head and the like possibly occurs, the performance of the application is influenced and the like are solved.
Additional aspects and advantages of the application will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the application.
Drawings
The foregoing and/or additional aspects and advantages of the present application will become apparent and readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings, in which:
FIG. 1 is a flow chart of a general RDMA stream priority scheduling method provided according to an embodiment of the present application;
FIG. 2 is a schematic diagram of adding defined priority flag fields in the standard APIs of RDMA according to an embodiment of the present application;
FIG. 3 is an RDMA workflow diagram provided according to an embodiment of the present application;
FIG. 4 is a diagram of an sRDMA architecture design provided according to embodiments of the present application;
FIG. 5 is an example diagram of a generic RDMA stream priority scheduler provided according to an embodiment of the present application;
fig. 6 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
Embodiments of the present application are described in detail below, examples of which are illustrated in the accompanying drawings, wherein the same or similar reference numerals refer to the same or similar elements or elements having the same or similar functions throughout. The embodiments described below by referring to the drawings are exemplary and intended for the purpose of explaining the present application and are not to be construed as limiting the present application.
General RDMA stream priority scheduling methods, apparatus, devices, and mediums of embodiments of the present application are described below with reference to the accompanying drawings. Aiming at the problem that the message transmission sequence of the RDMA can only strictly adhere to the sequence submitted by the application, which may cause situations such as queue head blocking and further influence the performance of the application, the application provides a general RDMA stream priority scheduling method, in which all messages waiting to be initiated in a queue can be rearranged according to certain priority information, so that the message transmission sequence is closer to the optimal transmission sequence of the corresponding application, further the performance of the application is improved and the waste of RDMA network card resources is avoided. Therefore, the problems that the message transmission sequence of RDMA in the related technology only strictly obeys the sequence submitted by the application, the queue head is blocked and the like possibly are caused, the performance of the application is influenced and the like are solved.
Specifically, fig. 1 is a flow chart of a general RDMA stream priority scheduling method according to an embodiment of the present application.
As shown in fig. 1, the general RDMA stream priority scheduling method, RDMA provides an interface to an upper layer application facing a data center network, comprising the steps of:
in step S101, transmission data of an upper layer application and priority of the transmission data are acquired through an interface.
Wherein the interface defines a field with a priority flag, and the upper layer application designates the priority of the transmission data by defining the field.
It will be appreciated that embodiments of the present application may modify the interface provided by RDMA to the upper layers so that the upper layer applications may pass priority information along with the transfer request to the driver over the new interface. The present application may modify one ibv _post_send of the RDMA numerous APIs (Application Programming Interface, application program interfaces) while leaving the other APIs unchanged.
Specifically, in the ibv _post_send API redefined by the srma, the 8-bit priority flag srma_priority, that is, 256 priorities, is newly added to the original parameter wr, so that the application only needs to define the field to specify the priority of the data to be transferred. Among such RDMA scheduling schemes that allow data transfers to be scheduled before they are initiated by the upper layer and not actually performed by the network card is general-overhead RDMAscheduler (sRDMA).
As shown in fig. 2, the following is a priority flag field defined by adding to the standard API of RDMA, and the uint 8_ttrdma_priority of red mark in the figure is this field, which is composed of 0/1 bit of 8 bits. A smaller number indicates a higher priority, and thus 256 priorities are total. Wherein structibv_send_wr is contained in RDMA itself, the embodiment of the application adds only the field of srma_priority.
In step S102, a target position of the transmission data in a transmission queue inside the RDMA connection is determined according to the priority, and the transmission data is inserted into the target position in the transmission queue, so as to obtain an optimal transmission sequence of the transmission queue.
The target location is a location in the transmit queue SQ into which the transmission data needs to be inserted.
It can be appreciated that the embodiments of the present application may determine the location of the transmission data in the send queue inside the RDMA connection according to the priority of the transmission data, and insert the transmission data into the location in the send queue, thereby obtaining the optimal transmission order of the send queue. The transmission data can be inserted into the target position by presetting a linked list insertion element.
It should be noted that, the present application may continuously detect the SQ and each transfer data that is about to enter the SQ, in the original RDMA driver, each transfer data request is placed at the end of the SQ, and the embodiments of the present application may determine, according to the priority information delivered by the application, to which location of the SQ this transfer data request should be inserted.
In this embodiment of the present application, inserting the transmission data into the target location in the transmit queue further includes: identifying an actual capacity of the transmitted data; if the actual capacity of the transmission data is larger than the preset capacity, dividing the transmission data into a plurality of data blocks, wherein the actual capacity of each data block is smaller than or equal to the preset capacity; a plurality of data blocks are inserted into the target location in sequence.
The preset capacity can be set according to specific conditions, can float between KB and GB, is generally set to be 1MB, and when the actual capacity is larger than the preset capacity, the transmission data is larger.
It will be appreciated that the embodiments of the present application need to detect the actual capacity of the transmitted data in order to prevent the occurrence of congestion in the queue caused by excessive data transmission. When detecting that the actual capacity of a certain transmission data is larger than the preset capacity, splitting the transmission data into a plurality of small data blocks to jointly complete the data transmission, and transmitting all the transmission data to a sending queue SQ after ensuring that the capacity of all the transmission data does not exceed the preset capacity.
In an embodiment of the present application, determining a target location of transfer data in a send queue inside an RDMA connection according to a priority includes: identifying the position range of the data with the same priority in the transmission queue; the target location is determined from the last location of the range of locations.
It can be appreciated that the embodiments of the present application need to identify the location range in which the data with the same priority is required to be transmitted in the transmit queue, that is, to place the data with the same priority in one location range, and to place the data to be transmitted in the last location in the location range.
In an embodiment of the present application, determining a target location of transfer data in a send queue inside an RDMA connection according to a priority includes: if the priority of the transmission data is greater than the priority of all the data in the transmission queue, the first position of the transmission queue is used as a target position; and if the priority of the transmission data is smaller than the priority of all the data in the transmission queue, taking the last position of the transmission queue as a target position.
It can be appreciated that, in the embodiment of the present application, the target location of the sending queue SQ inside the RDMA connection is determined by determining the priority of the required transmission data, if the priority of the transmission data is greater than the priority of all the data in the sending queue SQ, the transmission data is placed in the first location of the sending queue SQ, and if the priority of the transmission data is less than the priority of all the data in the sending queue SQ, the transmission data is placed in the last location of the sending queue SQ.
In step S103, the data in the transmission queue is transmitted in the optimal transmission order.
It can be appreciated that, since the network card performs data transmission completely according to the arrangement order of the transmission requests in the transmission queue SQ, the present application can implement RDMA message scheduling by modifying the location of the transmission requests in the transmission queue SQ.
It should be noted that, as shown in fig. 3, in the workflow chart of RDMA, for the data center network, the application deploys srma in an internal increment of RDMA driver, and its architecture chart is shown in fig. 4, and RDMA message transmission is scheduled in a single connection, and all applications calling sRDMAAPI can use the scheduling function of RDMA.
Experiments are carried out on the topology that 10 servers are directly connected through 1 switch, and the TensoFlow-GPU training VGG-19 model based on sRDMA is found to be 54% higher than the training speed based on RDMA.
According to the general RDMA stream priority scheduling method provided by the embodiment of the application, the interface provided by RDMA to the upper layer can be modified, so that the upper layer application can transmit priority information together with a transmission request to a driver program through a new interface, and RDMA message scheduling is realized by modifying the position of the transmission request in a sending queue; the method can enable data transmission to be scheduled before being initiated by an upper layer and not really executed by a network card, enable all messages waiting to be initiated in a queue to be rearranged according to certain priority information, solve the problem that the expected data transmission sequence of an application is inconsistent with the transmission sequence of a bottom network, and further achieve efficient utilization of RDMA resources and performance improvement of distributed applications.
Next, a general RDMA stream priority scheduling apparatus according to an embodiment of the present application will be described with reference to the accompanying drawings.
FIG. 5 is a block diagram of a generic RDMA stream priority scheduling apparatus according to an embodiment of the present application.
As shown in fig. 5, the generic RDMA stream priority scheduler 10, RDMA, provides an interface to upper layer applications facing a data center network, comprising: an acquisition module 100, a determination module 200 and a transmission module 300.
The acquiring module 10 is configured to acquire transmission data of an upper layer application and a priority of the transmission data through an interface; the determining module 200 is configured to determine a target position of the transmission data in a sending queue inside the RDMA connection according to the priority, and insert the transmission data into the target position in the sending queue, so as to obtain an optimal transmission sequence of the sending queue; the transmission module 300 is configured to transmit the data in the transmit queue according to the optimal transmission order.
In the embodiment of the application, the interface defines a field with a priority flag, and the upper layer application designates the priority of transmitting data by defining the field.
In the embodiment of the present application, the determining module 200 is further configured to: identifying an actual capacity of the transmitted data; if the actual capacity of the transmission data is larger than the preset capacity, dividing the transmission data into a plurality of data blocks, wherein the actual capacity of each data block is smaller than or equal to the preset capacity; a plurality of data blocks are inserted into the target location in sequence.
In the embodiment of the present application, the determining module 200 is further configured to: and inserting the transmission data into the target position by a method of presetting linked list insertion elements.
In the embodiment of the present application, the determining module 200 is further configured to: identifying the position range of the data with the same priority in the transmission queue; the target location is determined from the last location of the range of locations.
In the embodiment of the present application, the determining module 200 is further configured to: if the priority of the transmission data is greater than the priority of all the data in the transmission queue, the first position of the transmission queue is used as a target position; and if the priority of the transmission data is smaller than the priority of all the data in the transmission queue, taking the last position of the transmission queue as a target position.
It should be noted that the foregoing explanation of the general RDMA stream priority scheduling method embodiment is also applicable to the general RDMA stream priority scheduling apparatus of this embodiment, and will not be repeated herein.
According to the general RDMA stream priority scheduling device provided by the embodiment of the application, the interface provided by RDMA to the upper layer can be modified, so that the upper layer application can transmit priority information together with a transmission request to a driver through a new interface, and RDMA message scheduling is realized by modifying the position of the transmission request in a sending queue; the method can enable data transmission to be scheduled before being initiated by an upper layer and not really executed by a network card, enable all messages waiting to be initiated in a queue to be rearranged according to certain priority information, solve the problem that the expected data transmission sequence of an application is inconsistent with the transmission sequence of a bottom network, and further achieve efficient utilization of RDMA resources and performance improvement of distributed applications.
Fig. 6 is a schematic structural diagram of an electronic device according to an embodiment of the present application. The electronic device may include:
a memory 601, a processor 602, and a computer program stored on the memory 601 and executable on the processor 602.
The processor 602, when executing the program, implements the general RDMA stream level priority scheduling method provided in the above embodiments.
Further, the electronic device further includes:
a communication interface 603 for communication between the memory 601 and the processor 602.
A memory 601 for storing a computer program executable on the processor 602.
The memory 601 may include a high-speed RAM (Random Access Memory ) memory, and may also include a nonvolatile memory, such as at least one disk memory.
If the memory 601, the processor 602, and the communication interface 603 are implemented independently, the communication interface 603, the memory 601, and the processor 602 may be connected to each other through a bus and perform communication with each other. The bus may be an ISA (Industry Standard Architecture ) bus, a PCI (Peripheral Component, external device interconnect) bus, or EISA (Extended Industry Standard Architecture ) bus, among others. The buses may be divided into address buses, data buses, control buses, etc. For ease of illustration, only one thick line is shown in fig. 6, but not only one bus or one type of bus.
Alternatively, in a specific implementation, if the memory 601, the processor 602, and the communication interface 603 are integrated on a chip, the memory 601, the processor 602, and the communication interface 603 may perform communication with each other through internal interfaces.
The processor 602 may be a CPU (Central Processing Unit ) or ASIC (Application Specific Integrated Circuit, application specific integrated circuit) or one or more integrated circuits configured to implement embodiments of the present application.
Embodiments of the present application also provide a computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements a generic RDMA stream priority scheduling method as above.
In the description of the present specification, a description referring to terms "one embodiment," "some embodiments," "examples," "specific examples," or "some examples," etc., means that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the present application. In this specification, schematic representations of the above terms are not necessarily directed to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or N embodiments or examples. Furthermore, the different embodiments or examples described in this specification and the features of the different embodiments or examples may be combined and combined by those skilled in the art without contradiction.
Furthermore, the terms "first," "second," and the like, are used for descriptive purposes only and are not to be construed as indicating or implying a relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defining "a first" or "a second" may explicitly or implicitly include at least one such feature. In the description of the present application, the meaning of "N" is at least two, such as two, three, etc., unless explicitly defined otherwise.
Any process or method descriptions in flow charts or otherwise described herein may be understood as representing modules, segments, or portions of code which include one or more N executable instructions for implementing specific logical functions or steps of the process, and further implementations are included within the scope of the preferred embodiment of the present application in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the embodiments of the present application.
It is to be understood that portions of the present application may be implemented in hardware, software, firmware, or a combination thereof. In the above-described embodiments, the N steps or methods may be implemented in software or firmware stored in a memory and executed by a suitable instruction execution system. As with the other embodiments, if implemented in hardware, may be implemented using any one or combination of the following techniques, as is well known in the art: discrete logic circuits having logic gates for implementing logic functions on data signals, application specific integrated circuits having suitable combinational logic gates, programmable gate arrays, field programmable gate arrays, and the like.
Those of ordinary skill in the art will appreciate that all or a portion of the steps carried out in the method of the above-described embodiments may be implemented by a program to instruct related hardware, where the program may be stored in a computer readable storage medium, and where the program, when executed, includes one or a combination of the steps of the method embodiments.
Although embodiments of the present application have been shown and described above, it will be understood that the above embodiments are illustrative and not to be construed as limiting the application, and that variations, modifications, alternatives, and variations may be made to the above embodiments by one of ordinary skill in the art within the scope of the application.

Claims (14)

1. A method for universal RDMA stream priority scheduling, wherein remote memory direct access RDMA provides an interface to an upper layer application facing a data center network, wherein the method comprises the steps of:
acquiring transmission data of an upper layer application and the priority of the transmission data through the interface;
determining a target position of the transmission data in a sending queue in the RDMA connection according to the priority, and inserting the transmission data into the target position in the sending queue to obtain an optimal transmission sequence of the sending queue;
and transmitting the data in the transmission queue according to the optimal transmission sequence.
2. The generic RDMA stream priority scheduling method as recited in claim 1, wherein said interface defines a field with a priority flag, said upper layer application specifying the priority of said transfer data by defining said field.
3. The general RDMA stream priority scheduling method as recited in claim 1, wherein said inserting said transmission data into a destination location in said send queue further comprises:
identifying an actual capacity of the transmission data;
if the actual capacity of the transmission data is larger than the preset capacity, splitting the transmission data into a plurality of data blocks, wherein the actual capacity of each data block is smaller than or equal to the preset capacity;
and sequentially inserting the plurality of data blocks into the target position.
4. The method of general RDMA stream priority scheduling as recited in claim 1 or 3, wherein said inserting the transmission data into the destination location in the transmit queue further comprises:
and inserting the transmission data into the target position by a method of presetting a linked list insertion element.
5. The method of claim 1, wherein determining a target location of the transfer data in a send queue internal to the RDMA connection based on the priority comprises:
identifying the position range of the data with the same priority in the transmission queue;
and determining the target position according to the last position of the position range.
6. The method of claim 1 or 5, wherein determining a target location of the transfer data in a send queue internal to the RDMA connection based on the priority comprises:
if the priority of the transmission data is greater than the priority of all the data in the transmission queue, taking the first position of the transmission queue as the target position;
and if the priority of the transmission data is smaller than the priority of all the data in the transmission queue, taking the last position of the transmission queue as the target position.
7. A universal RDMA stream priority scheduling apparatus that interfaces remote memory direct access RDMA to upper layer applications facing a data center network, wherein the apparatus comprises:
the acquisition module is used for acquiring transmission data of the upper layer application and the priority of the transmission data through the interface;
the determining module is used for determining a target position of the transmission data in a sending queue in the RDMA connection according to the priority, inserting the transmission data into the target position in the sending queue, and obtaining the optimal transmission sequence of the sending queue;
and the transmission module is used for transmitting the data in the sending queue according to the optimal transmission sequence.
8. The generic RDMA stream priority scheduling apparatus as recited in claim 7, wherein said interface defines a field with a priority flag, said upper layer application specifying the priority of said transfer data by defining said field.
9. The generic RDMA stream priority scheduling apparatus as recited in claim 7, wherein the determining module is further to:
identifying an actual capacity of the transmission data;
if the actual capacity of the transmission data is larger than the preset capacity, splitting the transmission data into a plurality of data blocks, wherein the actual capacity of each data block is smaller than or equal to the preset capacity;
and sequentially inserting the plurality of data blocks into the target position.
10. The general RDMA stream priority scheduling apparatus of claim 7 or 9, wherein the determination module is further to:
and inserting the transmission data into the target position by a method of presetting a linked list insertion element.
11. The generic RDMA stream priority scheduling apparatus as recited in claim 7, wherein the determining module is further to:
identifying the position range of the data with the same priority in the transmission queue;
and determining the target position according to the last position of the position range.
12. The general RDMA stream priority scheduling apparatus of claim 7 or 11, wherein the determination module is further to:
if the priority of the transmission data is greater than the priority of all the data in the transmission queue, taking the first position of the transmission queue as the target position;
and if the priority of the transmission data is smaller than the priority of all the data in the transmission queue, taking the last position of the transmission queue as the target position.
13. An electronic device, comprising: a memory, a processor, and a computer program stored on the memory and executable on the processor, the processor executing the program to implement the generic RDMA stream priority scheduling method of any of claims 1-6.
14. A computer readable storage medium having stored thereon a computer program, the program being executable by a processor for implementing the generic RDMA stream priority scheduling method of any of claims 1-6.
CN202310457839.7A 2023-04-25 2023-04-25 Universal RDMA stream priority scheduling method, device, equipment and medium Pending CN116436869A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310457839.7A CN116436869A (en) 2023-04-25 2023-04-25 Universal RDMA stream priority scheduling method, device, equipment and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310457839.7A CN116436869A (en) 2023-04-25 2023-04-25 Universal RDMA stream priority scheduling method, device, equipment and medium

Publications (1)

Publication Number Publication Date
CN116436869A true CN116436869A (en) 2023-07-14

Family

ID=87085278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310457839.7A Pending CN116436869A (en) 2023-04-25 2023-04-25 Universal RDMA stream priority scheduling method, device, equipment and medium

Country Status (1)

Country Link
CN (1) CN116436869A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110022269A (en) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 Processing method of communication data, device and equipment
CN114077561A (en) * 2020-08-21 2022-02-22 三星电子株式会社 Method and system for transmitting data packets in a remote direct memory access network
CN115695578A (en) * 2022-09-20 2023-02-03 北京邮电大学 Method, system and device for scheduling TCP (transmission control protocol) and RDMA (remote direct memory Access) mixed streams of data center network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110022269A (en) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 Processing method of communication data, device and equipment
CN114077561A (en) * 2020-08-21 2022-02-22 三星电子株式会社 Method and system for transmitting data packets in a remote direct memory access network
CN115695578A (en) * 2022-09-20 2023-02-03 北京邮电大学 Method, system and device for scheduling TCP (transmission control protocol) and RDMA (remote direct memory Access) mixed streams of data center network

Similar Documents

Publication Publication Date Title
KR100326864B1 (en) Network communication method and network system
US6141705A (en) System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
US6757746B2 (en) Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US7158964B2 (en) Queue management
US6697876B1 (en) Distributed kernel operating system
US7937499B1 (en) Methods and apparatus for dynamically switching between polling and interrupt mode for a ring buffer of a network interface card
US20090213732A1 (en) Preserving packet order when migrating network flows between cores
CN101616083A (en) A kind of message forwarding method and device
CN106571978B (en) Data packet capturing method and device
US20040047361A1 (en) Method and system for TCP/IP using generic buffers for non-posting TCP applications
WO2021057666A1 (en) Transmission control method, network management server, base station and storage medium
US20050097226A1 (en) Methods and apparatus for dynamically switching between polling and interrupt to handle network traffic
EP1543658B1 (en) One shot rdma having a 2-bit state
CN105141603A (en) Communication data transmission method and system
US7209489B1 (en) Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing
CN116204487A (en) Remote data access method and device
US8473579B2 (en) Data reception management apparatus, systems, and methods
CN116436869A (en) Universal RDMA stream priority scheduling method, device, equipment and medium
JP2016045510A (en) Information processing system, information processing apparatus, method of controlling information processing system, and program for controlling information processing apparatus
CN109639555B (en) Link layer message generation method, link layer message generation device and terminal equipment
CN116471242A (en) RDMA-based transmitting end, RDMA-based receiving end, data transmission system and data transmission method
CN110895517B (en) Method, equipment and system for transmitting data based on FPGA
WO2018127013A1 (en) Method and device for concurrent transmission of stream data
US7636313B2 (en) Use of internal buffer to reduce acknowledgement related delays in acknowledgement-based reliable communication protocols
CN114500544A (en) Method, system, equipment and medium for load balancing among nodes

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination