WO2024103891A1 - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
WO2024103891A1
WO2024103891A1 PCT/CN2023/114839 CN2023114839W WO2024103891A1 WO 2024103891 A1 WO2024103891 A1 WO 2024103891A1 CN 2023114839 W CN2023114839 W CN 2023114839W WO 2024103891 A1 WO2024103891 A1 WO 2024103891A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
node
order
data transmission
transmission operation
Prior art date
Application number
PCT/CN2023/114839
Other languages
English (en)
French (fr)
Inventor
韩兆皎
刘小蓬
张兴平
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2024103891A1 publication Critical patent/WO2024103891A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Definitions

  • the present application relates to the field of communications, and in particular to a data processing method and device.
  • a transmission network which includes, for example, a network card and a communication link.
  • the transmission network generally supports queue-based point-to-point communication, that is, when two nodes need to exchange data, they only need to submit a work request (WR) to the work queue (WQ) of the network card to instruct the network card to perform the data transmission operation indicated by WR.
  • WR work request
  • WQ work queue
  • Some business scenarios require the transport network to process multiple WRs in a WQ in order, that is, to process the WRs submitted earlier first and then the WRs submitted later. In this way, the transport network needs to execute multiple WRs in a mutually exclusive manner, which is not conducive to fully utilizing the computing resources and network resources of the transport network and is difficult to improve the processing efficiency of WRs.
  • the present application provides a data processing method and device for fully utilizing computing resources and network resources of a transmission network while ensuring business needs, thereby improving the processing efficiency of WR.
  • the present application provides a data processing method, which is applied to a communication system, wherein the communication system includes a first node, a second node and a transmission network, and the transmission network is used to forward data between the first node and the second node.
  • the method includes: the transmission network sequentially obtains a first work request WR and a second WR submitted by the first node, the first WR and the second WR point to a first message and a second message respectively, the first message indicates that a first data transmission operation is performed between the first node and the second node, the second message indicates that a second data transmission operation is performed between the first node and the second node, and the second WR carries a target sending identifier, and the target sending identifier indicates the order in which the transmission network processes the first WR and the second WR; the transmission network processes the first WR and the second WR in the order indicated by the target sending identifier.
  • the transmission network can identify the order preservation level indicated by the target sending identifier (i.e., the order between processing the current WR and the previous WR), it is beneficial for users (such as the first node) to add a sending identifier representing the corresponding order preservation level to the WR according to their own business requirements for the order preservation level. This is conducive to optimizing the processing solution for the WR while taking into account business needs and WR processing efficiency.
  • the transmission network processes the first WR and the second WR in the order indicated by the target sending identifier
  • the transmission network performs the first data transmission operation and the second data transmission operation in the first order
  • the transmission network reports the completion status of the first data transmission operation and the completion status of the second data transmission operation in the second order.
  • the first order is the order indicated by the target sending identifier
  • the second order is the order indicated by the target sending identifier
  • the present application does not limit the first order and the second order to be the same.
  • the first order and the second order indicated by the target transmission identifier may be the same or different.
  • the target sending identifier can act on a single or multiple sub-processes of controlling the processing of WR, which is conducive to taking into account both business needs and the processing efficiency of WR at a finer granularity and further optimizing the processing solution for WR.
  • the transmission network includes a first network card connected to the first node and a second network card connected to the second node.
  • the transmission network can not only support customization of the order-preserving level in the communication between different components in a single host, but also support customization of the order-preserving level in the communication between different hosts.
  • the first sequence includes a request end execution sequence and a response end execution sequence.
  • the first network card sends a first message and a second message to the second network card according to the request end execution sequence, the first message carries the first message, and the second message carries the second message; the second network card executes the first data transmission operation and the second data transmission operation according to the response end execution sequence.
  • the execution order of the request end is the order indicated by the target sending identifier
  • the execution order of the responder end is the order indicated by the target receiving identifier encapsulated in the second message by the first network card according to the target sending identifier.
  • the execution order of the responder end is the order indicated by the target receiving identifier
  • the execution order of the request end is the order indicated by the target sending identifier
  • the two can be It can be the same or different.
  • the target receiving identifier is encapsulated in the second message by the first network card according to the target sending identifier, it is equivalent to the target sending identifier indicating the order in which the second network card performs the data transmission operation.
  • the target sending identifier can act on the process of the request end and/or the responding end performing the data transmission operation, which is conducive to taking into account the business needs and the processing efficiency of WR at a finer granularity and further optimizing the processing solution for WR.
  • the second sequence includes a request end completion sequence and a response end completion sequence.
  • the transmission network reports the completion status of the first data transmission operation and the completion status of the second data transmission operation according to the second sequence
  • the second network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the second node according to the response end completion sequence
  • the first network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the first node according to the request end completion sequence.
  • the request end completion order is the order indicated by the target sending identifier
  • the response end completion order is the order indicated by the target receiving identifier encapsulated by the first network card in the second message according to the target sending identifier.
  • the response end completion order is the order indicated by the target receiving identifier
  • the request end completion order is the order indicated by the target sending identifier
  • the target receiving identifier is encapsulated in the second message by the first network card according to the target sending identifier, it is equivalent to the order in which the target sending identifier indicates the second network card to report the completion status.
  • the target sending identifier can act on the request end and/or the response end to perform the process of reporting the completion status, which is conducive to taking into account the business needs and the processing efficiency of WR at a finer granularity and further optimizing the processing solution for WR.
  • the present application provides a data processing method, which is applied to a communication system, wherein the communication system includes a first node, a second node and a transmission network, and the transmission network is used to forward data between the first node and the second node.
  • the method includes: the first node submits a first work request WR and a second WR to the transmission network in sequence, the first WR and the second WR point to a first message and a second message respectively, the first message indicates that a first data transmission operation is performed between the first node and the second node, the second message indicates that a second data transmission operation is performed between the first node and the second node, and the second WR carries a target sending identifier, and the target sending identifier indicates the order in which the transmission network processes the first WR and the second WR.
  • the transmission network performs the first data transmission operation and the second data transmission operation in a first order, and the transmission network reports the completion status of the first data transmission operation and the completion status of the second data transmission operation in a second order.
  • the target sending identifier indicates the first order and/or the second order.
  • the transmission network includes a first network card connected to the first node and a second network card connected to the second node.
  • the first sequence includes a request end execution sequence and a response end execution sequence.
  • the first network card sends a first message and a second message to the second network card according to the request end execution sequence, the first message carries the first message, and the second message carries the second message; the second network card executes the first data transmission operation and the second data transmission operation according to the response end execution sequence.
  • the target sending identifier indicates the execution order of the requesting end, and/or instructs the first network card to encapsulate a target receiving identifier into a second message carrying the second message, and the target receiving identifier indicates the execution order of the receiving end.
  • the second sequence includes a request end completion sequence and a response end completion sequence.
  • the second network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the second node in accordance with the response end completion sequence
  • the first network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the first node in accordance with the request end completion sequence.
  • the target sending identifier indicates the execution order of the requesting end, and/or instructs the first network card to encapsulate a target receiving identifier in a second message carrying a second message, and the target receiving identifier indicates the completion order of the receiving end.
  • the present application provides a data processing method, which is applied to a communication system, wherein the communication system includes a first node, a second node and a transmission network, wherein the transmission network is used to forward data between the first node and the second node, and the method includes: the first node submits a first work request WR and a second WR to the transmission network in sequence, the first WR and the second WR point to a first message and a second message respectively, the first message indicates that a first data transmission operation is performed between the first node and the second node, the second message indicates that a second data transmission operation is performed between the first node and the second node, and the second WR carries a target transmission.
  • the target sending identifier indicates the order in which the transmission network processes the first WR and the second WR; the transmission network processes the first WR and the second WR in the order indicated by the target sending identifier.
  • the transmission network performs the first data transmission operation and the second data transmission operation in a first order, and the transmission network reports the completion status of the first data transmission operation and the completion status of the second data transmission operation in a second order.
  • the first order is the order indicated by the target sending identifier
  • the second order is the order indicated by the target sending identifier
  • the present application does not limit the first order and the second order to be the same.
  • the first order and the second order indicated by the target transmission identifier may be the same or different.
  • the transmission network includes a first network card connected to the first node and a second network card connected to the second node.
  • the first sequence includes a request end execution sequence and a response end execution sequence.
  • the first network card sends a first message and a second message to the second network card according to the request end execution sequence, the first message carries the first message, and the second message carries the second message; the second network card executes the first data transmission operation and the second data transmission operation according to the response end execution sequence.
  • the execution order of the request end is the order indicated by the target sending identifier
  • the execution order of the response end is the order indicated by the target receiving identifier encapsulated by the first network card in the second message according to the target sending identifier.
  • the execution order of the response end is the order indicated by the target receiving identifier
  • the execution order of the request end is the order indicated by the target sending identifier
  • the second sequence includes a request end completion sequence and a response end completion sequence.
  • the transmission network reports the completion status of the first data transmission operation and the completion status of the second data transmission operation according to the second sequence
  • the second network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the second node according to the response end completion sequence
  • the first network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the first node according to the request end completion sequence.
  • the request end completion order is the order indicated by the target sending identifier
  • the response end completion order is the order indicated by the target receiving identifier encapsulated by the first network card in the second message according to the target sending identifier.
  • the response end completion order is the order indicated by the target receiving identifier
  • the request end completion order is the order indicated by the target sending identifier
  • the present application provides a data processing method, which is applied to a communication system, wherein the communication system includes a first node, a second node and a transmission network, wherein the transmission network is used to forward data between the first node and the second node, and the transmission network includes a first network card connected to the first node and a second network card connected to the second node.
  • the method includes: the first network card sequentially obtains a first work request WR and a second WR submitted by the first node, the first WR and the second WR point to a first message and a second message respectively, the first message indicates that a first data transmission operation is performed between the first node and the second node, the second message indicates that a second data transmission operation is performed between the first node and the second node, and the second WR carries a target sending identifier, and the target sending identifier indicates the order in which the transmission network processes the first WR and the second WR; the first network card processes the first WR and the second WR in the order indicated by the target sending identifier.
  • the first network card processes the first WR and the second WR in the order indicated by the target sending identifier, including: the first network card sends a first message and a second message to the second network card in the order indicated by the target sending identifier, the first message carries the first message, and the second message carries the second message, and/or the first network card carries a target receiving identifier in the second message, and the target receiving identifier indicates the order in which the second network card performs the first data transmission operation and the second data transmission operation.
  • the first network card processes the first WR and the second WR in the order indicated by the target sending identifier, including: the first network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the first node in the order indicated by the target sending identifier, and/or the first network card carries a target receiving identifier in the second message, and the target receiving identifier indicates that the second network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the second node in the order indicated by the target sending identifier.
  • the present application provides a data processing method, which is applied to a communication system, wherein the communication system includes a first node, a second node and a transmission network, wherein the transmission network is used to forward data between the first node and the second node, and the transmission network includes a first network card and a second network card.
  • the method includes: the second network card respectively receives a first message and a second message sent by the first network card, the first message carries a first message pointed to by a first work request WR, and the second message carries a second message pointed to by a second WR, the first WR and the second WR are submitted sequentially by the first node, the first message indicates that a first data transmission operation is performed between the first node and the second node, the second message indicates that a second data transmission operation is performed between the first node and the second node, the second message carries a target reception identifier, and the target reception identifier indicates the order in which the transmission network processes the first WR and the second WR; the second network card processes the first message and the second message according to the order indicated by the target reception identifier.
  • the second network card performs the first data transmission operation and the second data transmission operation in the order indicated by the target reception identifier, and/or the second network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the second node in the order indicated by the target reception identifier.
  • the present application provides a data processing device, comprising: an acquisition module, used to sequentially acquire a first work request WR and a second WR submitted by a first node, the first WR and the second WR respectively pointing to a first message and a second message, the first message indicating that a first data transmission operation is performed between the first node and the second node, the second message indicating that a second data transmission operation is performed between the first node and the second node, and the second WR carries a target sending identifier, the target sending identifier indicates the order in which the transmission network processes the first WR and the second WR; a processing module, used to process the first WR and the second WR in the order indicated by the target sending identifier.
  • the processing module is specifically used to: execute the first data transmission operation and the second data transmission operation in a first order; report the completion status of the first data transmission operation and the completion status of the second data transmission operation in a second order; wherein, the first order is the order indicated by the target sending identifier, and/or the second order is the order indicated by the target sending identifier.
  • the processing device includes a first network card connected to the first node and a second network card connected to the second node.
  • the first sequence includes a request end execution sequence and a response end execution sequence.
  • the first network card is used to send a first message and a second message to the second network card in the execution order of the request end, the first message carries the first message, and the second message carries the second message; the second network card is used to perform the first data transmission operation and the second data transmission operation in the execution order of the response end.
  • the second sequence includes a request end completion sequence and a response end completion sequence
  • the second network card is used to report the completion status of the first data transmission operation and the completion status of the second data transmission operation to the second node according to the response end completion sequence
  • the first network card is used to report the completion status of the first data transmission operation and the completion status of the second data transmission operation to the first node according to the request end completion sequence
  • the request end completion sequence is the sequence indicated by the target sending identifier
  • the response end completion sequence is the sequence indicated by the target receiving identifier encapsulated in the second message by the first network card according to the target sending identifier.
  • the present application provides a data processing device, comprising: an interaction module, used to submit a first work request WR and a second WR to a transmission network in sequence, the first WR and the second WR point to a first message and a second message respectively, the first message indicates that a first data transmission operation is performed between the data processing device and the second node, the second message indicates that a second data transmission operation is performed between the data processing device and the second node, the second WR carries a target sending identifier, and the target sending identifier indicates the order in which the transmission network processes the first WR and the second WR.
  • the transmission network performs the first data transmission operation and the second data transmission operation in a first order, and the transmission network reports the completion status of the first data transmission operation and the completion status of the second data transmission operation in a second order.
  • the target sending identifier indicates the first order and/or the second order.
  • the transmission network includes a first network card connected to the first node and a second network card connected to the second node.
  • the first sequence includes a request end execution sequence and a response end execution sequence.
  • the transmission network executes the first data transmission operation and the second data transmission operation according to the first sequence
  • the first network card sends data to the second network card according to the request end execution sequence.
  • a first message and a second message are sent, wherein the first message carries the first message, and the second message carries the second message; and the second network card performs the first data transmission operation and the second data transmission operation according to the execution order of the responding end.
  • the target sending identifier indicates the execution order of the requesting end, and/or instructs the first network card to encapsulate a target receiving identifier into a second message carrying the second message, and the target receiving identifier indicates the execution order of the receiving end.
  • the second sequence includes a request end completion sequence and a response end completion sequence.
  • the transmission network reports the completion status of the first data transmission operation and the completion status of the second data transmission operation according to the second sequence
  • the second network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the second node according to the response end completion sequence
  • the first network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the first node according to the request end completion sequence.
  • the target sending identifier indicates the execution order of the requesting end, and/or instructs the first network card to encapsulate a target receiving identifier in a second message carrying a second message, and the target receiving identifier indicates the completion order of the receiving end.
  • the present application provides a data processing device, which is arranged at a first node, and the data processing device includes: an acquisition module, used to sequentially acquire a first work request WR and a second WR submitted by the first node, the first WR and the second WR respectively pointing to a first message and a second message, the first message indicating that a first data transmission operation is performed between the first node and the second node, the second message indicating that a second data transmission operation is performed between the first node and the second node, and the second WR carries a target sending identifier, the target sending identifier indicates the order in which the transmission network processes the first WR and the second WR, and the transmission network includes the data processing device and a second network card arranged at the second node; a processing module, used to process the first WR and the second WR in the order indicated by the target sending identifier.
  • the processing module is used to: send a first message and a second message to the second network card in an order indicated by the target sending identifier, the first message carrying the first message, the second message carrying the second message, and/or the first network card carries a target receiving identifier in the second message, the target receiving identifier indicating the order in which the second network card executes the first data transmission operation and the second data transmission operation.
  • the processing module is used to report the completion status of the first data transmission operation and the completion status of the second data transmission operation to the first node in the order indicated by the target sending identifier, and/or carry a target receiving identifier in the second message, and the target receiving identifier indicates that the second network card reports the completion status of the first data transmission operation and the completion status of the second data transmission operation to the second node in the order indicated by the target sending identifier.
  • the present application provides a data processing device, which is arranged at a second node, and the data processing device includes: a receiving module, used to respectively receive a first message and a second message sent by a first network card, the first network card is arranged at the first node, the first message carries a first message pointed to by a first work request WR, and the second message carries a second message pointed to by a second WR, the first WR and the second WR are submitted sequentially by the first node, the first message indicates that a first data transmission operation is performed between the first node and the second node, the second message indicates that a second data transmission operation is performed between the first node and the second node, the second message carries a target reception identifier, and the target reception identifier indicates that the data processing device processes the first WR and the second WR; a processing module, used to process the first message and the second message according to the order indicated by the target reception identifier.
  • the processing module is used to: execute the first data transmission operation and the second data transmission operation in the order indicated by the target reception identifier, and/or report the completion status of the first data transmission operation and the completion status of the second data transmission operation to the second node in the order indicated by the target reception identifier.
  • the present application provides a communication system, comprising the data processing device as described in the sixth aspect and the data processing device as described in the seventh aspect, or comprising the data processing device as described in the eighth aspect and the data processing device as described in the ninth aspect.
  • the present application provides a computing device comprising a memory and a processor, wherein the memory stores code, and the processor is configured to execute the code.
  • the computing device can execute the method described in any one of the first to fifth aspects or any possible implementation of any one of the aspects.
  • the present application provides a computer storage medium, which stores a computer program.
  • the program When the program is executed by a computer, the computer can perform the method described in any one of the first to fifth aspects or any possible implementation of any one of the aspects.
  • FIG1 schematically shows a possible structure of a communication system
  • FIG2 schematically shows a possible structure of a computing device
  • FIG3 schematically shows a possible process of host 1 sending a message to host 2;
  • FIG4 shows a possible schematic diagram of a data processing method
  • FIG5 schematically shows another possible process of the data processing method of the present application
  • FIG6 schematically shows another possible process of the data processing method of the present application.
  • FIG7 schematically shows a possible processing flow of the transmission network of the present application for multiple WRs
  • FIG8 schematically shows another possible process of the data processing method of the present application.
  • FIG9 schematically shows the sub-processing flow that needs to be preserved as indicated by each preservation identifier of the present application
  • FIG10 schematically shows the process of host 1 submitting a WR
  • FIG11 schematically shows a possible form of a configuration interface for configuring preset rules
  • FIG12 schematically shows another possible process of the data processing method of the present application.
  • Fig. 1 schematically shows a communication system.
  • the communication system includes a host 1, a host 2 and a transmission network.
  • the transmission network is used to transmit data from the host 1 to the host 2, or to transmit data from the host 2 to the host 1.
  • the transmission network can forward data between host 1 and host 2 based on a network transmission protocol.
  • the transmission network includes a network card or network adapter (NIC) 1 provided on host 1 and a network card or NIC 2 provided on host 2.
  • NIC 1 network card or network adapter
  • a communication link is established between NIC 1 and NIC 2, and NIC 1 sends the data of host 1 to NIC 2 through the communication link, and NIC 2 sends it to host 2, or NIC 2 sends the data of host 2 to NIC 1 through the communication link, and NIC 1 sends it to host 1.
  • the communication link can be a wired link or a wireless link, and optionally, the communication link can include one or more network devices, and the one or more network devices can include at least one of a hub, a gateway, and a router.
  • FIG1 schematically shows two network devices (network device 1 and network device 2, respectively) in the communication link.
  • the communication system shown in FIG. 1 may include more settings.
  • the communication system may include more hosts, and host 1 and host 2 may be any two hosts in the communication system.
  • the devices shown in Figure 1 may be physical devices or virtual devices running on physical devices.
  • host 1 and host 2 may be physical devices or virtual devices running on physical devices
  • NIC 1 and NIC 2 may be physical devices or virtual devices running on physical devices.
  • the above-mentioned physical device may be a computing device, and FIG2 schematically shows a possible structure of the computing device.
  • the computing device may include: a processor, a communication interface, and a memory, and the processor, the communication interface, and the memory are interconnected via an internal bus.
  • the processor may be composed of one or more general-purpose processors, such as a central processing unit (CPU), or a combination of a CPU and a hardware chip.
  • CPU central processing unit
  • the hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination thereof.
  • the PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
  • CPLD complex programmable logic device
  • FPGA field-programmable gate array
  • GAL generic array logic
  • the memory may include volatile memory, such as random access memory (RAM); the memory may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD) or solid-state drive (SSD) or double data rate synchronous dynamic random access memory (DDR SDRAM); the memory may also include a combination of the above types.
  • DDR SDRAM can be referred to as DDR.
  • the memory can be used as the memory or cache of a computing device.
  • the cache can be one or more levels of cache, for example, registers and/or static It is implemented using static random access memory (SRAM).
  • the processor can implement the functions of NIC 1 or NIC 2 by executing the code in the memory.
  • the memory can store the code of the system application and/or application process, and the processor can implement the functions of the CPU core and/or process of the host 1 or host 2 by executing the code.
  • the CPU in the host 1 can run the application program (APP) 1 by executing the instructions in the memory, and similarly, the CPU in the host 2 can run APP 2 by executing the instructions in the memory.
  • APP application program
  • the message generated by the host mentioned above can refer to the APP running on the host generating the message
  • the message received by the host can refer to the APP running on the host receiving the message.
  • NIC 1 and NIC 2 may create a data transmission channel (channel) and a corresponding work queue (WQ) for host 1 and host 2.
  • the WQ may be a queue pair (QP).
  • NIC 1 and NIC 2 may exchange data between host 1 and host 2 in the data transmission channel based on the WQ.
  • host 1 may submit a work request (WR) to the WQ, and the data transmission message pointed to by WR indicates that a certain data transmission operation is to be performed between host 1 and host 2.
  • WR work request
  • the transmission network executes the corresponding data transmission operation (hereinafter referred to as executing WR) and notifies the host (for example, including host 1 and/or host 2) of the completion of the data transmission operation (or WR) (hereinafter referred to as completing WR). That is, the transmission network processing WR includes the transmission network executing WR and completing WR.
  • the transmission network processing WR includes NIC 1 processing WR and NIC 2 processing WR.
  • Any NIC processing WR includes: the NIC executing WR and the NIC completing WR.
  • NIC 1 and NIC 2 can create a completion queue (CQ) for host 1 and host 2, and notify the host of the completion status of WR by submitting a completion queue element (CQ element, CQE) to the CQ.
  • CQ completion queue
  • CQ element completion queue element
  • the present application does not limit the type of data transmission operation (referred to as operation) indicated by the message.
  • the operation may be a write operation, a read operation, a send operation, or an atomic operation, etc.
  • the message may be a remote direct memory access (RDMA) message
  • the NIC may be an RDMA NIC (RNIC for short).
  • RDMA remote direct memory access
  • This application takes host 1 as the request end and host 2 as the responder as an example.
  • host 2 can also be used as the request end and host can also be used as the responder.
  • host 1 and host 2 are used as the request end and responder as examples to introduce the process of data exchange between host 1 and host 2.
  • Fig. 3 schematically shows a possible process of host 1 sending a message to host 2.
  • the process may include steps S301 to S308.
  • NIC 1 can create a WQ for Host 1, and Host 1 can submit WR 0 to WQ. Assume that message 0 pointed to by WR 0 is used to indicate data transfer operation 0 between Host 1 and Host 2.
  • NIC 1 creates different WQs for different processes in host 1.
  • the process can be an application process or a system process.
  • the present application does not limit the specific method by which the host 1 submits WR 0 to the WQ.
  • the application process submits WR 0 to the WQ created by NIC 1 for the application process through the communication middleware.
  • the transmission network can process WR 0 through the following steps S302 to S308.
  • NIC 1 sends message 0 to the communication link
  • NIC 1 may read WR 0 from WQ, obtain message 0 pointed to by WR 0, and then perform data transmission operation 0.
  • NIC 1 performing data transmission operation 0 may include: NIC 1 encapsulating message 0 into message 0 and sending message 0 to the communication link.
  • NIC 1 splits message 0 into multiple fragmented messages (referred to as fragments), encapsulates each fragment into a message (referred to as a fragmented message), and then sends the multiple fragmented messages.
  • NIC 2 may obtain message 0 carried in message 0 and perform data transmission operation 0 indicated by message 0. Taking message 0 as a write message as an example, NIC 2 performing data transmission operation 0 may include: NIC 2 writing the data in message 0 to host 2. Taking message 0 as a read message as an example, NIC 2 performing data transmission operation 0 may include: NIC 2 obtaining the data indicated by message 0 from host 2, and then sending the obtained data to host 1 through NIC 1.
  • NIC 2 reports the completion status of data transmission operation 0 to host 2;
  • NIC 2 After NIC 2 executes data transmission operation 0, it can report the completion status of data transmission operation 0.
  • NIC 2 reports the completion status of data transmission operation 0 by submitting a CQE to the CQ of host 2.
  • the completion status indicated by the CQE can indicate the success or failure of data transmission operation 0.
  • the completion status indicates that host 2 has successfully received message 0, or has successfully written message 0 to host 2, or has not received message 0, or message 0 has failed to be written, etc.
  • NIC 2 creates different CQs for different processes in host 2.
  • the process can be an application process or a system process.
  • NIC 2 submits CQE to CQ.
  • NIC 2 submits CQE to the CQ of a process in host 2.
  • NIC 2 sends a response message 0 to NIC 1;
  • NIC 2 may send a response message 0 to NIC 1.
  • the response message 0 indicates the completion status of the data transmission operation 0.
  • the completion status may indicate the success or failure of the data transmission operation 0.
  • the completion status indicates that the host 2 has successfully received the message 0, or has successfully written the message 0 to the host 2, or has not received the message 0, or the message 0 has failed to be written, etc.
  • NIC 1 reports the completion status of data transmission operation 0 to host 1.
  • NIC 1 may report the completion status of the data transmission operation 0 to the host 1 according to the response message 0.
  • NIC 1 reports the completion status of the data transmission operation 0 by submitting a CQE to the CQ of the host 1.
  • the completion status indicated by the CQE may indicate the success or failure of the data transmission operation 0.
  • the completion status indicates that the host 2 has successfully received the message 0, or has successfully written the message 0 to the host 2, or the host 2 has not received the message 0, or the message 0 has failed to be written, etc.
  • NIC 1 creates different CQs for different processes in host 1.
  • the process can be an application process or a system process.
  • NIC 1 submits CQE to CQ.
  • NIC 1 submits CQE to the CQ of a process in host 1.
  • steps S306 and S307 are optional steps.
  • NIC 1 when NIC 1 does not receive the response message 0 within the preset time, it can report the failure of the data transmission operation 0 to the host 1.
  • Host 1 generally needs to submit multiple WRs to WQ in sequence.
  • the transmission network can process each WR separately according to the process of S302 to S308. Because the business requirements of some business scenarios require the transmission network to process multiple WRs submitted by host 1 in order, the transmission network needs to ensure that the WRs submitted first are processed first, and the WRs submitted later are processed later.
  • NIC 1 needs to perform data transfer operation 1 and data transfer operation 2 in sequence.
  • the communication link needs to forward message 1 and message 2 to NIC 2 in sequence according to the first-served-first-served principle.
  • NIC 2 needs to perform data transfer operation 1 and data transfer operation 2 in sequence according to the order of message sequence identifiers in the message.
  • NIC 2 reports the completion status of data transfer operation 1 and the completion status of data transfer operation 2 in sequence.
  • NIC 1 reports the completion status of data transfer operation 1 and the completion status of data transfer operation 2 in sequence.
  • the message sequence identifier may be a packet sequence number (PSN).
  • PSN packet sequence number
  • NIC 2 may detect packet loss based on the PSN. When packet loss is detected, NIC 2 may retransmit the lost message and all subsequent messages to ensure that they are received in sequence according to the order of the PSN in the message. When NIC 2 does not detect packet loss, the message may be executed in the order of the PSN (e.g., in ascending order).
  • NIC 1 needs to execute S302 and S308 for multiple WRs mutually exclusively, and NIC 2 needs to execute S304 to S306 for multiple WRs mutually exclusively, which results in low processing efficiency.
  • the communication link cannot fully utilize the network bandwidth, which is not conducive to reducing the transmission delay of messages.
  • the present application provides a data processing method.
  • the idea of the solution is: before the host 1 submits WR 2, The order preservation requirement of WR 2 is determined according to the business requirements, and the corresponding sending identifier is added to the submitted WR 2 according to the order preservation requirement of WR 2, and the transmission network is instructed to process WR 2 according to the order preservation requirement through the sending identifier.
  • the user can pre-configure multiple order preservation requirements, associate a sending identifier with each order preservation requirement, and obtain a sending identifier set. Accordingly, host 1 can select the associated sending identifier from the sending identifier set according to the order preservation requirement of WR 2 and add it to WR 2.
  • the order preservation requirement supports user configuration of one or more order preservation parameters.
  • the order preservation requirement of WR 2 indicates the order preservation level of WR 2.
  • the order preservation level supports user configuration.
  • the order-preserving level indicates the order in which the transport network processes one or more WRs (referred to as WR 1) and WR 2 before the WR, so as to seek the optimal processing solution for multiple WRs while taking into account the business requirements and the processing efficiency of the WRs.
  • A represents the execution subject, and b and c represent the operations performed by A.
  • the order in which A executes b and c can indicate that A executes b first, and then executes c after b is executed.
  • the order in which A executes b and c can indicate that A executes c first, and then executes b after c is executed.
  • the order in which A executes b and c can indicate that A executes b and c in parallel, for example, A can be instructed to use different processor cores to execute b and c, without limiting the order between executing b and executing c.
  • A represents the transmission network, and b and c represent processing WR 1 and processing WR 2, respectively.
  • the order-preserving level indicates order-preserving processing WR 2 or non-order-preserving processing WR 2.
  • the order-preserving processing WR 2 indicates that WR 2 is processed first and then WR 1.
  • the non-order-preserving processing WR 2 indicates that the processing of WR 2 does not need to wait until WR 1 is processed, or the processing order between WR 1 and WR 2 is not limited, for example, WR 1 and WR 2 can be processed in parallel.
  • the following takes the order-preserving level indicating order-preserving or non-order-preserving as an example.
  • the order preservation requirement also indicates the process of the order preservation level (called the order preservation process).
  • the order preservation process supports user configuration.
  • the transmission network processing WR includes two processes: executing WR and completing WR.
  • the order-preserving process indicated by the order-preserving requirement is the process of executing WR or the process of completing WR, and the unindicated process can be considered to be processed according to the default order-preserving level (or order).
  • the order-preserving process indicated by the order-preserving requirement includes the above two processes, and the order-preserving level indicated by the order-preserving requirement may include the order-preserving levels of these two processes.
  • the order-preserving requirement indicates that the order-preserving level in the process of executing WR is order-preserving, and the order-preserving level in the process of completing WR is not order-preserving.
  • the order preservation requirement also indicates the execution subject of the order preservation level effect (called the order preservation object).
  • the order preservation object supports user configuration.
  • the transmission network processing WR includes NIC 1 processing WR and NIC 2 processing WR.
  • the order-preserving object indicated by the order-preserving requirement is NIC 1 or NIC 2
  • the unindicated object can be considered to be processed according to the default order-preserving level (or order).
  • the order-preserving object indicated by the order-preserving requirement includes the above two objects, and the order-preserving level indicated by the order-preserving requirement can include the order-preserving levels of these two processes.
  • the order-preserving requirement indicates that the order-preserving level of NIC 1 in the process of processing WR is order-preserving, and the order-preserving level of NIC 2 in the process of processing WR is not order-preserving.
  • the order preservation requirement includes the above three order preservation parameters, all of which support user configuration. This helps users configure different processes of the same object to the same or different order preservation levels according to business needs, or configure the same processes of different objects to the same or different order preservation levels, so as to find the optimal processing solution for multiple WRs to the greatest extent while taking into account business needs and WR processing efficiency.
  • the above-mentioned sending identifier set includes a first sending identifier (denoted as no-order or n-o).
  • the first sending identifier indicates a first order preservation requirement
  • the first order preservation requirement indicates that the order is not preserved in any process (process of executing WR or completing WR) of any object (NIC1 or NIC2).
  • the data processing method may include steps S401 to S408.
  • Host 1 submits WR 1 and WR 2 to WQ in sequence.
  • Host 1 submitting WR to WQ may refer to APP 1 submitting WR to WQ.
  • the present application does not limit the manner in which the host 1 or APP 1 submits WR to the WQ.
  • the host 1 or APP 1 submits WR to the WQ through the communication middleware.
  • WR is submitted in WQ.
  • WR 1 and WR 2 carry the first sending identifier respectively.
  • WR includes at least a message field and an order preservation field (or an order preservation capability field).
  • the message field is used to instruct the NIC to obtain the message to be sent. Assume that the messages indicated by the message fields of WR 1 and WR 2 are message 1 and message 2 respectively. Message 1 and message 2 indicate data transmission operation 1 and data transmission operation 2 respectively.
  • the sequence preservation field indicates a sending identifier. Assume that the sequence preservation fields in WR 1 and WR 2 indicate the first sending identifier respectively.
  • message 1 the message sent by NIC 1 according to WR 1 is referred to as message 1
  • message 2 the message sent by NIC 1 according to WR 2 is referred to as message 2.
  • message 1 and/or message 2 respectively include multiple fragmented messages.
  • NIC 1 can execute data transmission operation 1 and data transmission operation 2 in parallel, which is beneficial to improving the processing efficiency of NIC 1 on WR 2.
  • NIC 1 may include multiple processor cores, and NIC 1 may process WR 1 and WR 2 in parallel through the multiple processor cores.
  • NIC 1 may add a first receiving identifier to message 1 according to the first sending identifier in WR 1, and may add a first receiving identifier to message 2 according to the first sending identifier in WR 2.
  • the first sending identifier and the first receiving identifier may be the same or different. The following takes the case where the first sending identifier and the first receiving identifier are the same as an example.
  • the communication link can optionally forward message 1 and message 2 to NIC 2 respectively.
  • NIC 1 may add a multipath transmission identifier to message 1 and message 2, respectively, and the multipath transmission identifier indicates that the communication link uses a multipath transmission method to transmit message 1 and message 2, respectively. After the communication link recognizes the multipath transmission identifier in message 1 and message 2, it forwards message 1 and message 2 to NIC 2 through the multipath transmission method.
  • the message generally carries a WR sequence flag, which indicates the order of the WR corresponding to the message.
  • the WR sequence flag in message 1 and the WR sequence flag in message 2 are used to determine the order in which host 1 submits WR 1 and WR 2, or to determine the order in which WR 1 and WR 2 are in the WQ.
  • the WR sequence flag carried by message 1 indicates that the order of WR 1 is 1
  • the WR sequence flag carried by message 2 indicates that the order of WR 2 is 2.
  • NIC 2 can determine that the order of WR 2 corresponding to message 2 is later than that of WR 1 corresponding to message 1 based on the WR order identifier of message 2, when NIC 2 recognizes the first sending identifier in message 2, NIC 2 can execute data transmission operation 1 and data transmission operation 2 in parallel, which is beneficial to improving the processing efficiency of NIC 2 for message 2.
  • NIC 2 may include multiple processor cores, and NIC 2 may perform receive processing on Message 1 and Message 2 in parallel through the multiple processor cores.
  • NIC 2 reports completion status 1 of data transmission operation 1 and completion status 2 of data transmission operation 2 to host 2 in parallel;
  • NIC 2 After NIC 2 receives message 1 or performs data transmission operation 1, it can generate CQE 1 and send CQE 1 to the CQ of host 2. After NIC 2 receives message 2 or performs reception processing on message 2, it can generate CQE 2 and send CQE 2 to the CQ of host 2. Optionally, NIC 2 can report CQE 1 and CQE 2 in parallel.
  • NIC 2 After NIC 2 performs reception processing on message 1, or after reporting CQE 1, it can send a response message 1 to NIC 1. Similarly, after NIC 2 performs reception processing on message 2, or after reporting CQE 2, it can send a response message 2 to NIC 1.
  • NIC 2 does not limit the order in which NIC 2 sends reply message 1 and reply message 2.
  • NIC 2 can send reply message 1 and reply message 2 in parallel.
  • the communication link forwards the response message 1 and the response message 2 to NIC 1 respectively;
  • the communication link can optionally forward response message 1 and response message 2 to NIC 1 respectively through multi-path transmission.
  • NIC 2 may add a multipath transmission identifier to the response message 1 and the response message 2, respectively, and the multipath transmission identifier indicates The communication link uses a multipath transmission mode to transmit the reply message 1 and the reply message 2 respectively. After identifying the multipath transmission identifiers in the reply message 1 and the reply message 2, the communication link forwards the reply message 1 and the reply message 2 to the NIC 1 through the multipath transmission mode.
  • NIC 1 reports completion status 1 of data transmission operation 1 and completion status 2 of data transmission operation 2 to host 1 respectively.
  • the present application does not limit completion situation 1 of S408 to be the same as completion situation 1 of S405 , nor does it limit completion situation 2 of S408 to be the same as completion situation 2 of S405 .
  • NIC 1 After NIC 1 receives response message 1, it can report to WR 1 that the request side has completed notification (recorded as CQE 1') according to response message 1. Similarly, after NIC 1 receives response message 2, it can report to WR 2 that the request side has completed notification (recorded as CQE 2') according to response message 2.
  • NIC 1 can report CQE 1’ and CQE 2’ in parallel. This helps improve the reporting efficiency of CQE.
  • the process corresponding to S401 to S408 is conducive to the parallel execution and parallel confirmation of data transmission operation 1 and data transmission operation 2 at the request end, and the parallel execution and parallel confirmation of data transmission operation 1 and data transmission operation 2 at the response end, so as to realize efficient processing of data transmission operations at the request end and the response end.
  • it is conducive to realizing multi-path transmission of message 1 and message 2 in the communication link, which is conducive to improving the utilization rate of network bandwidth and reducing the transmission delay of messages.
  • FIG4 schematically shows a possible schematic diagram of the above data processing method.
  • transaction 1 and transaction 2 represent the data transmission transaction corresponding to WR 1 and the data transmission transaction corresponding to WR 2, respectively.
  • UQ 0 represents the user queue (UQ) of APP 1.
  • Channel 0 represents the data transmission channel established between NIC 1 and NIC 2.
  • SRQ 0 represents the shared receive queue (SRQ) created by NIC 2.
  • P1_1 and P1_2 represent the fragmented messages in message 1, respectively.
  • P2_1 and P2_2 represent the fragmented messages in message 2, respectively.
  • the blank rectangle in the communication link represents other messages or fragmented messages in other messages.
  • the communication link may include three transmission paths (referred to as paths), and the fragmented messages in message 1 and message 2 are forwarded to host 2 by multi-path transmission.
  • the above-mentioned sending identifier set includes a second sending identifier (denoted as fence-order or f-o).
  • the second sending identifier indicates a second order-preserving requirement, and the second order-preserving requirement indicates that the order is preserved in any process (process of executing WR or completing WR) of any object (NIC1 or NIC2).
  • the present application does not limit the specific implementation method of the order-preserving requirement.
  • the second sending identifier can achieve the second order-preserving requirement by indicating that WR 1 should be completed before executing WR 2. Assuming that the order-preserving requirement corresponding to WR 2 is the second order-preserving requirement, referring to Figure 5, the data processing method may include steps S501 to S515.
  • Step S501 can be understood with reference to step S401. Unlike step S401, WR 2 carries the second sending identifier. Step S501 does not limit the value of the sequence preservation field of WR 1. In the following, the sequence preservation field of WR 1 is taken as the first sending identifier as an example.
  • NIC 1 sends message 1 to the communication link
  • NIC 2 reports the completion status 1 of data transmission operation 1 to host 2;
  • NIC 2 sends a response message 1;
  • the communication link forwards the response message 1 to NIC 1;
  • NIC 1 reports completion status 1 of data transmission operation 1 to host 1;
  • Steps S502 to S208 may be understood by referring to the contents of steps S302 to S308, and will not be described in detail here.
  • NIC 1 When NIC 1 recognizes the second sending identifier in WR 2, if NIC 1 has not completed WR 1 (for example, S508 has not been executed), NIC 1 does not execute WR 2 temporarily, but executes WR 2 after completing WR 1, for example, sending message 2 to the communication link. This helps to ensure that NIC 1 processes WR 1 first, and then processes WR 2 after completing WR 1, which helps to strictly maintain the order of each process executed by NIC 1 and NIC 2 on WR 2.
  • NIC 1 when NIC 1 recognizes that the sending identifier in WR 2 is the second sending identifier, NIC 1 takes WR 2 out of the WQ and puts it into the order-keeping queue. After NIC 1 reports the completion status of WR 1 to host 1, NIC 1 takes out and processes WR 2 from the order-keeping queue. In this way, even if NIC 1 does not process WR 2, it can continue to process other WRs after WR 2 in the WQ, preventing congestion and improving the processing efficiency of WRs.
  • NIC 1 when NIC 1 recognizes that the sending identifier in WR 2 is the second sending identifier, NIC 1 does not send WR 2 is taken out of the WQ and remains in the WQ. After NIC 1 reports the completion of WR 1 to host 1, WR 2 is taken out of the WQ and processed. In this way, before NIC 1 processes WR 2, NIC 1 may not be able to continue processing other WRs after WR 2 in the WQ, resulting in blocking.
  • NIC 1 may add a second receiving identifier to message 2 according to the second sending identifier in WR 2.
  • the second receiving identifier may be n-o as described above.
  • NIC 2 reports the completion status 2 of data transmission operation 2 to host 2;
  • NIC 1 reports the completion status 2 of data transmission operation 2 to host 1.
  • Steps S510-S515 can be understood by referring to the contents of S303-S308 respectively, or by referring to the processing of WR 2 in S403-S408.
  • the process corresponding to Figure 5 is beneficial to limiting the order-preserving processing WR 2 only on the requesting end, and not limiting the order-preserving processing WR 2 on the communication link and the responding end. This can achieve order preservation for each processing process of WR 2 in the entire transmission network, reduce the complexity of the solution, and improve the processing efficiency of WR.
  • the above-mentioned sending identifier set includes a third sending identifier (denoted as so-order or s-o).
  • the third sending identifier indicates a third order preservation requirement
  • the third order preservation requirement indicates that the order is preserved during the process of NIC1 and NIC2 executing WR.
  • the data processing method may include steps S601 to S610.
  • Step S601 can be understood with reference to step S401. Unlike step S401, WR 2 carries the third sending identifier. Step S601 does not limit the value of the sequence preservation field of WR 1. In the following, the sequence preservation field of WR 1 is taken as the first sending identifier as an example.
  • NIC 1 After NIC 1 obtains WR 1, it can execute WR 1, for example, sending message 1 to the communication link.
  • the content of message 1 can refer to the introduction of message 1 in the previous article.
  • NIC 1 When NIC 1 recognizes the third sending identifier in WR 2, if NIC 1 has not yet executed WR 1 (for example, it has not yet executed S602), NIC 1 does not execute WR 2 temporarily, but waits to execute WR 1 before executing WR 2, for example, sending message 2 to the communication link. This helps to ensure that NIC 1 executes WR 1 first, and then executes WR 2 after executing WR 1, so that the order is maintained during the process of NIC 1 executing WR 2.
  • NIC 1 may add a third receiving identifier to message 2 according to the third sending identifier in WR 2.
  • the third receiving identifier may be the same as the third sending identifier.
  • the following is an example in which the third receiving identifier is the same as the third sending identifier.
  • S604 may be understood by referring to the content of S403.
  • NIC 2 When NIC 2 recognizes the third sending identifier in WR 2, if NIC 2 has not yet executed WR 1 (for example, has not yet executed S605), NIC 2 does not execute WR 2 temporarily, but executes WR 2 after executing WR 1, for example, executes data transmission operation 2. This helps to ensure that NIC 2 executes WR 1 first, and then executes WR 2 after executing WR 1, so that the order is maintained during the process of NIC 2 executing WR 2.
  • NIC 2 reports completion status 1 of data transmission operation 1 and completion status 2 of data transmission operation 2 to host 2 in parallel;
  • S610 and NIC 1 report the completion status 1 of data transmission operation 1 and the completion status 2 of data transmission operation 2 to host 1 respectively.
  • Steps S607-S610 may be understood by referring to the contents of S405-S408 respectively.
  • the process corresponding to FIG6 is conducive to executing WR 2 in order preservation at the request end and the response end respectively, and does not limit the transmission of WR 2-related messages in the communication link to preserve the order, nor is it limited to completing WR 2 in order preservation at the request end and the response end, which is conducive to improving the processing efficiency of WR.
  • it is conducive to realizing multi-path transmission of message 1 and message 2 in the communication link, which is conducive to improving the utilization rate of network bandwidth and reducing the transmission delay of messages.
  • the above-mentioned sending identifier set includes a fourth sending identifier (recorded as ic-order or ic-o).
  • the fourth sending identifier indicates a fourth order preservation requirement
  • the fourth order preservation requirement indicates that the order is preserved during the process of NIC 1 completing WR.
  • the data processing method may include steps S701 to S709.
  • Step S701 can be understood with reference to step S401. Unlike S401, WR 2 carries the fourth sending identifier. Step S701 does not limit the value of the sequence preservation field of WR 1. In the following, the sequence preservation field of WR 1 is taken as the first sending identifier as an example.
  • NIC 1 sends message 1 and message 2 in parallel;
  • NIC 1 After NIC 1 recognizes the fourth sending identifier in WR 2, it executes data transmission operation 1 and data transmission operation 2 in parallel, for example, sending message 1 and message 2 in parallel.
  • This process can refer to S402.
  • the NIC 1 encapsulates the fourth receiving identifier into the message 2.
  • the fourth receiving identifier is the first sending identifier (i.e., n-o).
  • the following takes the fourth receiving identifier being the same as the first sending identifier as an example.
  • NIC 2 executes data transmission operation 1 and data transmission operation 2 in parallel;
  • NIC 2 reports completion status 1 of data transmission operation 1 and completion status 2 of data transmission operation 2 to host 2 in parallel;
  • the communication link forwards the response message 1 and the response message 2 to NIC 1 respectively;
  • S703 to S708 may be understood by referring to the contents of S403 to S406 respectively.
  • NIC 1 reports completion status 1 of data transmission operation 1 to host 1;
  • S708 can be understood by referring to the content of S308.
  • NIC 1 recognizes the fourth sending identifier in WR 2, NIC 1 reports the completion status 2 of the data transmission operation 2 to the host 1 after completing WR 1.
  • NIC 1 After NIC 1 receives the response message 2, when NIC 1 identifies the fourth sending identifier in WR 2, if NIC 1 has not completed WR 1 (for example, S708 has not been executed), NIC 1 does not complete WR 2 temporarily, but completes WR 2 after completing WR 1, for example, reporting the completion status 2 of data transmission operation 2 to host 1. This is conducive to strictly maintaining the order of the process of NIC 1 completing WR 2, that is, it is conducive to ensuring that NIC 1 first reports the completion status 1 to host 1, and then reports the completion status 2.
  • This application does not limit the completion situation 1 of S708 to be the same as the completion situation 1 of S705, nor does it limit the completion situation 2 of S709 to be the same as the completion situation 2 of S705.
  • the process corresponding to S701 to S709 is conducive to completing WR 2 with order preservation at the request end, does not preserve the order of the process of executing WR 2 at the request end, does not limit the transmission of WR 2-related messages in the communication link with order preservation, and does not limit the processing of WR 2 with order preservation at the response end, which is conducive to improving the processing efficiency of WR.
  • it is conducive to realizing multi-path transmission of message 1 and message 2 in the communication link, which is conducive to improving the utilization rate of network bandwidth and reducing the transmission delay of messages.
  • the above-mentioned sending identifier set includes a fifth sending identifier (denoted as tc-order or tc-o).
  • the fifth sending identifier indicates a fifth order preservation requirement
  • the fifth order preservation requirement indicates order preservation during the process of NIC 2 completing WR.
  • the data processing method may include steps S801 to S809.
  • Step S801 can be understood with reference to step S301. Unlike S301, the sequence preservation field in WR 2 is the fifth sending identifier. Step S801 does not limit the value of the sequence preservation field of WR 1. In the following, the sequence preservation field of WR 1 is taken as the first sending identifier as an example.
  • NIC 1 After NIC 1 recognizes the fifth sending identifier in WR 2, it executes data transmission operation 1 and data transmission operation 2 in parallel, for example, sending message 1 and message 2 in parallel.
  • This process can refer to S402.
  • NIC 1 encapsulates the fifth receiving identifier into message 2.
  • the fifth receiving identifier is the same as the fifth sending identifier.
  • the following takes the fifth receiving identifier being the same as the fifth sending identifier as an example.
  • S803 and S804 may be understood by referring to the contents of S403 and S404 respectively.
  • NIC 2 reports the completion status 1 of data transmission operation 1 to host 2;
  • NIC 2 executes data transmission operation 1 and sends CQE 1 to host 2.
  • NIC 2 reports completion status 1
  • NIC 2 reports completion status 2 of data transmission operation 2 to host 2.
  • NIC 2 When NIC 2 recognizes the fifth sending identifier in message 2, if NIC 2 has not completed WR 1 (for example, S805 has not been executed), NIC 2 does not complete WR 2 temporarily, but completes WR 2 after completing WR 2, for example, reporting completion status 2 of data transmission operation 2 to host 2. This helps to ensure that NIC 2 first reports completion status 1 to host 2, and then reports completion status 2, which helps to achieve strict order preservation in the process of NIC 2 completing WR 2.
  • NIC 2 When NIC 2 recognizes the fifth receiving identifier in message 2, it sends message 1 and message 2 to the memory space of host 2 in parallel. After sending message 2 to host 2, CQE 2 of message 2 is generated. At this time, if CQE 1 of message 1 has not been generated or sent to host 2, CQE 2 is written into the cache of NIC 2 (called out-of-order buf). After NIC 2 generates or sends CQE 1, CQE 2 is removed from the out-of-order buf and sent to the memory space of host 2 to notify APP 2 for processing.
  • step S704 it is mentioned that NIC 2 stores packet 2 or message 2 in the out-of-order buf
  • step S805 it is mentioned that CQE 2 is written into the out-of-order buf.
  • the out-of-order buf represents the cache of NIC 2, and this application does not limit NIC 2 to writing packet 2 (or message 2) and CQE 2 into the same storage area of the cache.
  • NIC 1 reports completion status 1 of data transmission operation 1 and completion status 2 of data transmission operation 2 to host 1 respectively.
  • Steps S807-S809 may be understood by referring to the contents of S406-S408 respectively.
  • the process corresponding to S801 to S809 is conducive to completing WR 2 with order preservation at the response end, does not preserve the order of the process of executing WR 2 at the response end, does not limit the transmission of WR 2-related messages in the communication link with order preservation, and does not limit the processing of WR 2 with order preservation at the response end, which is conducive to improving the processing efficiency of WR.
  • it is conducive to realizing multi-path transmission of message 1 and message 2 in the communication link, which is conducive to improving the utilization rate of network bandwidth and reducing the transmission delay of messages.
  • NIC 2 can send response message 1 after S805 and send response message 2 after S806, but it does not limit NIC 2 to send response message 1 and response message 2 after S806.
  • sequence preservation identifiers the first to fifth sending identifiers and the first to fifth receiving identifiers are collectively referred to as sequence preservation identifiers.
  • sequence preservation identifiers are used to indicate a process that requires sequence preservation control (or a sub-processing process for processing WR).
  • Figure 9 shows the sub-processing process that requires sequence preservation control indicated by each sequence preservation identifier.
  • the process of the requesting end such as NIC 1
  • the process of the requesting end completing WR supports the configuration of n-o or ic-o.
  • the process of the responding end (such as NIC 2) executing WR supports the configuration of n-o or s-o, and the process of the responding end completing WR supports the configuration of n-o or tc-o.
  • the network transmission process can be configured with n-o by default, or the network transmission process supports the configuration of the sequence preservation level. It should be noted that in the network transmission process, the communication link does not change the receiving identifier carried in the message.
  • the order-preserving domain may optionally include a sub-domain corresponding to each sub-process in the multiple sub-processes.
  • the order-preserving domain includes 4 sub-domains, which are respectively recorded as the first sub-domain to the fourth sub-domain, and are used to indicate the order-preserving levels of the requesting end executing WR, the requesting end completing WR, the responding end executing WR, and the responding end completing WR.
  • the order-preserving domain or order-preserving identifier can include multiple values.
  • the order-preserving domain can include 24 possible values, each value representing a combination of the above four sub-domains. For example, when the order-preserving domain is 0, it is equivalent to the first sub-domain to the fourth sub-domain being no respectively. For example, when the order-preserving domain is 1, it is equivalent to The first to fourth subfields are no, no, no and tc-o respectively.
  • This application does not limit the sequence preservation identifier carried by WR to be added by host 1.
  • the communication middleware introduced in the previous article encapsulates the WR with the sequence preservation identifier added, and then submits the encapsulated WR to WQ.
  • FIG10 schematically shows the process of host 1 submitting WR.
  • the process of using the WR order preservation level in the user programming model can refer to FIG10. Referring to FIG10, the process includes:
  • APP 1 may initiate a communication operation request for indicating a transmission message through the communication middleware. Assume that APP 1 initiates communication operation request 1 for indicating the transmission of message 1 and communication operation request 2 for indicating the transmission of message 2 in sequence through the communication middleware.
  • This application does not limit the type of communication middleware.
  • the communication middleware may be a multi-point interface (MPI).
  • the communication middleware determines the sequence preservation identifier corresponding to the communication operation request 2 according to the information of the message 1 and the information of the message 2;
  • the communication middleware can determine the order preservation identifier corresponding to the communication operation request 2 based on the information of message 1 and the information of message 2.
  • the information of the message may include the operation type and/or business scenario of the message.
  • the communication middleware can determine the dependency between the operation type of message 1 and the operation type of message 2, and then determine the order preservation level of the communication operation request 2 (or message 2).
  • the communication middleware submits WR 1 of communication operation request 1 and WR 2 of communication operation request 2 respectively;
  • the communication middleware can encapsulate and submit WR 1 according to communication operation request 1, and encapsulate and submit WR 2 according to communication operation request 2 and the corresponding order preservation level.
  • the communication middleware can encapsulate the data structure of post_wr() according to the communication protocol software stack interface format. Assume that the data structure of WR 2 is shown in Figure 10, and the "order_type_t order_type" field is used to indicate the sending identification of WR 2, thereby indicating the order preservation requirement of WR 2.
  • the communication middleware after the communication middleware encapsulates WR 1 and WR 2, it can call the post_wr() interface to submit WR 1 and WR 2 in sequence.
  • NIC 1 can include a communication protocol software stack and a hardware processing module (including a network card device driver and a network card hardware).
  • the process of NIC 1 executing WR can specifically include the communication protocol driver and the hardware processing module parsing WR and executing WR.
  • the host or communication middleware can add at least one identifier (called the first target identifier) to WR from multiple identifiers.
  • the multiple identifiers can include at least two order-preserving identifiers introduced above, and optionally, the at least two order-preserving identifiers can be at least two sending identifiers introduced above. This application does not limit the basis for the host or communication middleware to match the order-preserving level of WR.
  • the host or communication middleware may select a first target identifier from a plurality of identifiers according to the information of message 1 and message 2 and add it to WR 2 according to a preset rule.
  • the information of message 1 and the information of message 2 may refer to the relevant content of step S1002.
  • the preset rule may be a fixed setting, or the preset rule may be configured by a user.
  • the preset rule can satisfy the Infiniband protocol (IB protocol for short) for the order of WR operations (for example, see the relevant content of the IB protocol).
  • IB protocol Infiniband protocol
  • the host or communication middleware can set the value of the order preservation field in WR 2 to 0 to indicate that order preservation is achieved in the process of executing WR on the requesting end, the process of completing WR on the requesting end, the process of executing WR on the responding end, and the process of completing WR on the responding end.
  • the user configures the preset rule through a configuration interface
  • FIG11 schematically shows a possible form of the configuration interface.
  • “#” represents the need for strict order preservation
  • “NR” represents the need for no order preservation.
  • the preset rule configured according to FIG11 indicates: read is allowed to exceed write, write exceeds read, read exceeds read, and write cannot exceed write. Taking "read exceeds write” as an example, the preset rule indicates that when the operation type of WR 1 and the operation type of WR 2 are write operation and read operation respectively, the operation of WR 2 can be executed before (or exceed) the operation of WR 1.
  • the host 1 or the communication middleware can set the first subdomain to n-o.
  • the host 1 or the communication middleware can set the first subdomain to n-o.
  • NIC 1 compared with NIC 1 using a single process to execute the write operation of WR 1 and the read operation of WR 2 in sequence, by configuring the preset rules shown in FIG11, NIC 1 can execute the write operation of WR 1 and the read operation of WR 2 in parallel through two processes, which is conducive to improving the execution efficiency of WR.
  • the configuration interface can support users to set the order between more or fewer operation types.
  • the configuration interface shown in Figure 11 sets the order between any two operations to no by default, for example, all "#" shown in Figure 11 are replaced with "NR". Users can change part of the order according to business needs. Order preservation is not bound to specific operations, and order preservation processing is performed between all operations only when the user specifies it.
  • order preservation is provided to users as a basic capability of WR, and users can control the order preservation capability by setting the attributes of WR.
  • the order preservation capability is provided to users as a basic attribute of WR through the software programming interface for submitting WR.
  • a user submits a WR first determine the sub-process that needs to be processed by order preservation, for example, whether it involves the order preservation of executing WR (whether it is dependent on the data execution of the previous operation), whether it involves the order preservation of completing WR (whether it is dependent on the completion notification of the previous operation), and the end side involved in order preservation (such as the request end or the response end). After determining the sub-process that needs to be processed by order preservation, select the corresponding order preservation capability.
  • the responding end needs to generate CQE in sequence, and the order preservation field of WR 2 is set to tc-order (for specific communication protocols, the order preservation rule table can be provided according to the protocol).
  • the order preservation capability is passed as a parameter to the communication protocol software interface.
  • the network card device (such as the above-mentioned NIC 1) can perform order preservation processing according to the sending identifier (or the indicated order preservation requirement) in WR, and pass the receiving identifier indicating the order preservation requirement to the responding end through the message.
  • the receiving identifier can be, for example, any receiving identifier or n-o identifier or s-o identifier or tc-o identifier introduced in the previous text.
  • the communication protocol software module performs order preservation processing according to the order preservation capability parameter indication. If the order preservation capability is s-o/f-o/ic-o, order preservation processing needs to be performed on the requesting end.
  • the receiving identifier is encapsulated into the message and passed to the responding end for processing through the message.
  • the responding end extracts the order preservation capability field (i.e., the receiving identifier) and performs the corresponding order preservation processing according to the indication of the order preservation capability field. For example, after identifying s-o, it is determined that before receiving and processing the message (such as message 2), it is necessary to rely on the previous message (such as message 1) to be executed. For example, in case of disorder, the receiving and processing of message 1 and message 2 are ensured to be performed in sequence through caching or packet loss retransmission. After receiving the message normally, the responder returns a response message.
  • the requester After receiving the response message, if the requester needs to generate CQE, it needs to re-read the sending identifier when WR is submitted. If the sending identifier is ic-o, it needs to generate CQE in order, for example, report CQE 1 first, and then report CQE 2.
  • the communication link involved in the above method can adopt a new transmission protocol or be based on an existing network transmission protocol.
  • the business scenario of the above method can support a connection model based on connection or reliable datagram, such as socket communication/IB/unified bus (UB) and other transmission protocols.
  • connection model based on connection or reliable datagram, such as socket communication/IB/unified bus (UB) and other transmission protocols.
  • UB socket communication/IB/unified bus
  • the order-preserving method also supports memory semantics (including business operation semantics), not limited to network transmission semantics.
  • Fig. 12 schematically shows another possible flow of the data processing method.
  • the method shown in Fig. 12 can be applied to a communication system, the communication system comprising a first node, a second node and a transmission network, the transmission network being used to forward data between the first node and the second node.
  • the communication system is a single host (e.g., the computer device shown in FIG. 2 ), and the first node and the second node are deployed on the same host.
  • the first node is the CPU of the host (or an application running on the CPU)
  • the second node is the hard disk of the host.
  • the transmission network is used to transmit data in the host, for example, the transmission network includes a NIC and a bus.
  • the NIC can be a physical device or a virtual device running on a physical device.
  • the physical device is the host where the first node and the second node are located.
  • the present application does not limit the connection method between the NIC and the host, for example, the NIC can be plugged into the bus of the host, or integrated on the motherboard of the host.
  • the communication system includes multiple hosts, and the host can be a physical device or a virtual device running on a physical device.
  • the first node and the second node are different hosts or devices deployed on different hosts.
  • the present application does not limit the type of the device, and the device can be a virtual device, for example, the device can be an application running on the host, or the device can be a physical device, for example, the device can be a CPU of the host or a hard disk on the host.
  • the transmission network includes a first network card connected to the first node 1 and a second network card connected to the second node.
  • the transmission network can also include a communication link between the first network card and the second network card.
  • the network card can be a physical device or a virtual device running on a physical device.
  • the present application does not limit the connection method between the network card and the host, for example, the network card can be plugged into the bus of the host, or integrated on the motherboard of the host.
  • the communication system is shown in Figure 1, the first node and the second node are host 1 and host 2, or APP 1 and APP 2, respectively, the transmission network includes NIC 1 and NIC 2, and optionally, also includes a communication link between NIC 1 and NIC 2.
  • the process may include steps S1201 to S1202 .
  • a first node submits a first work request WR and a second WR to a transmission network in sequence;
  • the first node may submit a first work request WR and a second WR to the transmission network in sequence.
  • the first node may submit the first WR and the second WR to a WQ created for the first node by the transmission network in sequence.
  • the first WR and the second WR point to the first message and the second message respectively, the first message indicates that a first data transmission operation is performed between the first node and the second node, and the second message indicates that a second data transmission operation is performed between the first node and the second node.
  • the sending identifier and the target sending identifier indicate the order in which the transmission network processes the first WR and the second WR.
  • the target sending identifier can be any of the sequence preservation identifiers introduced above, for example, it can be any of the first sending identifier to the fifth sending identifier, or, it can be the identifier n-o, s-o, f-o, tc-o or ic-o, or, it can be a combination of any of the above identifiers, or it can indicate the function indicated by any of the above identifiers.
  • the present application does not limit the manner in which the first node submits the WR to the transmission network.
  • the first node submits the WR according to the process shown in FIG. 10.
  • the present application does not limit the rule according to which the first node adds the target sending identifier to the second WR.
  • the first node selects a target sending identifier from a plurality of sending identifiers and adds it to the second WR.
  • the rule may be a fixed setting, or the rule may be configured by the user. For the content of the rule, reference may be made to the relevant content of the preset rule introduced above.
  • the present application does not limit the types of the first data transmission operation and the second data transmission operation.
  • the first data transmission operation or the second data transmission operation may be a write operation, a read operation, a send operation, or an atomic operation, etc.
  • the type of the first data transmission operation and the type of the second data transmission operation may be the same or different.
  • the transmission network may obtain the first WR and the second WR in sequence.
  • the transmission network may obtain the first WR and the second WR in sequence from the above WQ.
  • the transmission network obtaining WR mentioned in the present application may specifically refer to the network card connected to the first node obtaining WR.
  • the present application does not limit the submission order of the first WR to be adjacent to the submission order of the second WR, as long as the first WR is submitted to the transmission network before the second WR.
  • the present application does not limit the number of WRs in the first WR, for example, the first WR may refer to a single WR or include multiple WRs.
  • the target sending identifier also indicates the type of the first data transmission operation (or the type of WR).
  • the present application refers to the type indicated by the target sending identifier as the target type.
  • the first WR is a WR of this type among multiple WRs submitted before the second WR.
  • the target sending identifier indicates the order in which the transmission network processes the second WR and the WR of the target type submitted before the second WR.
  • the transmission network processes the first WR and the second WR in the order indicated by the target sending identifier.
  • the transmission network processing WR may include the transmission network performing a corresponding data transmission operation, and optionally, may also include the transmission network reporting the completion status of the data transmission operation. This application does not limit the specific process of the transmission network processing WR.
  • the transmission network may process WR with reference to the process shown in FIG. 3.
  • the transmission network performs the first data transmission operation and the second data transmission operation in the first order, and the transmission network reports the completion status of the first data transmission operation and the completion status of the second data transmission operation in the second order.
  • the first order is the order indicated by the target sending identifier
  • the second order is the order indicated by the target sending identifier.
  • the target sending identifier indicates that the first WR is processed first and the second WR is processed later, that is, the first WR and the second WR are processed in order.
  • the target sending identifier indicates that the second WR is processed first and the first WR is processed later.
  • the target sending identifier indicates that the first WR and the second WR are processed in parallel, for example, indicating that the first network card uses different processor cores to process the first WR and the second WR.
  • the target sending identifier indicates that the order between processing the first WR and processing the second WR is not limited.
  • step S1202 includes: the transmission network performs the first data transmission operation and the second data transmission operation in the order indicated by the target transmission identifier. For example, the transmission network first performs the first data transmission operation and then performs the second data transmission operation.
  • the transmission network performing a first data transmission operation may include: the first network card sends a first message carrying a first message to the second network card, and the second network card performs the first transmission operation after receiving the first message.
  • the transmission network performing a second data transmission operation may include: the first network card sends a second message carrying a second message to the second network card, and the second network card performs the second transmission operation after receiving the second message.
  • the first message carries the first message
  • the second message carries the second message.
  • step S1202 includes:
  • the first network card sends a first message and a second message to the second network card according to the execution order of the request end;
  • the second network card executes the first data transmission operation and the second data transmission operation in a default order.
  • the first network card sends the first message and the second message to the second network card according to the request end execution order, which can refer to the content of the above-mentioned steps S402 or S502 or S602 or S702 or S802.
  • This application does not limit the type of the default order.
  • step S1202 includes:
  • the first network card sends the first message and the second message to the second network card in a default order
  • the second network card executes the first data transmission operation and the second data transmission operation according to the execution order of the responding end.
  • the second network card may perform the first data transmission operation and the second data transmission operation according to the execution order of the responding end, and the contents of the above-mentioned steps S404, S504, S604, S704 or S804 may be referred to.
  • the present application does not limit the type of the default order.
  • the target sending identifier may indicate the order in which the first network card sends the first message and the second message to the second network card (i.e., the request end execution order), and instruct the first network card to encapsulate the target receiving identifier in the second message, and the target receiving identifier indicates the order in which the second network card executes the first data transmission operation and the second data transmission operation (i.e., the response end execution order).
  • step S1202 includes:
  • the first network card sends the first message and the second message to the second network card according to the execution order of the request end;
  • the second network card executes the first data transmission operation and the second data transmission operation according to the execution order of the responding end.
  • the target sending identifier and the target receiving identifier may be the same or different.
  • the execution order of the request end and the execution order of the response end may be the same or different.
  • step S1202 includes: the transmission network reports the order between the completion of the first data transmission operation and reporting the completion of the second data transmission operation in the order indicated by the target sending identifier. For example, the transmission network first reports the completion of the first data transmission operation, and then reports the completion of the second data transmission operation.
  • the transmission network reporting the completion status of the first data transmission operation and reporting the completion status of the second data transmission operation may include: the second network card reports the completion status of the first data transmission operation (called the first response end completion status) and the completion status of the second data transmission operation (called the second response end completion status) to the second node respectively, and the first network card reports the completion status of the first data transmission operation (called the first request end completion status) and the completion status of the second data transmission operation (called the second request end completion status) to the first node respectively.
  • step S1202 also includes:
  • the second network card reports the completion status of the first responder and the second responder to the second node in the order in which the responders complete the tasks.
  • the first network card reports the completion status of the first request end and the completion status of the second request end to the first node in a default order.
  • the second network card reports the first responder completion status and the second responder completion status to the second node according to the responder completion order.
  • the content of step S405, S505, S605, S705 or S805 described above can be referred to. This application does not limit the type of the default order.
  • step S1202 further includes:
  • the second network card reports the completion status of the first responder and the second responder to the second node in a default order
  • the first network card reports the completion status of the first request end and the completion status of the second request end to the first node according to the completion order of the request ends.
  • the first network card reports the completion status of the first request end and the completion status of the second request end to the first node according to the completion order of the request end, and the contents of steps S408, S508, S608, S708 or S808 described above may be referred to.
  • This application does not limit the type of the default order.
  • step S1202 further includes:
  • the second network card reports the completion status of the first responder and the second responder to the second node in the order in which the responders complete the tasks;
  • the first network card reports the completion status of the first request end and the completion status of the second request end to the first node according to the completion order of the request ends.
  • the target send identifier and the target receive identifier may be the same or different.
  • the request end execution order and the response end execution order may be the same or different.
  • the transmission network includes a first network card and a second network card
  • the first network card and the second network card can exchange data through a communication link.
  • the present application does not limit the method used by the first network card and the second network card to forward data.
  • the communication link can forward data between the first network card and the second network card through a multi-path transmission method.
  • FIG. 13 is a schematic diagram of the structure of a data processing device provided in an embodiment of the present application.
  • the data processing device 13 may be the above-mentioned transmission network or a network card in the transmission network.
  • the network card may be a network card of the first node, or the network card includes a first network card of the first node and a second network card of the second node.
  • the data processing device 13 includes an acquisition module 1301 and a processing module 1302.
  • the acquisition module 1301 is used to sequentially acquire a first work request WR and a second WR submitted by the first node.
  • the acquisition module 1301 sequentially acquires the first WR and the second WR submitted by the first node from the WQ.
  • the processing module 1302 is used to execute the method of step S1202, or to execute all or part of steps S402 to S408, or to execute all or part of steps S502 to S508, or to execute all or part of steps S602 to S608, or to execute all or part of steps S702 to S708, or to execute all or part of steps S802 to S808.
  • the two modules can transmit data to each other through a communication path.
  • the modules included in the data processing device 13 can be software modules, hardware modules, or partly software modules and partly hardware modules.
  • FIG. 14 is a schematic diagram of the structure of a data processing device provided in an embodiment of the present application.
  • the data processing device 14 may be the first node or host 1 or APP 1 mentioned above.
  • the data processing device 14 includes an interaction module 1401.
  • the interaction module 1401 is used to execute the method of the aforementioned step S1201, or execute the method of S401 or S501 or S601 or S701 or S801.
  • the data processing device 15 can be a first network card deployed on the first node.
  • the first network card can be the NIC 1 introduced above.
  • the data processing device 15 includes an acquisition module 1501 and a processing module 1502.
  • the acquisition module 1501 is used to sequentially acquire a first work request WR and a second WR submitted by the first node.
  • the acquisition module 1501 sequentially acquires the first WR and the second WR submitted by the first node from the WQ.
  • the processing module 1502 is used to execute the aforementioned step S12021A or S12021B or S12021C, or execute S402 or S502 or S602 or S702 or S802.
  • the processing module 1502 is also used to execute the aforementioned step S12023A or S12023B or S12023C, or execute S408 or S508 or S608 or S708 or S808.
  • the two modules can transmit data to each other via a communication path.
  • the modules included in the data processing device 15 can be software modules, hardware modules, or partly software modules and partly hardware modules.
  • the data processing device 16 may be a second network card deployed at a second node.
  • the second network card may be the NIC 2 described above.
  • the data processing device 16 includes a receiving module 1601 and a processing module 1602.
  • the receiving module 1601 is used to receive the first message and the second message sent by the first network card respectively.
  • the first network card, the first message and the second message can be understood by referring to the relevant contents in the method flow corresponding to the aforementioned FIG. 12.
  • the first network card is set at the first node
  • the first message carries the first message pointed to by the first work request WR
  • the second message carries the second message pointed to by the second WR.
  • the first WR and the second WR are submitted sequentially by the first node.
  • the first message indicates that a first data transmission operation is performed between the first node and the second node
  • the second message indicates that a second data transmission operation is performed between the first node and the second node.
  • the second message carries a target receiving identifier, and the target receiving identifier indicates the order in which the data processing device processes the first WR and the second WR.
  • the processing module 1602 is used to process the first message and the second message according to the order indicated by the target receiving identifier.
  • the processing module 1602 executes the aforementioned step S12022A or S12022B or S12022C, or executes S404 or S504 or S604 or S704 or S804.
  • the processing module 1602 is also used to execute the aforementioned step S12024A or S12024B or S12024C, or executes S405 or S505 or S605 or S705 or S805.
  • the processing module 1602 is also used to execute the aforementioned step S406 or S506 or S606 or S706 or S806.
  • the two modules can transmit data to each other via a communication link.
  • the modules included in the data processing device 16 can be software modules, hardware modules, or partly software modules and partly hardware modules.
  • the present application also provides a communication system.
  • the communication system includes the above-mentioned data processing device 13 and data processing device 14.
  • the communication system is a communication system applicable to the method flow corresponding to Figure 12 (for example, the communication system shown in Figure 1).
  • the communication system includes the above-mentioned data processing device 15 and data processing device 16.
  • the communication system includes the NIC 1 and NIC 2 introduced above, or includes the first network card and the second network card introduced above.
  • the communication system also includes the communication link introduced above.
  • the present application also provides a computing device.
  • the structure of the computing device can be shown in FIG2.
  • the memory of the computing device stores codes corresponding to the modules of any of the above-mentioned data processing devices, and the processor executes these codes to implement the functions of the modules of the corresponding data processing device and execute the method steps executed by the corresponding modules.
  • the present application also provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, some or all of the steps of any one of the above method embodiments can be implemented.
  • the computer-readable storage medium can be any available medium that can be accessed by a general-purpose or special-purpose computer.
  • the embodiment of the present application also provides a computer program, which includes instructions.
  • the computer program When the computer program is executed by a computer, the computer can execute some or all of the steps of any method embodiment.
  • the aforementioned computer-readable storage medium includes: a USB flash drive, a mobile hard disk, a magnetic disk, an optical disk, a RAM, an SSD, or a non-volatile memory, etc., which are non-transitory machine-readable media that can store program codes.
  • the disclosed device can be implemented in other ways.
  • the device embodiments described above are only schematic, and the division of the above units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored.
  • Another point is that the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, which may be electrical or other forms.
  • each functional unit in each embodiment of the present application may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units may be implemented in the form of hardware or in the form of software functional units.

Landscapes

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

Abstract

本申请实施例公开了一种数据处理方法及装置,用于在保证业务需求的情况下,充分利用传输网络的计算资源和网络资源,进而提高WR的处理效率。该方法包括:发送节点在向传输网络提交WR之前,根据业务需求确定该WR的保序级别,根据WR的保序级别向WR中添加发送标识,通过发送标识指示传输网络按照该保序级别处理该WR。从而在兼顾业务需求和WR的处理效率的情况下,寻求对WR的最优处理方案。

Description

一种数据处理方法及装置
本申请要求于2022年11月15日提交中国国家知识产权局、申请号为202211425454.4、发明名称为“一种数据处理方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,尤其涉及一种数据处理方法及装置。
背景技术
同一主机中的不同节点或不同主机中的不同节点均需要通过传输网络来交互数据,传输网络例如包括网卡和通信链路。为了降低节点开销,传输网络一般支持基于队列的点对点通信,即,当两个节点之间需要交互数据时,只需向网卡的工作队列(work queue,WQ)中提交工作请求(work request,WR),便可以指示网卡执行WR所指示的数据传输操作。
由于一些业务场景要求传输网络对WQ中的多个WR进行保序处理,即先处理在先提交的WR,后处理在后提交的WR。这样,传输网络需要互斥的执行多个WR,不利于充分利用传输网络的计算资源和网络资源,难以提高WR的处理效率。
发明内容
本申请提供一种数据处理方法及装置,用于在保证业务需求的情况下,充分利用传输网络的计算资源和网络资源,进而提高WR的处理效率。
第一方面,本申请提供一种数据处理方法,应用于通信系统,所述通信系统包括第一节点、第二节点和传输网络,所述传输网络用于在所述第一节点和所述第二节点之间转发数据,所述方法包括:所述传输网络依次获取所述第一节点提交的第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和所述第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,并且,所述第二WR携带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序;所述传输网络按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR。
由于传输网络可以识别目标发送标识所指示的保序级别(即处理当前WR和前序WR之间的顺序),因此,有利于用户(例如第一节点)根据自身业务对保序级别的需求,向WR中添加代表相应保序级别的发送标识,这样,有利于在兼顾业务需求和WR的处理效率的情况下,优化对WR的处理方案。
假设所述传输网络按照目标发送标识所指示的顺序处理所述第一WR和所述第二WR的过程中,所述传输网络按照第一顺序执行所述第一数据传输操作和所述第二数据传输操作,所述传输网络按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
可选的,所述第一顺序为所述目标发送标识所指示的顺序,和/或,所述第二顺序为所述目标发送标识所指示的顺序。
当目标发送标识指示第一顺序和第二顺序时,本申请不限定第一顺序和第二顺序相同。在一些示例中,目标发送标识所指示的第一顺序和第二顺序可以相同或不同。
这样,目标发送标识可以作用于控制处理WR的单个或多个子流程,这有利于在更精细的粒度上兼顾业务需求和WR的处理效率,进一步优化对WR的处理方案。
可选的,所述传输网络包括与所述第一节点相连的第一网卡和与所述第二节点相连的第二网卡。这样,传输网络不仅可以在单个主机中不同部件间的通信中支持保序级别的自定义,还可以支持在不同主机间的通信中支持保序级别的自定义。
可选的,所述第一顺序包括请求端执行顺序和响应端执行顺序。所述传输网络按照第一顺序执行所述第一数据传输操作和所述第二数据传输操作的过程中,所述第一网卡按照所述请求端执行顺序向所述第二网卡发送第一报文和第二报文,所述第一报文携带所述第一消息,所述第二报文携带所述第二消息;所述第二网卡按照所述响应端执行顺序执行所述第一数据传输操作和所述第二数据传输操作。
可选的,所述请求端执行顺序为所述目标发送标识所指示的顺序,和/或,所述响应端执行顺序为所述第一网卡根据所述目标发送标识封装在所述第二报文中的目标接收标识所指示的顺序。当响应端执行顺序为目标接收标识所指示的顺序,并且,请求端执行顺序为目标发送标识所指示的顺序时,二者可 以相同也可以不同。
由于目标接收标识为第一网卡根据目标发送标识封装在第二报文中的,因此,相当于目标发送标识指示第二网卡执行数据传输操作的顺序。目标发送标识可以作用于请求端和/或响应端执行数据传输操作的过程,这有利于在更精细的粒度上兼顾业务需求和WR的处理效率,进一步优化对WR的处理方案。
可选的,所述第二顺序包括请求端完成顺序和响应端完成顺序。所述传输网络按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况的过程中,所述第二网卡按照响应端完成顺序向所述第二节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况,所述第一网卡按照请求端完成顺序向所述第一节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
可选的,所述请求端完成顺序为所述目标发送标识所指示的顺序,和/或,所述响应端完成顺序为所述第一网卡根据所述目标发送标识封装在所述第二报文中的目标接收标识所指示的顺序。当响应端完成顺序为目标接收标识所指示的顺序,并且,请求端完成顺序为目标发送标识所指示的顺序时,二者可以相同也可以不同。
由于目标接收标识为第一网卡根据目标发送标识封装在第二报文中的,因此,相当于目标发送标识指示第二网卡上报完成情况的顺序。目标发送标识可以作用于请求端和/或响应端执行上报完成情况的过程,这有利于在更精细的粒度上兼顾业务需求和WR的处理效率,进一步优化对WR的处理方案。
第二方面,本申请提供一种数据处理方法,应用于通信系统,所述通信系统包括第一节点、第二节点和传输网络,所述传输网络用于在所述第一节点和所述第二节点之间转发数据,所述方法包括:所述第一节点依次向所述传输网络提交第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和所述第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,所述第二WR携带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序。
可选的,假设所述传输网络按照目标发送标识所指示的顺序处理所述第一WR和所述第二WR的过程中,所述传输网络按照第一顺序所述第一数据传输操作和所述第二数据传输操作,所述传输网络按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
可选的,目标发送标识指示所述第一顺序和/或所述第二顺序。
可选的,所述传输网络包括与所述第一节点相连的第一网卡和与所述第二节点相连的第二网卡。
所述第一顺序包括请求端执行顺序和响应端执行顺序。所述传输网络按照第一顺序执行所述第一数据传输操作和所述第二数据传输操作的过程中,所述第一网卡按照所述请求端执行顺序向所述第二网卡发送第一报文和第二报文,所述第一报文携带所述第一消息,所述第二报文携带所述第二消息;所述第二网卡按照所述响应端执行顺序执行所述第一数据传输操作和所述第二数据传输操作。
可选的,所述目标发送标识指示所述请求端执行顺序,和/或,指示第一网卡向携带第二消息的第二报文中封装目标接收标识,目标接收标识指示所述接收端执行顺序。
可选的,所述第二顺序包括请求端完成顺序和响应端完成顺序。所述传输网络按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况的过程中,所述第二网卡按照响应端完成顺序向所述第二节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况,所述第一网卡按照请求端完成顺序向所述第一节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
可选的,所述目标发送标识指示所述请求端执行顺序,和/或,指示第一网卡向携带第二消息的第二报文中封装目标接收标识,目标接收标识指示所述接收端完成顺序。
第三方面,本申请提供一种数据处理方法,应用于通信系统,所述通信系统包括第一节点、第二节点和传输网络,所述传输网络用于在所述第一节点和所述第二节点之间转发数据,所述方法包括:所述第一节点依次向所述传输网络提交第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和所述第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,所述第二WR携带目标发 送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序;所述传输网络按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR。
假设所述传输网络按照目标发送标识所指示的顺序处理所述第一WR和所述第二WR的过程中,所述传输网络按照第一顺序所述第一数据传输操作和所述第二数据传输操作,所述传输网络按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
可选的,所述第一顺序为所述目标发送标识所指示的顺序,和/或,所述第二顺序为所述目标发送标识所指示的顺序。
当目标发送标识指示第一顺序和第二顺序时,本申请不限定第一顺序和第二顺序相同。在一些示例中,目标发送标识所指示的第一顺序和第二顺序可以相同或不同。
可选的,所述传输网络包括与所述第一节点相连的第一网卡和与所述第二节点相连的第二网卡。
可选的,所述第一顺序包括请求端执行顺序和响应端执行顺序。所述传输网络按照第一顺序执行所述第一数据传输操作和所述第二数据传输操作的过程中,所述第一网卡按照所述请求端执行顺序向所述第二网卡发送第一报文和第二报文,所述第一报文携带所述第一消息,所述第二报文携带所述第二消息;所述第二网卡按照所述响应端执行顺序执行所述第一数据传输操作和所述第二数据传输操作。
可选的,所述请求端执行顺序为所述目标发送标识所指示的顺序,和/或,所述响应端执行顺序为所述第一网卡根据所述目标发送标识封装在所述第二报文中的目标接收标识所指示的顺序。当响应端执行顺序为目标接收标识所指示的顺序,并且,请求端执行顺序为目标发送标识所指示的顺序时,二者可以相同也可以不同。
可选的,所述第二顺序包括请求端完成顺序和响应端完成顺序。所述传输网络按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况的过程中,所述第二网卡按照响应端完成顺序向所述第二节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况,所述第一网卡按照请求端完成顺序向所述第一节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
可选的,所述请求端完成顺序为所述目标发送标识所指示的顺序,和/或,所述响应端完成顺序为所述第一网卡根据所述目标发送标识封装在所述第二报文中的目标接收标识所指示的顺序。当响应端完成顺序为目标接收标识所指示的顺序,并且,请求端完成顺序为目标发送标识所指示的顺序时,二者可以相同也可以不同。
第四方面,本申请提供一种数据处理方法,应用于通信系统,所述通信系统包括第一节点、第二节点和传输网络,所述传输网络用于在所述第一节点和所述第二节点之间转发数据,所述传输网络包括与所述第一节点相连的第一网卡和与所述第二节点相连的第二网卡,所述方法包括:所述第一网卡依次获取所述第一节点提交的第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和所述第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,并且,所述第二WR携带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序;所述第一网卡按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR。
可选的,所述第一网卡按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR,包括:所述第一网卡按照所述目标发送标识所指示的顺序向所述第二网卡发送第一报文和第二报文,所述第一报文携带所述第一消息,所述第二报文携带所述第二消息,和/或,所述第一网卡在所述第二报文中携带目标接收标识,所述目标接收标识指示所述第二网卡执行所述第一数据传输操作和所述第二数据传输操作的顺序。
可选的,所述第一网卡按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR包括:所述第一网卡按照所述目标发送标识所指示的顺序向所述第一节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况,和/或,所述第一网卡在所述第二报文中携带目标接收标识,所述目标接收标识指示所述第二网卡按照所述目标发送标识所指示的顺序向所述第二节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
第五方面,本申请提供一种数据处理方法,应用于通信系统,所述通信系统包括第一节点、第二节点和传输网络,所述传输网络用于在所述第一节点和所述第二节点之间转发数据,所述传输网络包括第一网卡和第二网卡,所述方法包括:所述第二网卡分别接收所述第一网卡发送的第一报文和第二报文,所述第一报文携带第一工作请求WR指向的第一消息,所述第二报文携带第二WR指向的第二消息,所述第一WR和所述第二WR为所述第一节点依次提交的,所述第一消息指示在所述第一节点和所述第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,所述第二报文携带目标接收标识,所述目标接收标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序;所述第二网卡根据所述目标接收标识所指示的顺序处理所述第一消息和所述第二消息。
可选的,所述第二网卡按照所述目标接收标识所指示的顺序执行所述第一数据传输操作和所述第二数据传输操作,和/或,所述第二网卡按照所述目标接收标识所指示的顺序向所述第二节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
第六方面,本申请提供一种数据处理装置,包括:获取模块,用于依次获取第一节点提交的第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,并且,所述第二WR携带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序;处理模块,用于按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR。
可选的,所述处理模块具体用于:按照第一顺序执行所述第一数据传输操作和所述第二数据传输操作;按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况;其中,所述第一顺序为所述目标发送标识所指示的顺序,和/或,所述第二顺序为所述目标发送标识所指示的顺序。
可选的,所述处理装置包括与所述第一节点相连的第一网卡和与所述第二节点相连的第二网卡。所述第一顺序包括请求端执行顺序和响应端执行顺序。
可选的,所述第一网卡用于按照所述请求端执行顺序向所述第二网卡发送第一报文和第二报文,所述第一报文携带所述第一消息,所述第二报文携带所述第二消息;所述第二网卡用于按照所述响应端执行顺序执行所述第一数据传输操作和所述第二数据传输操作。
可选的,所述第二顺序包括请求端完成顺序和响应端完成顺序,所述第二网卡用于按照所述响应端完成顺序向所述第二节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况;所述第一网卡用于按照所述请求端完成顺序向所述第一节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况;所述请求端完成顺序为所述目标发送标识所指示的顺序,和/或,所述响应端完成顺序为所述第一网卡根据所述目标发送标识封装在所述第二报文中的目标接收标识所指示的顺序。
第七方面,本申请提供一种数据处理装置,包括:交互模块,用于依次向传输网络提交第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述数据处理装置和第二节点之间执行第一数据传输操作,所述第二消息指示在所述数据处理装置和所述第二节点之间执行第二数据传输操作,所述第二WR携带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序。
可选的,假设所述传输网络按照目标发送标识所指示的顺序处理所述第一WR和所述第二WR的过程中,所述传输网络按照第一顺序所述第一数据传输操作和所述第二数据传输操作,所述传输网络按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
可选的,目标发送标识指示所述第一顺序和/或所述第二顺序。
可选的,所述传输网络包括与所述第一节点相连的第一网卡和与所述第二节点相连的第二网卡。
所述第一顺序包括请求端执行顺序和响应端执行顺序。所述传输网络按照第一顺序执行所述第一数据传输操作和所述第二数据传输操作的过程中,所述第一网卡按照所述请求端执行顺序向所述第二网卡 发送第一报文和第二报文,所述第一报文携带所述第一消息,所述第二报文携带所述第二消息;所述第二网卡按照所述响应端执行顺序执行所述第一数据传输操作和所述第二数据传输操作。
可选的,所述目标发送标识指示所述请求端执行顺序,和/或,指示第一网卡向携带第二消息的第二报文中封装目标接收标识,目标接收标识指示所述接收端执行顺序。
可选的,所述第二顺序包括请求端完成顺序和响应端完成顺序。所述传输网络按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况的过程中,所述第二网卡按照响应端完成顺序向所述第二节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况,所述第一网卡按照请求端完成顺序向所述第一节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
可选的,所述目标发送标识指示所述请求端执行顺序,和/或,指示第一网卡向携带第二消息的第二报文中封装目标接收标识,目标接收标识指示所述接收端完成顺序。
第八方面,本申请提供一种数据处理装置,所述数据处理装置设置于第一节点,所述数据处理装置包括:获取模块,用于依次获取所述第一节点提交的第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,并且,所述第二WR携带目标发送标识,所述目标发送标识指示传输网络处理所述第一WR和所述第二WR之间的顺序,所述传输网络包括所述数据处理装置和设置于所述第二节点的第二网卡;处理模块,用于按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR。
可选的,所述处理模块用于:按照所述目标发送标识所指示的顺序向所述第二网卡发送第一报文和第二报文,所述第一报文携带所述第一消息,所述第二报文携带所述第二消息,和/或,所述第一网卡在所述第二报文中携带目标接收标识,所述目标接收标识指示所述第二网卡执行所述第一数据传输操作和所述第二数据传输操作的顺序。
可选的,所述处理模块用于,按照所述目标发送标识所指示的顺序向所述第一节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况,和/或,在所述第二报文中携带目标接收标识,所述目标接收标识指示所述第二网卡按照所述目标发送标识所指示的顺序向所述第二节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
第九方面,本申请提供一种数据处理装置,所述数据处理装置设置于第二节点,所述数据处理装置包括:接收模块,用于分别接收第一网卡发送的第一报文和第二报文,所述第一网卡设置于所述第一节点,所述第一报文携带第一工作请求WR指向的第一消息,所述第二报文携带第二WR指向的第二消息,所述第一WR和所述第二WR为所述第一节点依次提交的,所述第一消息指示在所述第一节点和第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,所述第二报文携带目标接收标识,所述目标接收标识指示所述数据处理装置处理所述第一WR和所述第二WR;处理模块,用于根据所述目标接收标识所指示的顺序处理所述第一消息和所述第二消息。
可选的,所述处理模块用于:按照所述目标接收标识所指示的顺序执行所述第一数据传输操作和所述第二数据传输操作,和/或,按照所述目标接收标识所指示的顺序向所述第二节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况。
第十方面,本申请提供一种通信系统,包括如第六方面所述的数据处理装置和如第七方面所述的数据处理装置,或者,包括如第八方面所述的数据处理装置和如第九方面所述的数据处理装置。
第十一方面,本申请提供一种计算设备,包括存储器和处理器,所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述计算设备能够执行第一方面至第五方面中任一方面或其任一方面的任一种可能的实现方式所描述的方法。
第十二方面,本申请提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,该程序由计算机执行时,使得所述计算机能够执行第一方面至第五方面中任一方面或其任一方面的任一种可能的实现方式所描述的方法。
由于本申请提供的各装置可用于执行前述对应的方法,因此本申请各装置所能获得到的技术效果可 参考前述对应的方法所获得的技术效果,此处不再赘述。
附图说明
图1示意性示出通信系统一种可能的结构;
图2示意性示出计算设备一种可能的结构;
图3示意性示出主机1向主机2发送消息一种可能的流程;
图4示出数据处理方法一种可能的示意图;
图5示意性示出本申请数据处理方法另一种可能的流程;
图6示意性示出本申请数据处理方法另一种可能的流程;
图7示意性示出本申请传输网络对多个WR一种可能的处理流程;
图8示意性示出本申请数据处理方法另一种可能的流程;
图9示意性示出本申请各保序标识所指示的需要保序的子处理流程;
图10示意性示出主机1提交WR的过程;
图11示意性示出用于配置预设规则的配置接口一种可能的形式;
图12示意性示出本申请数据处理方法另一种可能的流程;
图13至图16分别示意性示出本申请数据处理装置的可能结构。
具体实施方式
下面,首先对本申请的应用场景进行举例介绍。
图1示意性示出一种通信系统。参考图1,该通信系统包括主机1、主机2和传输网络。传输网络用于将主机1的数据传输至主机2,或者,用于将主机2的数据传输至主机1。
参考图1,传输网络可以基于网络传输协议在主机1和主机2之间转发数据。传输网络包括设置于主机1上的网卡或网络适配器(network interface card,NIC)1和设置于主机2上的网卡或NIC 2。NIC 1和NIC 2之间建立有通信链路,NIC 1将主机1的数据通过该通信链路发送给NIC 2,由NIC 2发送给主机2,或者,NIC 2将主机2的数据通过该通信链路发送给NIC 1,由NIC 1发送给主机1。该通信链路可以为有线链路或无线链路,可选的,该通信链路可以包括一个或多个网络设备,一个或多个网络设备可以包括集线器、网关和路由器中的至少一种。图1示意性示出该通信链路中的两个网络设备(分别为网络设备1和网络设备2)。
需要说明的是,图1所示通信系统可以包括更多的设置,例如,该通信系统可以包括更多主机,主机1和主机2可以为该通信系统中的任意两个主机。
可选的,图1所示的设备可以为物理设备或物理设备上运行的虚拟设备,例如,主机1和主机2可以为物理设备或物理设备上运行的虚拟设备,NIC 1和NIC 2可以为物理设备或物理设备上运行的虚拟设备。
上述物理设备可以为计算设备,图2示意性示出该计算设备一种可能的结构。参考图2,该计算设备可以包括:处理器、通信接口以及存储器,处理器、通信接口以及存储器通过内部总线相互连接。其中,处理器可以由一个或者多个通用处理器构成,例如中央处理器(central processing unit,CPU),或者CPU和硬件芯片的组合。
上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
其中,存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)或为双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR SDRAM);存储器还可以包括上述种类的组合。其中,DDR SDRAM可以简称为DDR。该存储器可以作为计算设备的内存或缓存使用。缓存可以为一级或多级缓存,例如,可以采用寄存器和/或静 态随机存取存储器(static random access memory,SRAM)实现。
处理器可以通过执行存储器中的代码实现NIC 1或NIC 2功能。或者,存储器可以存储系统应用和/或应用进程的代码,处理器执行这些代码可以实现主机1或主机2的CPU核心和/或进程的功能。例如,主机1中的CPU可以通过执行存储器中的指令,运行应用程序(application program,APP)1,类似的,主机2中的CPU可以通过执行存储器中的指令,运行APP 2。前文介绍的主机产生的消息可以指主机运行的APP产生该消息,主机接收消息可以指主机运行的APP接收该消息。
NIC 1和NIC 2可以为主机1和主机2创建数据传输通道(channel)和相应的工作队列(work queue,WQ)。在一些示例中,该WQ可以为队列对(queue pair,QP)。之后,NIC 1和NIC 2可以基于WQ在数据传输通道中为主机1和主机2交互数据。具体的,主机1可以向WQ中提交工作请求(work request,WR),WR指向的数据传输消息指示在主机1和主机2之间执行某种数据传输操作。传输网络在处理WR的过程中,执行相应数据传输操作(简称执行WR),并通知主机(例如包括主机1和/或主机2)该数据传输操作(或WR)的完成情况(简称完成WR)。也就是说,传输网络处理WR包括传输网络执行WR和完成WR。
以传输网络包括NIC 1和NIC 2为例,传输网络处理WR包括NIC 1处理WR和NIC 2处理WR。任一NIC处理WR包括:该NIC执行WR和该NIC完成WR。
可选的,NIC 1和NIC 2可以为主机1和主机2创建完成队列(complete queue,CQ),通过向CQ中提交完成队列元素(CQ element,CQE),来通知主机WR的完成情况。
本申请不限定消息所指示的数据传输操作(简称操作)的类型,例如,该操作可以为写(write)操作或读(read)操作或发送(send)操作或原子(atomic)操作等。
在一些示例中,该消息可以为远程直接内存访问(remote direct memory access,RDMA)消息,相应的,上述NIC可以为RDMA NIC(简称RNIC)。
本申请以主机1为请求端,主机2为响应端为例,在一些示例中,主机2也可以作为请求端使用,主机也可以作为响应端使用。后文,继续以主机1和主机2分别为请求端和响应端为例,介绍主机1和主机2之间交互数据的过程。
图3示意性示出主机1向主机2发送消息一种可能的流程。参考图3,该流程可以包括步骤S301至S308。
S301、主机1向NIC 1提交WR 0;
NIC 1可以为主机1创建WQ,主机1可以向WQ中提交WR 0。假设WR 0指向的消息0用于指示在主机1和主机2之间执行数据传输操作0。
本申请不限定NIC 1为主机1创建的WQ的数量,在一些示例中,NIC 1为主机1中的不同进程创建不同的WQ。该进程可以为应用进程或系统进程。
本申请不限定主机1向WQ中提交WR 0的具体方式,在一些示例中,应用进程通过通信中间件向NIC 1为该应用进程创建的WQ中提交WR 0。
主机1向WQ中提交WR 0后,传输网络可以通过如下步骤S302~S308的流程来处理WR 0。
S302、NIC 1向通信链路发送报文0;
NIC 1可以从WQ中读取WR 0,获取WR 0指向的消息0,之后执行数据传输操作0。可选的,NIC 1执行数据传输操作0可以包括:NIC 1将消息0封装为报文0,向通信链路发送报文0。
在一些示例中,NIC 1将消息0切分为多个分片消息(简称分片),分别将每个分片封装为报文(称作分片报文),之后发送多个分片报文。
S303、通信链路将报文0转发至NIC 2;
S304、NIC 2执行数据传输操作0;
NIC 2接收到报文0后,可以获取报文0携带的消息0,执行消息0所指示的数据传输操作0。以消息0为写消息为例,NIC 2执行数据传输操作0可以包括:NIC 2将消息0中的数据写入主机2。以消息0为读消息为例,NIC 2执行数据传输操作0可以包括:NIC 2从主机2中获取消息0所指示的数据,之后将获取到的数据通过NIC 1发送给主机1。
S305、NIC 2向主机2上报数据传输操作0的完成情况;
NIC 2执行数据传输操作0后,可以上报数据传输操作0的完成情况。可选的,NIC 2通过向主机2的CQ中提交CQE来上报数据传输操作0的完成情况。该CQE所指示的完成情况可以指示数据传输操作0成功或失败。例如,该完成情况指示主机2已成功接收该消息0,或已成功将消息0写入主机2,或未接收到该消息0,或该消息0写入失败等。
本申请不限定NIC 2为主机2创建的CQ的数量,在一些示例中,NIC 2为主机2中的不同进程创建不同的CQ。该进程可以为应用进程或系统进程。
本申请不限定NIC 2向CQ中提交CQE的具体方式,在一些示例中,NIC 2向主机2中某个进程的CQ中提交CQE。
S306、NIC 2向NIC 1发送应答报文0;
在S304或S305之后,NIC 2可以向NIC 1发送应答报文0。该应答报文0指示数据传输操作0的完成情况。该完成情况可以指示数据传输操作0成功或失败。例如,该完成情况指示主机2已成功接收该消息0,或已成功将消息0写入主机2,或未接收到该消息0,或该消息0写入失败等。
S307、通信链路将应答报文0转发至NIC 1;
S308、NIC 1向主机1上报数据传输操作0的完成情况。
NIC 1接收到应答报文0后,可以根据应答报文0向主机1上报数据传输操作0的完成情况。可选的,NIC 1通过向主机1的CQ中提交CQE来上报数据传输操作0的完成情况。该CQE所指示的完成情况可以指示数据传输操作0成功或失败。例如,该完成情况指示主机2已成功接收该消息0,或已成功将消息0写入主机2,或主机2未接收到该消息0,或该消息0写入失败等。
本申请不限定NIC 1为主机1创建的CQ的数量,在一些示例中,NIC 1为主机1中的不同进程创建不同的CQ。该进程可以为应用进程或系统进程。
本申请不限定NIC 1向CQ中提交CQE的具体方式,在一些示例中,NIC 1向主机1中某个进程的CQ中提交CQE。
需要说明的是,步骤S306和S307为可选步骤,例如,当NIC 1预设时长内未接收到应答报文0时,可以向主机1上报数据传输操作0失败。
主机1一般需要向WQ中依次提交多个WR。传输网络可以按照S302~S308的流程分别处理每个WR。由于一些业务场景的业务需求要求传输网络对主机1提交的多个WR进行保序处理,因此,传输网络需要保证先处理在先提交的WR,后处理在后提交的WR。
假设主机1依次向WR中提交WR 1和WR 2,WR 1和WR 2分别指向消息1和消息2,消息1和消息2分别指示在主机1和主机2之间执行数据传输操作1和数据传输操作2。那么,在步骤S302中,NIC 1需要依次执行数据传输操作1和数据传输操作2。在步骤S303中,通信链路需要按照先发先到的原则,依次将报文1和报文2转发至NIC 2。在S304中,NIC 2需要按照报文中报文次序标识的顺序依次执行数据传输操作1和数据传输操作2。在S305中,NIC 2依次上报数据传输操作1的完成情况和数据传输操作2的完成情况。在S308中,NIC 1依次上报数据传输操作1的完成情况和数据传输操作2的完成情况。
可选的,报文次序标识可以为数据包序列号(packet sequence number,PSN)。在一些示例中,NIC 2可以根据PSN检测丢包情况,当检测到丢包时,NIC 2可以将丢失的报文及后面的报文全部重传,以保证按照报文中PSN的顺序依次接收。当NIC 2未检测到丢包时,可以按照PSN的顺序(例如从小到大的顺序)执行报文。
在一些业务场景下,例如,对于简单累加求和而不涉及到顺序的业务场景,其业务需求并不要求传输网络对多个WR进行保序处理。为了实现对多个WR的保序处理,NIC 1需要针对多个WR互斥的执行S302和S308,NIC 2需要针对多个WR互斥的执行S304~S306,处理效率低。此外,通信链路为了保证报文的先发先达,难以充分利用网络带宽,不利于减少报文的传输时延。
为了解决上述问题,本申请提供一种数据处理方法,该方案的思路为:主机1在提交WR 2之前, 根据业务需求确定该WR 2的保序需求,根据WR 2的保序需求向提交的WR 2中添加相应的发送标识,通过发送标识指示传输网络按照该保序需求处理该WR 2。可选的,用户可以预先配置多种保序需求,为每个保序需求关联一个发送标识,得到一个发送标识集合。相应的,主机1可以根据WR 2的保序需求从发送标识集合中选取关联的发送标识,添加至WR 2中。
可选的,保序需求支持用户配置一个或多个保序参数。可选的,WR 2的保序需求指示WR 2的保序级别。可选的,保序级别支持用户配置。
可选的,保序级别指示指示传输网络处理该WR之前的一个或多个WR(称作WR 1)和WR 2的顺序。以在兼顾业务需求和WR的处理效率的情况下,寻求对多个WR的最优处理方案。
以A代表执行主体,以b和c代表A所执行的操作。可选的,A执行b和c的顺序,可以指示,A先执行b,执行完b之后,再执行c。或者,A执行b和c的顺序,可以指示,A先执行c,执行完c之后,再执行b。或者,A执行b和c的顺序,可以指示,A并行的执行b和c,例如,可以指示A使用不同的处理器核心来执行b和c,不限定执行b和执行c之间的先后顺序。例如,A代表传输网络,b和c分别代表处理WR 1和处理WR 2。
或者,可选的,保序级别指示保序的处理WR 2或不保序的处理WR 2。其中,保序的处理WR 2指示先处理WR 2,之后处理WR 1。其中,不保序的处理WR 2指示对WR 2的处理无需等待WR 1处理完才开始,或者,不限定WR 1和WR 2之间的处理顺序,例如,可以并行的处理WR 1和WR 2。后文以保序级别指示保序或不保序为例。
可选的,保序需求还指示保序级别作用的过程(称作保序过程)。可选的,保序过程支持用户配置。
基于前文介绍的,传输网络处理WR包括执行WR和完成WR这两个过程。在一些示例中,保序需求指示的保序过程为执行WR的过程或完成WR的过程,未指示的过程可以认为按照默认保序级别(或顺序)进行处理。在一些示例中,保序需求指示的保序过程包括上述两个过程,保序需求所指示的保序级别可以包括这两个过程的保序级别。例如,保序需求指示在执行WR的过程中保序级别为保序,在完成WR的过程中保序级别为不保序。综上,通过在保序需求中添加保序过程这一配置项,有利于用户根据业务需求将不同过程设置为相同或不同保序级别,以在兼顾业务需求和WR的处理效率的情况下,更大限度的寻求对多个WR的最优处理方案。
可选的,保序需求还指示保序级别作用的执行主体(称作保序对象)。可选的,保序对象支持用户配置。
基于前文介绍的,当传输网络包括NIC 1和NIC 2时,传输网络处理WR包括NIC 1处理WR和NIC 2处理WR。在一些示例中,保序需求指示的保序对象为NIC 1或NIC 2,未指示的对象可以认为按照默认保序级别(或顺序)进行处理。在一些示例中,保序需求指示的保序对象包括上述两个对象,保序需求所指示的保序级别可以包括这两个过程的保序级别。例如,保序需求指示NIC 1在处理WR的过程中保序级别为保序,NIC 2在处理WR的过程中保序级别为不保序。综上,通过在保序需求中添加保序对象这一配置项,有利于用户根据业务需求将不同对象设置为相同或不同保序级别,以在兼顾业务需求和WR的处理效率的情况下,更大限度的寻求对多个WR的最优处理方案。
可选的,保序需求包括上述三种保序参数,这三种保序参数均支持用户配置。这样,有利于用户根据业务需求将相同对象的不同过程配置为相同或不同保序级别,或者,将不同对象的相同过程配置为相同或不同保序级别,以在兼顾业务需求和WR的处理效率的情况下,更大限度的寻求对多个WR的最优处理方案。
下面介绍基于上述思路所提供的数据处理方法。
在一些示例中,上述发送标识集合包括第一发送标识(记为no-order或n-o)。第一发送标识指示第一保序需求,第一保序需求指示在任一对象(NIC1或NIC2)的任一过程(执行WR或完成WR的过程)中均不保序。假设WR 2对应的保序需求为第一保序需求,该数据处理方法可以包括步骤S401至S408。
S401、主机1依次向WQ中提交WR 1和WR 2;
主机1依次向WQ中提交WR 1和WR 2。主机1向WQ中提交WR可以指,APP 1向WQ中提交WR。
本申请不限定主机1或APP 1向WQ中提交WR的方式,可选的,主机1或APP 1通过通信中间件向 WQ中提交WR。WR 1和WR 2分别携带第一发送标识。
可选的,WR至少包括消息域和保序域(或称保序能力字段)。
消息域用于指示NIC获取待发送的消息。假设,WR 1和WR 2的消息域所指示的消息分别为消息1和消息2。消息1和消息2分别指示数据传输操作1和数据传输操作2。
保序域指示发送标识。假设,WR 1和WR 2中的保序域分别指示第一发送标识。
S402、当NIC 1识别到WR 2中的第一发送标识时,NIC 1并行的执行数据传输操作1和数据传输操作2;
本申请将NIC 1根据WR 1发送的报文称作报文1,将NIC 1根据WR 2发送的报文称作报文2。在一些示例中,报文1和/或报文2分别包括多个分片报文。
虽然在WQ中,WR 1的次序先于WR 2的次序,但是,当NIC 1识别到WR 2中的第一发送标识时,NIC 1可以并行的执行数据传输操作1和数据传输操作2,这样有利于提高NIC 1对WR 2的处理效率。
在一些示例中,NIC 1可以包括多个处理器核心(core),NIC 1可以通过多个处理器核心并行处理WR 1和WR 2。
NIC 1可以根据WR 1中的第一发送标识向报文1中添加第一接收标识,根据WR 2中的第一发送标识向报文2中添加第一接收标识。第一发送标识与第一接收标识可以相同,也可以不同。后文以第一发送标识与第一接收标识相同为例。
S403、通信链路分别将报文1和报文2转发至NIC 2;
为了提高传输效率,可选的,通信链路可以分别将报文1和报文2转发至NIC 2。
可选的,NIC 1可以分别向报文1和报文2中添加多路径传输标识,多路径传输标识指示通信链路采用多路径传输方式分别传输报文1和报文2。通信链路在识别到报文1和报文2中的多路径传输标识后,通过多路径传输方式将报文1和报文2转发至NIC 2。
S404、当NIC 2识别到报文2中的第一发送标识时,NIC 2并行的执行数据传输操作1和数据传输操作2;
报文中一般携带WR次序标识,WR次序标识指示报文对应的WR的次序。报文1中的WR次序标识和报文2中的WR次序标识用于确定主机1提交WR 1和WR 2的先后顺序,或者,用于确定WR 1和WR 2在WQ中的先后顺序。例如,报文1携带的WR次序标识指示WR 1的次序为1,报文2携带的WR次序标识指示WR 2的次序为2。
虽然NIC 2根据报文2的WR次序标识可以确定报文2对应的WR 2的次序晚于报文1对应的WR 1,但是,当NIC 2识别到报文2中的第一发送标识时,NIC 2可以并行的执行数据传输操作1和数据传输操作2,这样有利于提高NIC 2对报文2的处理效率。
在一些示例中,NIC 2可以包括多个处理器核心(core),NIC 2可以通过多个处理器核心并行对报文1和报文2执行接收处理。
S405、NIC 2并行的向主机2上报数据传输操作1的完成情况1和数据传输操作2的完成情况2;
NIC 2接收到报文1后,或执行数据传输操作1后,可以产生CQE 1,将CQE 1上送主机2的CQ。NIC 2接收到报文2后,或对报文2执行接收处理后,可以产生CQE 2,将CQE 2上送主机2的CQ。可选的,NIC 2可以并行的上报CQE 1和CQE 2。
S406、NIC 2分别发送应答报文1和应答报文2;
NIC 2对报文1执行接收处理后,或者,上报CQE 1后,可以向NIC 1发送应答报文1。类似的,NIC 2对报文2执行接收处理后,或者,上报CQE 2后,可以向NIC 1发送应答报文2。
本申请不限定NIC 2发送应答报文1和应答报文2的先后顺序,例如,NIC 2可以并行的发送应答报文1和应答报文2。
S407、通信链路分别将应答报文1和应答报文2转发至NIC 1;
为了提高传输效率,可选的,通信链路可以通过多路径传输方式,分别将应答报文1和应答报文2转发至NIC 1。
可选的,NIC 2可以分别向应答报文1和应答报文2中添加多路径传输标识,多路径传输标识指示 通信链路采用多路径传输方式分别传输应答报文1和应答报文2。通信链路在识别到应答报文1和应答报文2中的多路径传输标识后,通过多路径传输方式将应答报文1和应答报文2转发至NIC 1。
S408、NIC 1分别向主机1上报数据传输操作1的完成情况1和数据传输操作2的完成情况2。
本申请不限定S408的完成情况1与S405的完成情况1相同,也不限定S408的完成情况2与S405的完成情况2相同。
NIC 1接收到应答报文1后,可以根据应答报文1上报WR 1的请求端完成通告(记为CQE 1’)。类似的,NIC 1接收到应答报文2后,可以根据应答报文2上报WR 2的请求端完成通告(记为CQE 2’)。
可选的,NIC 1可以并行的上报CQE 1’和CQE 2’。这样有利于提高CQE的上报效率。
S401~S408对应的流程有利于在请求端实现数据传输操作1和数据传输操作2的并行执行和并行确认,在响应端实现数据传输操作1和数据传输操作2的并行执行和并行确认,从而有利于在请求端和响应端实现数据传输操作的高效处理。并且,有利于在通信链路实现消息1和消息2的多路径传输,有利于提高网络带宽的利用率,减少消息的传输时延。
图4示意性示出上述数据处理方法一种可能的示意图。参考图4,事务1和事务2分别代表WR 1对应的数据传输事务和WR 2对应的数据传输事务,UQ 0代表APP 1的用户队列(user queue,UQ),通道0代表NIC 1和NIC 2之间建立的数据传输通道,SRQ 0代表NIC 2创建的共享接收队列(shared receive queue,SRQ),P1_1和P1_2分别代表报文1中的分片报文,P2_1和P2_2分别代表报文2中的分片报文,通信链路中的空白矩形代表其他报文或其他报文中的分片报文。参考图4,通信链路可以包括3个传输路径(简称路径),通过多路径传输的方式将报文1和报文2中的分片报文转发至主机2。
在一些示例中,上述发送标识集合包括第二发送标识(记为fence-order或f-o)。第二发送标识指示第二保序需求,第二保序需求指示在任一对象(NIC1或NIC2)的任一过程(执行WR或完成WR的过程)中均保序。本申请不限定该保序需求的具体实现方式,可选的,第二发送标识通过指示在执行WR 2之前,完成WR 1,便可以实现第二保序需求。假设WR 2对应的保序需求为第二保序需求,参考图5,该数据处理方法可以包括步骤S501至S515。
S501、主机1依次向NIC 1提交WR 1和WR 2;
步骤S501可以参考步骤S401进行理解,和S401不同的,WR 2携带第二发送标识。步骤S501不限定WR 1的保序域的值,以下,以WR 1的保序域为第一发送标识为例。
S502、NIC 1向通信链路发送报文1;
S503、通信链路将报文1转发至NIC 2;
S504、NIC 2执行数据传输操作1;
S505、NIC 2向主机2上报数据传输操作1的完成情况1;
S506、NIC 2发送应答报文1;
S507、通信链路将应答报文1转发至NIC 1;
S508、NIC 1向主机1上报数据传输操作1的完成情况1;
步骤S502~S208可以参考步骤S302~S308的内容进行理解,此处不再赘述。
S509、当NIC 1识别到WR 2中的第二发送标识时,NIC 1在完成WR 1后,向通信链路发送报文2;
当NIC 1识别到WR 2中的第二发送标识时,若NIC 1尚未完成WR 1(例如尚未执行S508),NIC 1暂不执行WR 2,而是待完成WR 1后,执行WR 2,例如,向通信链路发送报文2。这样有利于保证NIC 1先处理WR 1,在完成WR 1之后,处理WR 2,有利于实现在NIC 1和NIC 2对WR 2执行的每个过程严格保序。
在一种可能的实现方式中,NIC 1识别到WR 2中的发送标识为第二发送标识时,NIC 1将WR 2从WQ中取出,放入保序队列,待NIC 1向主机1上报WR 1的完成情况后,再从保序队列中取出并处理WR2。这样,即使NIC 1未处理WR 2,可以继续处理WQ中位于WR 2后的其他WR,防止阻塞,提高WR的处理效率。
或者,在一种可能的实现方式中,NIC 1识别到WR 2中的发送标识为第二发送标识时,NIC 1不将 WR 2从WQ中取出,WR 2留在WQ中,待NIC 1向主机1上报WR 1的完成情况后,再从WQ中取出并处理WR 2。这样,在NIC 1处理WR 2之前,NIC 1可能无法继续处理WQ中位于WR 2后的其他WR,发生阻塞。
NIC 1可以根据WR 2中的第二发送标识向报文2中添加第二接收标识。第二接收标识可以为前文介绍的n-o。
S510、通信链路将报文2转发至NIC 2;
S511、NIC 2执行数据传输操作2;
S512、NIC 2向主机2上报数据传输操作2的完成情况2;
S513、NIC 2发送应答报文2;
S514、通信链路将报文2转发至NIC 1;
S515、NIC 1向主机1上报数据传输操作2的完成情况2。
步骤S510-S515可以分别参考S303-S308的内容进行理解,或者,参考S403-S408中对WR 2的处理过程进行理解。
图5对应的流程有利于仅限定在请求端保序的处理WR 2,不对通信链路和响应端限定保序的处理WR 2,便可以实现在整个传输网络对WR 2的每个处理过程均实现保序,降低方案的复杂度,提高WR的处理效率。
在一些示例中,上述发送标识集合包括第三发送标识(记为so-order或s-o)。第三发送标识指示第三保序需求,第三保序需求指示在NIC1和NIC2执行WR的过程中分别保序。假设WR 2对应的保序需求为第三保序需求,参考图6,该数据处理方法可以包括步骤S601至S610。
S601、主机1依次向NIC 1提交WR 1和WR 2;
步骤S601可以参考步骤S401进行理解,和S401不同的,WR 2携带第三发送标识。步骤S601不限定WR 1的保序域的值,以下,以WR 1的保序域为第一发送标识为例。
S602、NIC 1向通信链路发送报文1;
NIC 1获取WR 1后,可以执行WR 1,例如,向通信链路发送报文1。报文1的内容可以参考前文对报文1的介绍。
S603、当NIC 1识别到WR 2中的第三发送标识时,NIC 1在执行WR 1后,向通信链路发送报文2;
当NIC 1识别到WR 2中的第三发送标识时,若NIC 1尚未执行WR 1(例如尚未执行S602),NIC 1暂不执行WR 2,而是待执行WR 1后,执行WR 2,例如,向通信链路发送报文2。这样有利于保证NIC 1先执行WR 1,在执行WR 1之后,执行WR 2,在NIC 1执行WR 2的过程实现保序。
NIC 1可以根据WR 2中的第三发送标识向报文2中添加第三接收标识。可选的,第三接收标识可以与第三发送标识相同。以下,以第三接收标识与第三发送标识相同为例进行介绍。
S604、通信链路分别将报文1和报文2转发至NIC 2;
S604可以参考S403的内容进行理解。
S605、NIC 2收到报文1后,执行数据传输操作1;
S606、当NIC 2识别到报文2中的第三发送标识时,NIC 2在执行数据传输操作1后,执行数据传输操作2;
当NIC 2识别到WR 2中的第三发送标识时,若NIC 2尚未执行WR 1(例如尚未执行S605),NIC 2暂不执行WR 2,而是待执行WR 1后,执行WR 2,例如,执行数据传输操作2。这样有利于保证NIC 2先执行WR 1,在执行WR 1之后,执行WR 2,在NIC 2执行WR 2的过程实现保序。
S607、NIC 2并行的向主机2上报数据传输操作1的完成情况1和数据传输操作2的完成情况2;
S608、NIC 2分别发送应答报文1和应答报文2;
S609、通信链路分别将应答报文1和应答报文2转发至NIC 1;
S610、NIC 1分别向主机1上报数据传输操作1的完成情况1和数据传输操作2的完成情况2。
步骤S607-S610可以分别参考S405-S408的内容进行理解。
图6对应的流程有利于分别在请求端和响应端保序的执行WR 2,不限定通信链路保序的传输WR 2相关的报文,也不限定在请求端和响应端保序的完成WR 2,有利于提高WR的处理效率。并且,有利于在通信链路实现消息1和消息2的多路径传输,有利于提高网络带宽的利用率,减少消息的传输时延。
在一些示例中,上述发送标识集合包括第四发送标识(记为ic-order或ic-o)。第四发送标识指示第四保序需求,第四保序需求指示在NIC 1完成WR的过程中保序。假设WR 2对应的保序需求为第四保序需求,参考图7,该数据处理方法可以包括步骤S701至S709。
S701、主机1依次向WQ中提交WR 1和WR 2;
步骤S701可以参考步骤S401进行理解,和S401不同的,WR 2携带第四发送标识。步骤S701不限定WR 1的保序域的值,以下,以WR 1的保序域为第一发送标识为例。
S702、NIC 1并行的发送报文1和报文2;
NIC 1识别到WR 2中的第四发送标识后,并行的执行数据传输操作1和数据传输操作2,例如,并行的发送报文1和报文2。该过程可以参考S402。
NIC 1向报文2中封装第四接收标识。可选的,第四接收标识为第一发送标识(即n-o)。后文以第四接收标识与第一发送标识相同为例。
S703、通信链路分别将报文1和报文2转发至NIC 2;
S704、NIC 2并行的执行数据传输操作1和数据传输操作2;
S705、NIC 2并行的向主机2上报数据传输操作1的完成情况1和数据传输操作2的完成情况2;
S706、NIC 2分别发送应答报文1和应答报文2;
S707、通信链路分别将应答报文1和应答报文2转发至NIC 1;
S703~S708可以分别参考S403~S406的内容进行理解。
S708、NIC 1向主机1上报数据传输操作1的完成情况1;
S708可以参考S308的内容进行理解。
S709、当NIC 1识别到WR 2中的第四发送标识时,NIC 1在完成WR 1后,向主机1上报数据传输操作2的完成情况2。
NIC 1接收到应答报文2后,当NIC 1识别到WR 2中的第四发送标识时,若NIC 1尚未完成WR 1(例如尚未执行S708),NIC 1暂不完成WR 2,而是待完成WR 1后,完成WR 2,例如,向主机1上报数据传输操作2的完成情况2。这样有利于实现在NIC 1完成WR 2的过程严格保序,即有利于保证NIC 1先向主机1上报完成情况1,之后,上报完成情况2。
本申请不限定S708的完成情况1与S705的完成情况1相同,也不限定S709的完成情况2与S705的完成情况2相同。
S701~S709对应的流程有利于在请求端保序的完成WR 2,不对请求端执行WR 2的过程进行保序,不限定通信链路保序的传输WR 2相关的报文,也不限定在响应端保序的处理WR 2,有利于提高WR的处理效率。并且,有利于在通信链路实现消息1和消息2的多路径传输,有利于提高网络带宽的利用率,减少消息的传输时延。
在一些示例中,上述发送标识集合包括第五发送标识(记为tc-order或tc-o)。第五发送标识指示第五保序需求,第五保序需求指示在NIC 2完成WR的过程中保序。假设WR 2对应的保序需求为第五保序需求,参考图8,该数据处理方法可以包括步骤S801至S809。
S801、主机1依次向NIC 1提交WR 1和WR 2;
步骤S801可以参考步骤S301进行理解,和S301不同的,WR 2中的保序域为第五发送标识。步骤S801不限定WR 1的保序域的值,以下,以WR 1的保序域为第一发送标识为例。
NIC 1识别到WR 2中的第五发送标识后,并行的执行数据传输操作1和数据传输操作2,例如,并行的发送报文1和报文2。该过程可以参考S402。
NIC 1向报文2中封装第五接收标识。可选的,第五接收标识与第五发送标识相同。后文以第五接收标识与第五发送标识相同为例。
S803、通信链路分别将报文1和报文2转发至NIC 2;
S804、当NIC 2识别到报文2中的第五接收标识时,NIC 2并行的执行数据传输操作1和数据传输操作2;
S803和S804可以分别参考S403和S404的内容进行理解。
S805、NIC 2向主机2上报数据传输操作1的完成情况1;
在S804之后,NIC 2执行数据传输操作1之后,将CQE 1上送主机2。
S806、当NIC 2上报完成情况1后,NIC 2向主机2上报数据传输操作2的完成情况2;
当NIC 2识别到报文2中的第五发送标识后,若NIC 2尚未完成WR 1(例如尚未执行S805),NIC 2暂不完成WR 2,而是待完成WR 2后,完成WR 2,例如,向主机2上报数据传输操作2的完成情况2。这样有利于保证NIC 2先向主机2上报完成情况1,之后,上报完成情况2,有利于实现在NIC 2完成WR 2的过程严格保序。
可选的,下面介绍一种可能的具体实现方案。NIC 2识别到报文2中的第五接收标识时,并行的将消息1和消息2上送主机2的内存空间。在将消息2上送主机2后,产生消息2的CQE 2,此时,若消息1的CQE 1尚未产生或尚未上送主机2,则将CQE 2写入NIC 2的缓存(称作乱序buf)中。当NIC 2产生或上送CQE 1后,从乱序buf中去除CQE 2,上送主机2的内存空间,以通告APP 2进行处理。
前文步骤S704中提到NIC 2将报文2或消息2存储在乱序buf中,步骤S805中提到将CQE 2写入乱序buf中,需要说明的是,乱序buf代表NIC 2的缓存,本申请不限定NIC 2将报文2(或消息2)和CQE 2写入缓存的相同存储区域。
这样,有利于保证在NIC 2(即响应端)高效的执行数据传输操作1和数据传输操作2,并且,严格保序的依次对消息1和消息2进行确认,进而保证主机2在确认接收到消息1之后,再确认接收到消息2。
S807、NIC 2分别发送应答报文1和应答报文2;
S808、通信链路分别将报文1和报文2转发至NIC 2;
S809、NIC 1分别向主机1上报数据传输操作1的完成情况1和数据传输操作2的完成情况2。
步骤S807-S809可以分别参考S406-S408的内容进行理解。
S801~S809对应的流程有利于在响应端保序的完成WR 2,不对响应端执行WR 2的过程进行保序,不限定通信链路保序的传输WR 2相关的报文,也不限定在响应端保序的处理WR 2,有利于提高WR的处理效率。并且,有利于在通信链路实现消息1和消息2的多路径传输,有利于提高网络带宽的利用率,减少消息的传输时延。
需要说明的是,在上述图5~图8中,通过单条带有箭头的线段代表分别或并行执行的两个动作,仅用于表示不限定这两个动作之间的先后顺序,而非限定这两个动作一定要同时执行。以图8所示的S807为例,NIC 2可以在S805后先发送应答报文1,在S806后发送应答报文2,而非限定NIC 2需要在S806后再发送应答报文1和应答报文2。
本申请将上述第一发送标识~第五发送标识、第一接收标识~第五接收标识统称为保序标识。
前文举例介绍了五种保序标识,分别为n-o、f-o、s-o、ic-o和tc-o。每个保序标识用于指示一段需要执行保序控制的过程(或称处理WR的子处理流程),图9示出了每个保序标识所指示的需要保序控制的子处理流程。可选的,参考图9,请求端(例如NIC 1)执行WR的过程支持配置n-o、s-o或f-o,请求端完成WR的过程支持配置n-o或ic-o。响应端(例如NIC 2)执行WR的过程支持配置n-o或s-o,响应端完成WR的过程支持配置n-o或tc-o。网络传输流程可以默认配置n-o,或者,网络传输流程支持配置保序级别。需要说明的是,在网络传输流程中,通信链路不改变报文中携带的接收标识。
为了实现在多个子处理流程(或简称子流程)中的保序处理,可选的,保序域可以包括多个子处理流程中每个子处理流程对应的子域。以保序域包括4个子域为例,分别记为第一子域~第四子域,依次用于指示请求端执行WR、请求端完成WR、响应端执行WR和响应端完成WR的保序级别。
为了实现在多个子流程中的保序处理,或者,可选的,保序域或称保序标识可以包括多个取值。以实现4个子流程的保序处理为例,保序域可以包括24种可能的取值,每个取值代表上述四个子域的一种组合。例如,当保序域为0时,相当于第一子域~第四子域分别为n-o。例如,当保序域为1时,相当 于第一子域~第四子域分别为n-o、n-o、n-o和tc-o。
本申请不限定WR携带的保序标识为主机1添加的,可选的,前文介绍的通信中间件在接收到主机1或APP 1发起的通信操作请求后,封装添加有保序标识的WR,进而将封装好的WR提交至WQ中。
图10示意性示出主机1提交WR的过程。用户编程模型中WR保序级别使用过程可以参考图10。参考图10,该过程包括:
S1001、APP 1通过通信中间件依次发起通信操作请求1和通信操作请求2;
APP 1可以通过通信中间件发起用于指示传输消息的通信操作请求。假设APP 1通过通信中间件依次发起用于指示传输消息1的通信操作请求1和用于指示传输消息2的通信操作请求2。本申请不限定通信中间件的类型,例如,通信中间件可以为多点接口(multi point interface,MPI)。
S1002、通信中间件根据消息1的信息和消息2的信息确定通信操作请求2对应的保序标识;
通信中间件可以根据消息1的信息和消息2的信息确定通信操作请求2对应的保序标识。消息的信息可以包括消息的操作类型和/或业务场景。通信中间件可以根据消息1的操作类型和消息2的操作类型确定二者的依赖关系,进而确定通信操作请求2(或消息2)的保序级别。
S1003、通信中间件分别提交通信操作请求1的WR 1和通信操作请求2的WR 2;
通信中间件可以根据通信操作请求1封装并提交WR 1,根据通信操作请求2和相应的保序级别,封装并提交WR 2。
可选的,通信中间件可以按照通信协议软件栈接口格式封装post_wr()的数据结构。假设,WR 2的数据结构如图10所示,通过“order_type_t order_type”字段来指示WR 2的发送标识,进而指示WR 2的保序需求。可选的,通信中间件封装WR 1和WR 2后,可以调用post_wr()接口依次提交WR 1和WR 2。
之后的处理流程可以参考前文介绍的流程的内容进行理解。其中,NIC 1可以包括通信协议软件栈和硬件处理模块(包括网卡设备驱动和网卡硬件),NIC 1执行WR的过程,可以具体包括通信协议驱动和硬件处理模块解析WR并执行WR。
可选的,主机或通信中间件可以从多种标识中向WR中添加至少一种标识(称作第一目标标识)。该多种标识可以包括前文介绍的至少两种保序标识,可选的,该至少两种保序标识可以为前文介绍的至少两种发送标识。本申请不限定主机或通信中间件为WR匹配保序级别的依据。
可选的,主机或通信中间件可以按照预设规则,根据消息1的信息和消息2的信息从多种标识中选择第一目标标识添加至WR 2中。消息1的信息和消息2的信息可以参考步骤S1002的相关内容。可选的,该预设规则可以为固定设置的,或者,该预设规则为用户配置的。
在一种示例中,该预设规则可以满足Infiniband协议(简称IB协议)对WR操作顺序的规定(例如参见IB协议的相关内容)。以前文介绍的保序域可以包括24种可能的取值为例,由于IB协议规定了,当WR 1和WR 2对应的操作均为写操作时,WR 1和WR 2之间需要严格保序,因此,主机或通信中间件可以在WR 2中的保序域的值设置为0,以指示在请求端执行WR的过程、请求端完成WR的过程、响应端执行WR的过程和响应端完成WR的过程中分别实现保序。
在一种示例中,用户通过配置接口配置该预设规则,图11示意性示出该配置接口一种可能的形式。图11中,以“#”代表需要严格保序,以“NR”代表无需保序。根据图11配置的预设规则指示:允许读超越写、写超越读、读超越读、写不能超越写。以“读超越写”为例,该预设规则指示,当WR 1的操作类型和WR 2的操作类型分别为写操作和读操作时,WR 2的操作可以先于(或称超越)WR 1的操作被执行。以保序域包括4个子域为例,相应的,主机1或通信中间件可以将第一子域设置为n-o。这样,参考图11,和NIC 1使用单个进程依次执行WR 1的写操作和WR 2的读操作相比,通过配置图11所示的预设规则,可以使NIC 1通过两个进程并行执行WR 1的写操作和WR 2的读操作,有利于提高WR的执行效率。
需要说明的是,和图11相比,该配置接口可以支持用户设置更多或更少操作类型之间的顺序。在一些示例中,图11所示的配置接口默认将任意两种操作之间的顺序设置为n-o,例如将图11所示的所有“#”替换为“NR”。用户可以根据业务需要对部分顺序进行更改。保序不与具体的操作绑定,所有操作之间只有用户指定了保序才执行保序处理。
可选的,保序作为WR的基础能力提供给用户,用户通过设置WR的属性进行保序能力控制。具体的,保序能力作为WR的基础属性,通过提交WR的软件编程接口提供给用户访问。用户提交WR时,先判断需要保序处理的子流程,例如,是否涉及执行WR的保序(与前面操作的数据执行有无依赖关系)、是否涉及完成WR的保序(与前面操作的完成通告有无依赖关系)、以及涉及保序的端侧(例如请求端或响应端)。确定需要保序处理的子流程后,选择对应的保序能力,比如,只涉及响应端数据完成通告流程,那么需要响应端按顺序产生CQE,则将WR 2的保序域设置为tc-order(针对具体的通信协议可以根据协议提供保序规则表)。之后,用户调用软件编程接口提交WR操作时,将保序能力作为一个参数传递给通信协议软件接口。
网卡设备(例如上述NIC 1)可以按照WR中的发送标识(或所指示的保序需求)进行保序处理,并将指示保序需求的接收标识通过报文传递给响应端。接收标识可以例如前文介绍的任一接收标识或n-o标识或s-o标识或tc-o标识。具体的,通信协议软件模块根据保序能力参数指示进行保序处理,如果保序能力为s-o/f-o/ic-o时,需要在请求端做保序处理。在编辑通信报文时,将接收标识封装到报文中,通过报文传递给响应端处理。响应端从通信链路上接收报文后,提取保序能力字段(即接收标识),根据保序能力字段的指示进行对应的保序处理。比如,识别到s-o后,确定对该消息(例如消息2)进行接收处理前,需要依赖前面的消息(例如消息1)都执行完成,例如,乱序时通过缓存或丢包重传来保证对消息1和消息2依次执行接收处理。响应端在正常接收消息后,返回应答报文,请求端在收到应答报文后,如果需要产生CQE,则需重新读出WR提交时的发送标识,如果发送标识为ic-o标识,则需要保序产生CQE,例如,先上报CQE 1,之后上报CQE 2。
上述方法中涉及的通信链路可以采用新的传输协议,也可以基于现有的网络传输协议。例如,上述方法的业务场景可支持基于连接(connection)或可靠数据报的连接模型,如套接字(socket)通信/IB/统一总线(unified bus,UB)等传输协议。可选的,该保序方法除了可用于传统的发送(send)/接收(receive,recv)消息语义外,也支持内存语义等(含业务操作语义),不限于网络传输语义。
图12示意性示出该数据处理方法另一种可能的流程。图12所示的方法可以应用于通信系统,通信系统包括第一节点、第二节点和传输网络,传输网络用于在第一节点和第二节点之间转发数据。
可选的,通信系统为单个主机(例如图2所示的计算机设备),第一节点和第二节点部署在同一主机上。例如,第一节点为主机的CPU(或CPU上运行的应用程序),第二节点为主机的硬盘。传输网络用于在主机中传输数据,例如,传输网络包括NIC和总线。NIC可以为物理设备或物理设备上运行的虚拟设备。可选的,该物理设备为第一节点和第二节点所在的主机。当NIC为物理设备时,本申请不限定NIC与主机的连接方式,例如,NIC可以插接在主机的总线上,或集成在主机的主板上。
或者,可选的,通信系统包括多个主机,该主机可以为物理设备或物理设备上运行的虚拟设备。第一节点和第二节点为不同的主机或部署在不同主机上的装置。本申请不限定该装置的类型,该装置可以为虚拟装置,例如,该装置可以为主机上运行的应用程序,或者,该装置为物理装置,例如,该装置可以为主机的CPU或主机上的硬盘等。传输网络包括与第一节点1相连的第一网卡和与第二节点相连的第二网卡。可选的,传输网络还可以包括第一网卡与第二网卡之间的通信链路。网卡可以为物理设备或物理设备上运行的虚拟设备。当网卡为物理设备时,本申请不限定网卡与主机的连接方式,例如,网卡可以插接在主机的总线上,或集成在主机的主板上。
在一种可能的实现方式中,该通信系统如图1所示,第一节点和第二节点分别为主机1和主机2,或者,分别为APP 1和APP 2,传输网络包括NIC 1和NIC 2,可选的,还包括NIC 1和NIC 2之间的通信链路。
参考图12,该流程可以包括步骤S1201至S1202。
S1201、第一节点依次向传输网络提交第一工作请求WR和第二WR;
第一节点可以依次向传输网络提交第一工作请求WR和第二WR。可选的,第一节点可以向传输网络为第一节点创建的WQ中依次提交第一WR和第二WR。
第一WR和第二WR分别指向第一消息和第二消息,第一消息指示在第一节点和第二节点之间执行第一数据传输操作,第二消息指示在第一节点和第二节点之间执行第二数据传输操作。第二WR携带目标 发送标识,目标发送标识指示传输网络处理第一WR和第二WR之间的顺序。
在一些示例中,目标发送标识可以为前文介绍的任一种保序标识,例如,可以为第一发送标识~第五发送标识中的任一种,或者,为标识n-o、s-o、f-o、tc-o或ic-o,或者,为上述任意多种标识的组合,或者,指示上述任意多种标识所指示的功能。
本申请不限定第一节点向传输网络提交WR的方式,例如,第一节点按照图10所示的过程提交WR。本申请不限定第一节点向第二WR中添加目标发送标识所依据的规则。可选的,第一节点从多个发送标识中选择目标发送标识添加至第二WR中。该规则可以为固定设置的,或者,该规则为用户配置的。关于该规则的内容可以参考前文介绍的预设规则的相关内容。
本申请不限定第一数据传输操作和第二数据传输操作的类型,例如,第一数据传输操作或第二数据传输操作可以为写(write)操作或读(read)操作或发送(send)操作或原子(atomic)操作等。第一数据传输操作的类型和第二数据传输操作的类型可以相同,也可以不同。
第一节点依次向传输网络提交第一WR和第二WR后,传输网络可以依次获取第一WR和第二WR。可选的,传输网络可以从上述WQ中依次获取第一WR和第二WR。
由于传输网络包括至少一个网卡,本申请所说的传输网络获取WR可以具体指,与第一节点相连的网卡获取WR。
本申请不限定第一WR的提交次序与第二WR的提交次序相邻,只要第一WR先于第二WR提交至传输网络即可。本申请不限定第一WR中WR的个数,例如,第一WR可以指单个WR,也可以包括多个WR。
可选的,目标发送标识还指示第一数据传输操作的类型(或称WR的类型)。本申请将目标发送标识指示的类型称作目标类型。第一WR为先于第二WR提交的多个WR中该类型的WR。也就是说,目标发送标识指示传输网络处理第二WR和先于第二WR提交的目标类型的WR之间的顺序。
S1202、传输网络按照目标发送标识所指示的顺序处理第一WR和第二WR。
传输网络处理WR可以包括,传输网络执行相应数据传输操作,可选的,还可以包括,传输网络上报该数据传输操作的完成情况。本申请不限定传输网络处理WR的具体流程,例如,传输网络可以参照图3所示的流程处理WR。
传输网络按照目标发送标识所指示的顺序处理第一WR和第二WR的过程中,传输网络按照第一顺序执行第一数据传输操作和第二数据传输操作,传输网络按照第二顺序上报第一数据传输操作的完成情况和第二数据传输操作的完成情况。可选的,第一顺序为目标发送标识所指示的顺序,和/或,第二顺序为目标发送标识所指示的顺序。
本申请不限定目标发送标识所指示的顺序的类型。例如,目标发送标识指示先处理第一WR,后处理第二WR,即保序的处理第一WR和第二WR。或者,例如,目标发送标识指示先处理第二WR,后处理第一WR。或者,例如,目标发送标识指示并行的处理第一WR和第二WR,例如,指示第一网卡使用不同的处理器核心来处理第一WR和第二WR。或者,例如,目标发送标识指示不限定处理第一WR和处理第二WR之间的先后顺序。
在一些示例中,目标发送标识指示传输网络执行第一数据传输操作和第二数据传输操作的顺序(即第一顺序)。相应的,步骤S1202包括:传输网络按照目标发送标识所指示的顺序执行第一数据传输操作和第二数据传输操作。例如,传输网络先执行第一数据传输操作,后执行第二数据传输操作。
当传输网络包括第一网卡和第二网卡时,传输网络执行第一数据传输操作可以包括:第一网卡向第二网卡发送携带第一消息的第一报文,第二网卡接收到第一报文后,执行第一传输操作。传输网络执行第二数据传输操作可以包括:第一网卡向第二网卡发送携带第二消息的第二报文,第二网卡接收到第二报文后,执行第二传输操作。可选的,第一报文携带第一消息,第二报文携带第二消息。
在一种示例中,目标发送标识可以指示第一网卡向第二网卡发送第一报文和第二报文的顺序(称作请求端执行顺序)。相应的,步骤S1202包括:
S12021A、第一网卡按照请求端执行顺序向第二网卡发送第一报文和第二报文;
S12022A、第二网卡按照默认顺序执行第一数据传输操作和第二数据传输操作。
第一网卡按照请求端执行顺序向第二网卡发送第一报文和第二报文可以参考前文介绍的步骤S402或S502或S602或S702或S802的内容。本申请不限定默认顺序的类型。
在一种示例中,目标发送标识可以指示第一网卡在第二报文中封装目标接收标识,目标接收标识指示第二网卡执行第一数据传输操作和第二数据传输操作的顺序(称作响应端执行顺序)。相应的,步骤S1202包括:
S12021B、第一网卡按照默认顺序向第二网卡发送第一报文和第二报文;
S12022B、第二网卡按照响应端执行顺序执行第一数据传输操作和第二数据传输操作。
第二网卡按照响应端执行顺序执行第一数据传输操作和第二数据传输操作可以参考前文介绍的步骤S404或S504或S604或S704或S804的内容。本申请不限定默认顺序的类型。
在一种示例中,目标发送标识可以指示第一网卡向第二网卡发送第一报文和第二报文的顺序(即请求端执行顺序),并且,指示第一网卡向第二报文中封装目标接收标识,目标接收标识指示第二网卡执行第一数据传输操作和第二数据传输操作的顺序(即响应端执行顺序)。相应的,步骤S1202包括:
S12021C、第一网卡按照请求端执行顺序向第二网卡发送第一报文和第二报文;
S12022C、第二网卡按照响应端执行顺序执行第一数据传输操作和第二数据传输操作。
上述目标发送标识与目标接收标识可以相同或不同。请求端执行顺序和响应端执行顺序可以相同或不同。
或者,在一些示例中,目标发送标识指示传输网络上报第一数据传输操作的完成情况和上报第二数据传输操作的完成情况之间的顺序(即第二顺序)。相应的,步骤S1202包括:传输网络按照目标发送标识所指示的顺序上报第一数据传输操作的完成情况和上报第二数据传输操作的完成情况之间的顺序。例如,传输网络先上报第一数据传输操作的完成情况,后上报第二数据传输操作的完成情况。
当传输网络包括第一网卡和第二网卡时,传输网络上报第一数据传输操作的完成情况和上报第二数据传输操作的完成情况可以包括:第二网卡分别向第二节点上报第一数据传输操作的完成情况(称作第一响应端完成情况)和第二数据传输操作的完成情况(称作第二响应端完成情况),以及,第一网卡分别向第一节点上报第一数据传输操作的完成情况(称作第一请求端完成情况)和第二数据传输操作的完成情况(称作第二请求端完成情况)。
在一种示例中,目标发送标识可以指示第一网卡向第二报文中封装目标接收标识,目标接收标识指示第二网卡向第二节点上报第一响应端完成情况和第二响应端完成情况的顺序(称作响应端完成顺序)。相应的,步骤S1202还包括:
S12023A、第二网卡按照响应端完成顺序向第二节点上报第一响应端完成情况和第二响应端完成情况;
S12024A、第一网卡按照默认顺序向第一节点上报第一请求端完成情况和第二请求端完成情况。
第二网卡按照响应端完成顺序向第二节点上报第一响应端完成情况和第二响应端完成情况可以参考前文介绍的步骤S405或S505或S605或S705或S805的内容。本申请不限定默认顺序的类型。
在一种示例中,目标发送标识可以指示第一网卡向第一节点上报第一请求端完成情况和第二请求端完成情况的顺序(称作请求端完成顺序)。相应的,步骤S1202还包括:
S12023B、第二网卡按照默认顺序向第二节点上报第一响应端完成情况和第二响应端完成情况;
S12024B、第一网卡按照请求端完成顺序向第一节点上报第一请求端完成情况和第二请求端完成情况。
第一网卡按照请求端完成顺序向第一节点上报第一请求端完成情况和第二请求端完成情况,可以参考前文介绍的步骤S408或S508或S608或S708或S808的内容。本申请不限定默认顺序的类型。
在一种示例中,目标发送标识可以指示响应端完成顺序,并且,指示请求端完成顺序。相应的,步骤S1202还包括:
S12023C、第二网卡按照响应端完成顺序向第二节点上报第一响应端完成情况和第二响应端完成情况;
S12024C、第一网卡按照请求端完成顺序向第一节点上报第一请求端完成情况和第二请求端完成情况。
目标发送标识与目标接收标识可以相同或不同。请求端执行顺序和响应端执行顺序可以相同或不同。
当传输网络包括第一网卡和第二网卡时,第一网卡和第二网卡之间可以通过通信链路来交互数据。在步骤S1202中,本申请不限定第一网卡和第二网卡转发数据所采用的方式,例如,参考步骤S403的内容,为了充分利用网络带宽,通信链路可以通过多路径传输方式在第一网卡和第二网卡之间转发数据。
上述阐述了本申请提供的方法,为了便于更好的实施本申请实施例的上述方案,相应地,下面还提供用于配合实施上述方案的相关设备。
参见图13,图13是本申请实施例提供的一种数据处理装置的结构示意图。可选的,该数据处理装置13可以是上述传输网络或传输网络中的网卡。该网卡可以为第一节点的网卡,或者,该网卡包括第一节点的第一网卡和第二节点的第二网卡。如图13所示,该数据处理装置13包括获取模块1301和处理模块1302。
其中,获取模块1301,用于依次获取第一节点提交的第一工作请求WR和第二WR,可选的,获取模块1301从WQ中依次获取第一节点提交的第一WR和第二WR。
处理模块1302用于执行步骤S1202的方法,或者,执行S402至S408的全部或部分步骤,或者,执行S502至S508的全部或部分步骤,或者,执行S602至S608的全部或部分步骤,或者,执行S702至S708的全部或部分步骤,或者,执行S802至S808的全部或部分步骤。
上述两个模块之间互相可以通过通信通路进行数据传输,应理解,数据处理装置13包括的各模块可以为软件模块、也可以为硬件模块、或部分为软件模块部分为硬件模块。
关于数据处理装置13中获取模块1301和处理模块1302的可能实现方式及有益效果可以参考相应方法的相关内容,此处不再赘述。
参见图14,图14是本申请实施例提供的一种数据处理装置的结构示意图。可选的,该数据处理装置14可以是上述第一节点或主机1或APP 1。如图14所示,该数据处理装置14包括交互模块1401。
其中,交互模块1401,用于执行前述步骤S1201的方法,或者,执行S401或S501或S601或S701或S801的方法。
关于数据处理装置14中交互模块1401的可能实现方式及有益效果可以参考相应方法的相关内容,此处不再赘述。
参见图15,图15是本申请实施例提供的一种数据处理装置的结构示意图。可选的,该数据处理装置15可以是部署在第一节点的第一网卡。该第一网卡可以为前文介绍的NIC 1。如图15所示,该数据处理装置15包括获取模块1501和处理模块1502。
其中,获取模块1501,用于依次获取第一节点提交的第一工作请求WR和第二WR,可选的,获取模块1501从WQ中依次获取第一节点提交的第一WR和第二WR。
处理模块1502用于执行前述步骤S12021A或S12021B或S12021C,或者,执行S402或S502或S602或S702或S802。可选的,处理模块1502还用于执行前述步骤S12023A或S12023B或S12023C,或者,执行S408或S508或S608或S708或S808。
上述两个模块之间互相可以通过通信通路进行数据传输,应理解,数据处理装置15包括的各模块可以为软件模块、也可以为硬件模块、或部分为软件模块部分为硬件模块。
关于数据处理装置15中获取模块1501和处理模块1502的可能实现方式及有益效果可以参考相应方法的相关内容,此处不再赘述。
参见图16,图16是本申请实施例提供的一种数据处理装置的结构示意图。可选的,该数据处理装置16可以是部署在第二节点的第二网卡。该第二网卡可以为前文介绍的NIC 2。如图16所示,该数据处理装置16包括接收模块1601和处理模块1602。
其中,接收模块1601,用于分别接收第一网卡发送的第一报文和第二报文,第一网卡、第一报文和第二报文可以参考前述图12对应的方法流程中的相关内容进行理解。例如,第一网卡设置于第一节点, 第一报文携带第一工作请求WR指向的第一消息,第二报文携带第二WR指向的第二消息,第一WR和第二WR为第一节点依次提交的,第一消息指示在第一节点和第二节点之间执行第一数据传输操作,第二消息指示在第一节点和第二节点之间执行第二数据传输操作,第二报文携带目标接收标识,目标接收标识指示数据处理装置处理第一WR和第二WR的顺序。
处理模块1602用于根据目标接收标识所指示的顺序处理第一消息和第二消息。可选的,处理模块1602执行前述步骤S12022A或S12022B或S12022C,或者,执行S404或S504或S604或S704或S804。可选的,处理模块1602还用于执行前述步骤S12024A或S12024B或S12024C,或者,执行S405或S505或S605或S705或S805。可选的,处理模块1602还用于执行前述步骤S406或S506或S606或S706或S806。
上述两个模块之间互相可以通过通信链路进行数据传输,应理解,数据处理装置16包括的各模块可以为软件模块、也可以为硬件模块、或部分为软件模块部分为硬件模块。
关于数据处理装置16中接收模块1601和处理模块1602的可能实现方式及有益效果可以参考相应方法的相关内容,此处不再赘述。
需要说明的是,上述数据处理装置的结构仅仅作为一种示例,不应构成具体限定,可以根据需要对该数据处理装置的各个模块进行增加、减少或合并。此外,该数据处理装置中的各个模块的操作和/或功能是为了实现上述方法的相应流程,为了简洁,在此不再赘述。
本申请还提供一种通信系统。可选的,该通信系统包括上述数据处理装置13和数据处理装置14,例如,该通信系统为图12对应的方法流程所适用的通信系统(例如图1所示的通信系统)。或者,可选的,该通信系统包括上述数据处理装置15和数据处理装置16,例如,该通信系统包括前文介绍的NIC 1和NIC 2,或者,包括前文介绍的第一网卡和第二网卡。可选的,该通信系统还包括前文介绍的通信链路。
本申请还提供一种计算设备。该计算设备的结构可以参考图2所示。可选的,该计算设备的存储器中存储了上述任一数据处理装置的各个模块对应的代码,处理器执行这些代码实现相应数据处理装置的各个模块的功能,执行相应模块所执行的方法步骤。
本申请还提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述方法实施例中记载的任意一种的部分或全部步骤。计算机可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
本申请实施例还提供一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行任意一种方法实施例的部分或全部步骤。本领域普通技术人员可以理解,前述的计算机可读存储介质包括:U盘、移动硬盘、磁碟、光盘、RAM、SSD或者非易失性存储器(non-volatile memory)等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。本申请实施例涉及的“A和/或B”可以理解为包括“A和B”以及“A或B”这两种方案。本申请涉及的“多个”可以理解为两个或两个以上。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽 略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

Claims (14)

  1. 一种数据处理方法,其特征在于,应用于通信系统,所述通信系统包括第一节点、第二节点和传输网络,所述传输网络用于在所述第一节点和所述第二节点之间转发数据,所述方法包括:
    所述传输网络依次获取所述第一节点提交的第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和所述第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,并且,所述第二WR携带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序;
    所述传输网络按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR。
  2. 根据权利要求1所述的方法,其特征在于,所述传输网络按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR,包括:
    所述传输网络按照第一顺序执行所述第一数据传输操作和所述第二数据传输操作;
    所述传输网络按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况;
    其中,所述第一顺序为所述目标发送标识所指示的顺序,和/或,所述第二顺序为所述目标发送标识所指示的顺序。
  3. 根据权利要求2所述的方法,其特征在于,所述传输网络包括与所述第一节点相连的第一网卡和与所述第二节点相连的第二网卡,所述第一顺序包括请求端执行顺序和响应端执行顺序,所述传输网络按照第一顺序执行所述第一数据传输操作和所述第二数据传输操作,包括:
    所述第一网卡按照所述请求端执行顺序向所述第二网卡发送第一报文和第二报文,所述第一报文携带所述第一消息,所述第二报文携带所述第二消息;
    所述第二网卡按照所述响应端执行顺序执行所述第一数据传输操作和所述第二数据传输操作。
  4. 根据权利要求3所述的方法,其特征在于,所述请求端执行顺序为所述目标发送标识所指示的顺序,和/或,所述响应端执行顺序为所述第一网卡根据所述目标发送标识封装在所述第二报文中的目标接收标识所指示的顺序。
  5. 根据权利要求3或4所述的方法,其特征在于,所述第二顺序包括请求端完成顺序和响应端完成顺序,所述传输网络按照第二顺序上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况,包括:
    所述第二网卡按照所述响应端完成顺序向所述第二节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况;
    所述第一网卡按照所述请求端完成顺序向所述第一节点上报所述第一数据传输操作的完成情况和所述第二数据传输操作的完成情况;
    所述请求端完成顺序为所述目标发送标识所指示的顺序,和/或,所述响应端完成顺序为所述第一网卡根据所述目标发送标识封装在所述第二报文中的目标接收标识所指示的顺序。
  6. 一种数据处理方法,其特征在于,应用于通信系统,所述通信系统包括第一节点、第二节点和传输网络,所述传输网络用于在所述第一节点和所述第二节点之间转发数据,所述方法包括:
    所述第一节点依次向所述传输网络提交第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和所述第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,所述第二WR携带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序。
  7. 一种数据处理方法,其特征在于,应用于通信系统,所述通信系统包括第一节点、第二节点和传输网络,所述传输网络用于在所述第一节点和所述第二节点之间转发数据,所述方法包括:
    所述第一节点依次向所述传输网络提交第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和所述第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,所述第二WR携 带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序;
    所述传输网络按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR。
  8. 一种数据处理方法,其特征在于,应用于通信系统,所述通信系统包括第一节点、第二节点和传输网络,所述传输网络用于在所述第一节点和所述第二节点之间转发数据,所述传输网络包括第一网卡和第二网卡,所述方法包括:
    所述第一网卡依次获取所述第一节点提交的第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和所述第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,并且,所述第二WR携带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序;
    所述第一网卡按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR。
  9. 一种数据处理方法,其特征在于,应用于通信系统,所述通信系统包括第一节点、第二节点和传输网络,所述传输网络用于在所述第一节点和所述第二节点之间转发数据,所述传输网络包括第一网卡和第二网卡,所述方法包括:
    所述第二网卡分别接收所述第一网卡发送的第一报文和第二报文,所述第一报文携带第一工作请求WR指向的第一消息,所述第二报文携带第二WR指向的第二消息,所述第一WR和所述第二WR为所述第一节点依次提交的,所述第一消息指示在所述第一节点和所述第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,所述第二报文携带目标接收标识,所述目标接收标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序;
    所述第二网卡根据所述目标接收标识所指示的顺序处理所述第一消息和所述第二消息。
  10. 一种数据处理装置,其特征在于,包括:获取模块,用于依次获取第一节点提交的第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述第一节点和第二节点之间执行第一数据传输操作,所述第二消息指示在所述第一节点和所述第二节点之间执行第二数据传输操作,并且,所述第二WR携带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序;
    处理模块,用于按照所述目标发送标识所指示的顺序处理所述第一WR和所述第二WR。
  11. 一种数据处理装置,其特征在于,包括:
    交互模块,用于依次向传输网络提交第一工作请求WR和第二WR,所述第一WR和所述第二WR分别指向第一消息和第二消息,所述第一消息指示在所述数据处理装置和第二节点之间执行第一数据传输操作,所述第二消息指示在所述数据处理装置和所述第二节点之间执行第二数据传输操作,所述第二WR携带目标发送标识,所述目标发送标识指示所述传输网络处理所述第一WR和所述第二WR之间的顺序。
  12. 一种通信系统,其特征在于,包括如权利要求10所述的数据处理装置和如权利要求11所述的数据处理装置。
  13. 一种计算设备,其特征在于,包括存储器和处理器,所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述计算设备执行如权利要求1至9中任一项所述的方法。
  14. 一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,该程序由计算机执行时,使得所述计算机实施权利要求1至9中任一项所述的方法。
PCT/CN2023/114839 2022-11-15 2023-08-25 一种数据处理方法及装置 WO2024103891A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211425454.4 2022-11-15
CN202211425454.4A CN118055156A (zh) 2022-11-15 2022-11-15 一种数据处理方法及装置

Publications (1)

Publication Number Publication Date
WO2024103891A1 true WO2024103891A1 (zh) 2024-05-23

Family

ID=91045447

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/114839 WO2024103891A1 (zh) 2022-11-15 2023-08-25 一种数据处理方法及装置

Country Status (2)

Country Link
CN (1) CN118055156A (zh)
WO (1) WO2024103891A1 (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102204183A (zh) * 2011-05-09 2011-09-28 华为技术有限公司 报文保序处理方法、保序协处理器和网络设备
CN105511954A (zh) * 2014-09-23 2016-04-20 华为技术有限公司 一种报文处理方法及装置
CN107786593A (zh) * 2016-08-25 2018-03-09 阿里巴巴集团控股有限公司 任务部署方法、实例部署方法、装置及设备
CN109492019A (zh) * 2018-10-16 2019-03-19 平安科技(深圳)有限公司 业务请求响应方法、装置、计算机设备和存储介质
CN112581018A (zh) * 2020-12-28 2021-03-30 北京世纪互联宽带数据中心有限公司 一种流程任务管理方法、系统、装置以及存储介质
US20210141623A1 (en) * 2016-02-05 2021-05-13 Sas Institute Inc. Automated Message-Based Job Flow Resource Coordination in Container-Supported Many Task Computing
US20210224051A1 (en) * 2016-02-05 2021-07-22 Sas Institute Inc. Per task routine distributed resolver

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102204183A (zh) * 2011-05-09 2011-09-28 华为技术有限公司 报文保序处理方法、保序协处理器和网络设备
CN105511954A (zh) * 2014-09-23 2016-04-20 华为技术有限公司 一种报文处理方法及装置
US20210141623A1 (en) * 2016-02-05 2021-05-13 Sas Institute Inc. Automated Message-Based Job Flow Resource Coordination in Container-Supported Many Task Computing
US20210224051A1 (en) * 2016-02-05 2021-07-22 Sas Institute Inc. Per task routine distributed resolver
CN107786593A (zh) * 2016-08-25 2018-03-09 阿里巴巴集团控股有限公司 任务部署方法、实例部署方法、装置及设备
CN109492019A (zh) * 2018-10-16 2019-03-19 平安科技(深圳)有限公司 业务请求响应方法、装置、计算机设备和存储介质
CN112581018A (zh) * 2020-12-28 2021-03-30 北京世纪互联宽带数据中心有限公司 一种流程任务管理方法、系统、装置以及存储介质

Also Published As

Publication number Publication date
CN118055156A (zh) 2024-05-17

Similar Documents

Publication Publication Date Title
US10868767B2 (en) Data transmission method and apparatus in optoelectronic hybrid network
US11991072B2 (en) System and method for facilitating efficient event notification management for a network interface controller (NIC)
US10044616B2 (en) Co-existence of routable and non-routable RDMA solutions on the same network interface
CN107925677B (zh) 用于卸载数据对象复制以及服务功能链管理的方法及交换机
US10521283B2 (en) In-node aggregation and disaggregation of MPI alltoall and alltoallv collectives
US11792132B2 (en) Technologies for aligning network flows to processing resources
US10880204B1 (en) Low latency access for storage using multiple paths
JP2019134461A (ja) ミドルウェアおよびアプリケーションの実行のための設計されたシステムに対するサービス妨害(dos:denial of service)攻撃を防止するためのシステムおよび方法、ならびに、ミドルウェアおよびアプリケーションの実行のための設計されたシステムにおいてサブネットアドミニストレータ(sa:subnet administrator)アクセスに基づいて信頼性のある接続(rc:reliable connection)をサポートするためのシステムおよび方法
KR101201140B1 (ko) 요구-응답 전송 프로토콜들에 의한 신뢰성 있는 단방향메시징
WO2018094743A1 (zh) 处理报文的方法和计算机设备
US20190044879A1 (en) Technologies for reordering network packets on egress
US11750699B2 (en) Small message aggregation
US10135756B2 (en) Transparent and efficient multi-destination TCP communications based on bit indexed explicit replication
WO2014186940A1 (zh) 一种硬盘和数据处理方法
US10372343B2 (en) Storage system, method, and apparatus for processing operation request
WO2017028399A1 (zh) 通信数据传输方法及系统
WO2020134144A1 (zh) 数据或报文转发的方法、节点和系统
WO2024103891A1 (zh) 一种数据处理方法及装置
CN117354253A (zh) 一种网络拥塞通知方法、装置及存储介质
WO2023109891A1 (zh) 组播传输方法、装置和系统
WO2023035722A1 (zh) Rdma数据传输系统、rdma数据传输方法及网络设备
US7962656B1 (en) Command encoding of data to enable high-level functions in computer networks
CN113904976A (zh) 基于rdma用于有损网络的多路径数据传输方法和装置
WO2018121756A1 (zh) 一种提取信道特征的方法及网络设备
WO2020215455A1 (zh) 一种基于Virtio端口传输数据的方法和系统