CN116436869A - Universal RDMA stream priority scheduling method, device, equipment and medium - Google Patents
Universal RDMA stream priority scheduling method, device, equipment and medium Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000005540 biological transmission Effects 0.000 claims abstract description 174
- 238000012546 transfer Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling 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
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.
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)
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 |
-
2023
- 2023-04-25 CN CN202310457839.7A patent/CN116436869A/en active Pending
Patent Citations (3)
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 |