WO2021057068A1 - Rdma数据流控方法、系统、电子设备及可读存储介质 - Google Patents

Rdma数据流控方法、系统、电子设备及可读存储介质 Download PDF

Info

Publication number
WO2021057068A1
WO2021057068A1 PCT/CN2020/093885 CN2020093885W WO2021057068A1 WO 2021057068 A1 WO2021057068 A1 WO 2021057068A1 CN 2020093885 W CN2020093885 W CN 2020093885W WO 2021057068 A1 WO2021057068 A1 WO 2021057068A1
Authority
WO
WIPO (PCT)
Prior art keywords
credit
receiving
data
sent
receiving end
Prior art date
Application number
PCT/CN2020/093885
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 WO2021057068A1 publication Critical patent/WO2021057068A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]

Definitions

  • the embodiments of this specification relate to the field of data processing technology, and in particular, to an RDMA data flow control method, system, electronic device, and readable storage medium.
  • RDMA technology can solve the delay of server-side data processing in network transmission, RDMA technology is receiving more and more attention in modern enterprise-level data centers and is used by more and more applications.
  • RDMA is a high-throughput, low-latency network communication, especially suitable for use in large-scale parallel computer clusters.
  • RDMA itself lacks a flow control mechanism, which will cause congestion and cause the buffer at the receiving end to be exhausted. Therefore, a new method is urgently needed to improve the RDMA transmission performance.
  • the embodiments of this specification provide a RDMA data transmission and flow control method, electronic equipment, and readable storage medium, which can effectively improve RDMA transmission performance.
  • the first aspect of the embodiments of this specification provides an RDMA data flow control method, which is applied to a transmitting end, and the transmitting end is provided with a transmitting end RDMA device, including:
  • the RDMA device at the transmitting end determines N data packets to be sent according to the data receiving credit, wherein the target credit of the N data packets to be sent is less than the data receiving credit, and N is a positive integer;
  • the RDMA device at the sending end transmits the N data packets to be sent to the receiving end.
  • the second aspect of the embodiments of this specification provides an RDMA data flow control method, which is applied to a receiving end, and the receiving end is provided with a receiving end RDMA device, including:
  • the receiving end RDMA device determines the data receiving credit according to its own data receiving amount, and sends the data receiving credit to the sending end;
  • the RDMA device at the receiving end receives N data packets to be sent sent by the sending end, wherein the N data packets to be sent are determined by the sending end according to the data receiving credit, and the N data packets to be sent The target credit of the data packet is less than the data receiving credit, and N is a positive integer;
  • the RDMA device at the receiving end stores the N data packets to be sent in a storage device at the receiving end.
  • the third aspect of the embodiments of the present specification also provides a sending end, and the sending end is provided with a sending end RDMA device, including:
  • a credit receiving unit used for the sending end RDMA device to obtain data receiving credit sent by the receiving end, wherein the data receiving credit is used to characterize the data receiving amount of the receiving end RDMA device of the receiving end;
  • the data packet determining unit is used for the sending end RDMA device to determine N data packets to be sent according to the data receiving credit, wherein the target credit of the N data packets to be sent is less than the data receiving credit, and N is Positive integer
  • the data transmission unit is used for the sending end RDMA device to transmit the N data packets to be sent to the receiving end.
  • the fourth aspect of the embodiments of the present specification also provides a receiving end, and the receiving end RDMA device is provided in the receiving end, including:
  • the data receiving credit determination any is used for the receiving end RDMA device to determine the data receiving credit according to its own data receiving amount, and sending the data receiving credit to the sending end;
  • a data receiving unit configured for the receiving end RDMA device to receive N data packets to be sent sent by the sending end, wherein the N data packets to be sent are determined by the sending end according to the data receiving credit;
  • the target credit of the N data packets to be sent is less than the data receiving credit;
  • the data storage unit is used for the RDMA device at the receiving end to store the N data packets to be sent in the storage device at the receiving end.
  • the fifth aspect of the embodiments of this specification also provides an RDMA data flow control system, including a receiving end and a transmitting end, including:
  • the receiving end is used by the receiving end RDMA device to determine the data receiving credit according to its own data receiving volume, and sending the data receiving credit to the sending end, where the data receiving credit is used to characterize The amount of data received by the RDMA device at the receiving end;
  • the sending end is used by the sending end RDMA device to receive the data receiving credit, and determining N data packets to be sent according to the data receiving credit, wherein the target credits of the N data packets to be sent Less than the data receiving credit, N is a positive integer; and transmitting the N data packets to be sent to the receiving end;
  • the receiving end is configured to receive the N data packets to be sent by the receiving end RDMA device, and store the N data packets to be sent in the storage device of the receiving end.
  • the sixth aspect of the embodiments of the present specification also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and capable of running on the processor.
  • the processor implements the above-mentioned RDMA data flow when the program is executed. Control method steps.
  • the seventh aspect of the embodiments of this specification also provides a computer-readable storage medium on which a computer program is stored.
  • the program is executed by a processor, the steps of the above-mentioned RDMA data flow control method are provided.
  • the RDMA device at the sending end determines N data packets to be sent according to the received data reception credits, and sends them to the receiving end.
  • the credit is less than the data receiving credit. Since the credit corresponds to the data volume, the larger the credit, the larger the corresponding data volume.
  • the N data to be sent are made
  • the data volume of the packet is also smaller than the data receiving volume, so that the N data packets to be sent are within the receiving performance range of the RDMA device at the receiving end, thereby ensuring that the RDMA device at the receiving end can receive the N data to be distributed 100%
  • Packets can effectively reduce the probability of a data packet being discarded.
  • the probability of the network retransmitting the data packet is also reduced, thereby effectively improving the transmission performance of RDMA.
  • Figure 1 is a system architecture diagram of an RDMA data flow control system in an embodiment of the specification
  • FIG. 3 is a method flowchart of the RDMA data flow control method applied to the receiving end in the embodiment of this specification;
  • FIG. 4 is a schematic diagram of the structure of the sending end in an embodiment of the specification.
  • FIG. 5 is a schematic diagram of the structure of the receiving end in the embodiment of the specification.
  • Fig. 6 is a schematic diagram of the structure of the electronic device in the embodiment of the specification.
  • Remote Direct Memory Access is generated in order to solve the delay of server-side data processing in network transmission; RDMA transfers data directly to the storage area of the computer through the network. Data is quickly moved from a system to a remote system memory without any impact on the operating system, so that much computer processing functions are not needed. It eliminates the overhead of external memory copy and context switching, thus freeing memory bandwidth and CPU cycles for improving application system performance.
  • an embodiment of this specification provides an RDMA data flow control system, including a sending end 100 and a receiving end 200, including:
  • the receiving end 200 is used for the receiving end RDMA device 201 to determine the data receiving credit according to its own data receiving volume, and sending the data receiving credit to the sending end 100, where the data receiving credit is used to characterize the receiving end RDMA The amount of data received by the device 201;
  • the sending end 100 is used for the sending end RDMA device 101 to receive the data receiving credit, and to determine N data packets to be sent according to the data receiving credit, wherein the target credits of the N data packets to be sent are less than all the data packets.
  • Said data receiving credit, N is a positive integer; and transmitting the N data packets to be sent to the receiving end 200;
  • the receiving end 200 is configured to receive the N data packets to be sent by the receiving RDMA device 201, and store the N data packets to be sent in the storage device of the receiving end 200.
  • N is a positive integer, and N can be 1, 2, and 4, for example.
  • the sending end 100 and the receiving end 200 may be electronic devices such as notebook computers, desktop computers, smart phones, smart watches, all-in-one computers, and tablet computers; further, the sending end RDMA device 101 is set in the sending end 100, The receiving end RDMA device 201 is set in the receiving end 200, wherein the transmitting end RDMA device 101 and the receiving end RDMA device 201 can both be RDMA network cards and RDMA chips.
  • the receiving end RDMA device 201 before the receiving end RDMA device 201 sends the data receiving credit to the sending end 100, the receiving end 200 and the sending end 100 first need to establish a connection, and then the receiving end RDMA device 201 sends the data receiving credit to The sending end RDMA device 101.
  • the RDMA device 201 at the receiving end first obtains its own data receiving amount, determines the data receiving credit based on the data receiving amount, and then sends the data receiving credit to the transmitting RDMA device 101.
  • the data reception credit can also be determined according to the data reception volume and the average data volume contained in the message used in the RDMA, which is not specifically limited in the embodiment of this specification.
  • the sending-end RDMA device 101 receives the data receiving credit.
  • the data receiving credit represents The amount of data received by the RDMA device 201 at the receiving end is such that N data packets to be sent are determined according to the data receiving credit, so that the target credit of the N data packets to be sent is smaller than the data receiving credit.
  • the data amount of the N data packets to be sent is also smaller than the data receiving amount, Make the N data packets to be sent within the receiving performance range of the RDMA device 201 at the receiving end, thereby ensuring that the RDMA device 201 at the receiving end can receive the N data packets to be delivered 100%, and reducing the probability of data packets being discarded , When the probability of the data packet being dropped is reduced, the probability of the network retransmitting the data packet is also reduced, thereby effectively improving the transmission performance of RDMA.
  • the receiving end RDMA device 201 adjusts the credit value of its own data receiving credit to the set credit value, where the set The fixed credit value can be 0 or 1 or 2 or the like.
  • the credit value of the data receiving credit is the set credit value, the current data receiving amount of the RDMA device 201 at the receiving end is zero.
  • the receiving end RDMA device 201 adjusts the credit value of its own data receiving credit to the set credit value, and then adjusts the current data reception amount of the receiving end RDMA device 201 to 0 through the set credit value, thereby enabling subsequent adjustments
  • the accuracy of the data receiving credit of the RDMA device 201 at the receiving end is improved.
  • the sending end RDMA device 101 can determine the target credit of the N data packets to be sent;
  • the data receiving credit and the target credit determine the current receiving credit of the receiving end 200; at this time, the current receiving credit of the receiving end 200 is the difference between the data receiving credit and the target credit.
  • the current receiving credit of the receiving end 200 is 60, that is, if the number of data packets corresponding to the current receiving credit is 120, the number of data packets that can be processed by the receiving end RDMA device 201 at one time does not exceed 120, and the sending end RDMA device 101 is prompted to download The number of data packets sent at one time does not exceed 120, then the RDMA device 201 at the receiving end can process all the data packets sent by the RDMA device 101 at the sending end at one time, thereby reducing the probability of a data packet being discarded.
  • the RDMA device 101 at the transmitting end determines the current receiving credit of the receiving end 200 according to the data receiving credit and the target credit, so that the receiving end can be updated in real time.
  • the current receiving credit of 200 makes the number of data packets sent next time by the sending end RDMA device 101 still within the receiving capacity of the receiving end 200, which further ensures that the receiving end RDMA device 201 can receive 100% of all data packets sent next time , which reduces the probability that the next data packet sent is discarded, and when the probability of the next data packet sent is reduced, the probability of the network retransmitting the data packet is also reduced, thereby further improving the RDMA transmission performance.
  • the receiving-end RDMA device 201 may also use the target credit and the set credit value. , Increase the data receiving credit of the receiving end RDMA device 201, where the increased data receiving credit of the receiving end RDMA device 201 is the sum of the credit value of the target credit and the set credit value.
  • the receiving end RDMA device 201 stores the N data packets to be sent in the receiving end storage device, the current data reception volume of the receiving end RDMA device 201 has been restored, and the data of the receiving end RDMA device 201 needs to be increased.
  • Receive credit, and the increased data receiving credit of the receiving end RDMA device 201 is the sum of the credit value of the target credit and the set credit value, thereby ensuring that the receiving end RDMA device 201 completes the processing of the N to-be-sent
  • the credit value of its own data receiving credit will also increase, and the increased credit value is the same as the credit value of the target credit, so that the data receiving credit of the RDMA device 201 at the receiving end will be based on the processed data
  • the situation is updated in real time, which improves the accuracy of receiving credit for its own data acquired by the receiving end RDMA device 201.
  • the receiving-end RDMA device 201 determines whether the newly added credit meets the synchronization condition, wherein the newly-added credit is stored by the receiving-end RDMA device 201
  • the synchronization condition may be that the newly added credit is greater than a preset threshold. If the newly added credit is greater than the preset threshold, the synchronization condition is satisfied, otherwise, the synchronization condition is not satisfied;
  • the synchronization condition may also be that the time interval of the newly added credit exceeds the preset time period. If the time interval of the newly added credit exceeds the preset time period, the synchronization condition is satisfied, otherwise, the synchronization condition is not satisfied .
  • the sending end RDMA device 101 may also obtain the newly added credit for synchronization sent by the receiving end 200; The end RDMA device 101 updates the current receiving credit of the receiving end according to the newly added credit.
  • an RDMA network card 101 is installed in the sending end 100, and an RDMA network card 201 is installed in the receiving end 200.
  • the RDMA network card 201 first establishes a connection with the RDMA network card 101, and the RDMA network card 201 sends its own credit A1 to RDMA.
  • the network card 101 and clears its own credit to 0.
  • the RDMA network card 101 transmits 20 data packets to be sent for the first time, when data transmission is performed again, according to the determination that the current data receiving credit of the RDMA network card 201 is 80, 40 data packets to be sent are determined, and 40 data packets to be sent are determined.
  • the data packet is sent to the RDMA network card 201.
  • the receiving end RDMA device 201 synchronizes the newly added credit to the sending end 100, and adjusts the credit value of its own data receiving credit to the set credit value ; Make the sending end 100 after receiving the new credit, update the current receiving credit of the receiving end 200 according to the added credit, and determine the multiple data packets to be sent according to the updated current receiving credit, thus,
  • the change of the receiving capability of the RDMA device 201 at the receiving end is completed through the circulation of the newly added credits, and the receiving capability of the RDMA device 201 at the receiving end can be continuously updated and synchronized to the sending end 100, thereby ensuring that the sending end 100 cannot Intermittently sending data packets that do not exceed the receiving performance of the receiving end RDMA device 201 to the receiving end DMA device 201 for processing, which can effectively alleviate the RDMA network congestion problem, and also reduce the buffer depletion caused by the receiving end RDMA device 201 The probability of data packet being discarded and
  • the RDMA device at the transmitting end determines N data packets to be sent according to the received data receiving credits, and sends them to the receiving end.
  • the data receiving credit because the credit corresponds to the data volume, the larger the credit, the larger the corresponding data volume. That is, when it is determined that the target credit is less than the data receiving credit, the data of the N data packets to be sent are made
  • the amount is also smaller than the data receiving amount, so that the N data packets to be sent are within the receiving performance range of the RDMA device at the receiving end, thereby ensuring that the RDMA device at the receiving end can receive 100% of the N data packets to be sent. This effectively reduces the probability of the data packet being discarded. When the probability of the data packet being discarded is reduced, the probability of the network retransmitting the data packet is also reduced, thereby effectively improving the RDMA transmission performance.
  • an embodiment of this specification provides an RDMA data flow control method, which is applied to a sending end, and the sending end is provided with a sending end RDMA device, as shown in FIG. 2 ,include:
  • Step S202 The RDMA device at the transmitting end obtains a data receiving credit sent by the receiving end, where the data receiving credit is used to characterize the amount of data received by the receiving RDMA device at the receiving end;
  • Step S204 The RDMA device at the transmitting end determines N data packets to be sent according to the data receiving credits, where the target credits of the N data packets to be sent are less than the data receiving credits, and N is a positive integer;
  • Step S206 The RDMA device at the sending end transmits the N data packets to be sent to the receiving end.
  • the method includes:
  • the sending end RDMA device determines the current receiving credit of the receiving end according to the data receiving credit and the target credit.
  • the method includes:
  • the RDMA device at the transmitting end updates the current receiving credit of the receiving end according to the newly added credit.
  • an embodiment of this specification provides an RDMA data flow control method, which is applied to a receiving end, and the receiving end is provided with a receiving end RDMA device, as shown in FIG. 3 ,include:
  • Step S302 The receiving end RDMA device determines the data receiving credit according to its own data receiving amount, and sends the data receiving credit to the sending end;
  • Step S304 The RDMA device at the receiving end receives N data packets to be sent sent by the sending end, where the N data packets to be sent are determined by the sending end according to the data receiving credit, and the N The target credit of each data packet to be sent is less than the data receiving credit, and N is a positive integer;
  • Step S306 The RDMA device at the receiving end stores the N data packets to be sent in a storage device at the receiving end.
  • the method further includes:
  • the receiving end RDMA device adjusts the credit value of its own data receiving credit to the set credit value.
  • the method further includes:
  • the RDMA device at the receiving end increases the data receiving credit of the RDMA device at the receiving end according to the target credit and the set credit value.
  • the method further includes:
  • the receiving end RDMA device judges whether the newly added credit meets the synchronization condition, where the newly added credit is the data receiving credit added after the receiving end RDMA device stores the N data packets to be sent;
  • the receiving end RDMA device determines that the newly added credit meets the synchronization condition, synchronizes the newly added credit to the sending end, and adjusts the credit value of its own data receiving credit to the set credit value .
  • an embodiment of this specification provides a sending end, where a sending end RDMA device is provided in the sending end, as shown in FIG. 4, including:
  • the credit receiving unit 401 is used for the RDMA device at the transmitting end to obtain the data receiving credit sent by the receiving end, where the data receiving credit is used to characterize the data receiving amount of the receiving end RDMA device at the receiving end;
  • the data packet determining unit 402 is used for the RDMA device at the transmitting end to determine N data packets to be sent according to the data receiving credits, where the target credits of the N data packets to be sent are less than the data receiving credits, and N Is a positive integer;
  • the data transmission unit 403 is used for the RDMA device at the transmitting end to transmit the N data packets to be sent to the receiving end.
  • the sending end further includes:
  • the current credit determining unit is configured to determine the current receiving credit of the receiving end according to the data receiving credit and the target credit after the transmitting end RDMA device transmits the N data packets to be sent to the receiving end.
  • the sending end further includes:
  • a newly-added credit obtaining unit is used to obtain, after the sending-end RDMA device transmits the N data packets to be sent to the receiving end, the newly-added credit for synchronization sent by the receiving end, and the newly-added credit is
  • the receiving end RDMA device stores the data receiving credits added after the N data packets to be sent;
  • the current credit update unit is used for the RDMA device at the transmitting end to update the current received credit of the receiving end according to the newly added credit.
  • an embodiment of the present specification provides a receiving end, which is provided with a receiving end RDMA device, as shown in FIG. 5, including:
  • the data reception credit determining unit 501 is configured to determine the data reception credit by the receiving end RDMA device according to its own data reception volume, and send the data reception credit to the sending end;
  • the data receiving unit 502 is used for the receiving end RDMA device to receive N data packets to be sent sent by the sending end, wherein the N data packets to be sent are determined by the sending end according to the data receiving credit , The target credit of the N data packets to be sent is less than the data receiving credit, and N is a positive integer;
  • the data storage unit 503 is used for the RDMA device at the receiving end to store the N data packets to be sent in the storage device at the receiving end.
  • the receiving end further includes:
  • the credit adjustment unit is configured to adjust the credit value of its own data receiving credit to a set credit value after the receiving end RDMA device sends the data receiving credit to the sending end.
  • the receiving end further includes:
  • the credit adding unit is used for the receiving end RDMA device to increase the data receiving credit of the receiving end RDMA device according to the target credit and the set credit value.
  • the receiving end further includes:
  • the synchronization condition determining unit is used to determine whether the newly added credit meets the synchronization condition after the receiving end RDMA device increases the data receiving credit of the receiving end RDMA device, wherein the newly added credit is stored by the receiving end RDMA device Data receiving credits added after the N data packets to be sent;
  • the synchronization unit is used for the receiving end RDMA device to determine that the newly added credit meets the synchronization condition, synchronize the newly added credit to the sending end, and adjust the credit value of its own data receiving credit to all Said set credit value.
  • an embodiment of this specification also provides an electronic device, as shown in FIG. 6, including a memory 604, a processor 602, and storage on the memory 604
  • a computer program that can be run on the processor 602, and when the processor 602 executes the program, the steps of any method of the RDMA data flow control method described above are implemented.
  • the bus architecture (represented by a bus 600), the bus 600 can include any number of interconnected buses and bridges, the bus 600 will include one or N processors represented by the processor 602 and a memory 604 representing The various circuits of the memory are linked together.
  • the bus 600 can also link various other circuits such as peripheral devices, voltage regulators, power management circuits, etc., which are all known in the art, and therefore, no further description will be given herein.
  • the bus interface 605 provides an interface between the bus 600 and the receiver 601 and the transmitter 603.
  • the receiver 601 and the transmitter 603 may be the same element, that is, a transceiver, which provides a unit for communicating with various other devices on the transmission medium.
  • the processor 602 is responsible for managing the bus 600 and general processing, and the memory 604 may be used to store data used by the processor 602 when performing operations.
  • the embodiment of this specification also provides a computer-readable storage medium on which a computer program is stored.
  • the program is executed by a processor, the foregoing The steps of any method of the RDMA data flow control method are described.
  • These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
  • the instructions provide steps for implementing the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本说明书实施例公开了一种RDMA数据流控方法,应用于发送端中,所述发送端中设置有发送端RDMA设备,所述发送端RDMA设备获取接收端发送的数据接收信用,其中,所述数据接收信用用于表征所述接收端的接收端RDMA设备的数据接收量;所述发送端RDMA设备根据所述数据接收信用,确定N个待发送数据包,其中,所述N个待发送数据包的目标信用小于所述数据接收信用;所述发送端RDMA设备将所述N个待发送数据包传输给接收端。

Description

RDMA数据流控方法、系统、电子设备及可读存储介质 技术领域
本说明书实施例涉及数据处理技术领域,尤其涉及一种RDMA数据流控方法、系统、电子设备及可读存储介质。
背景技术
由于RDMA技术能够解决网络传输中服务器端数据处理的延迟,使得在现代企业级数据中心中RDMA技术正在受到越来越多的关注,同时被越来越多的应用所使用。RDMA是高吞吐、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。但是RDMA自身缺乏流控机制,因此会引起拥塞并且造成接收端缓冲区耗尽,因而,亟需一种新的方法,来提升RDMA传输性能。
发明内容
本说明书实施例提供了一种RDMA数据发送及流控方法、电子设备及可读存储介质,能够有效提高RDMA的传输性能。
本说明书实施例第一方面提供了一种RDMA数据流控方法,应用于发送端中,所述发送端中设置有发送端RDMA设备,包括:
所述发送端RDMA设备获取接收端发送的数据接收信用,其中,所述数据接收信用用于表征所述接收端的接收端RDMA设备的数据接收量;
所述发送端RDMA设备根据所述数据接收信用,确定N个待发送数据包,其中,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;
所述发送端RDMA设备将所述N个待发送数据包传输给接收端。
本说明书实施例第二方面提供了一种RDMA数据流控方法,应用于接收端中,所述接收端中设置有接收端RDMA设备,包括:
所述接收端RDMA设备根据自身的数据接收量,确定出数据接收信用,并将所述数据接收信用发送给发送端;
所述接收端RDMA设备接收所述发送端发送的N个待发送数据包,其中,所述N 个待发送数据包是所述发送端根据所述数据接收信用确定的,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;
所述接收端RDMA设备将所述N个待发送数据包存储到所述接收端的存储设备中。
本说明书实施例第三方面还提供了一种发送端,所述发送端中设置有发送端RDMA设备,包括:
信用接收单元,用于所述发送端RDMA设备获取接收端发送的数据接收信用,其中,所述数据接收信用用于表征所述接收端的接收端RDMA设备的数据接收量;
数据包确定单元,用于所述发送端RDMA设备根据所述数据接收信用,确定N个待发送数据包,其中,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;
数据传输单元,用于所述发送端RDMA设备将所述N个待发送数据包传输给接收端。
本说明书实施例第四方面还提供了一种接收端,所述接收端中设置有接收端RDMA设备,包括:
数据接收信用确定any,用于所述接收端RDMA设备根据自身的数据接收量,确定出数据接收信用,并将所述数据接收信用发送给发送端;
数据接收单元,用于所述接收端RDMA设备接收所述发送端发送的N个待发送数据包,其中,所述N个待发送数据包是所述发送端根据所述数据接收信用确定的,所述N个待发送数据包的目标信用小于所述数据接收信用;
数据存储单元,用于所述接收端RDMA设备将所述N个待发送数据包存储到所述接收端的存储设备中。
本说明书实施例第五方面还提供了一种RDMA数据流控系统,包括接收端和发送端,包括:
所述接收端,用于所述接收端RDMA设备根据自身的数据接收量,确定出数据接收信用,并将所述数据接收信用发送给所述发送端,其中,所述数据接收信用用于表征所述接收端RDMA设备的数据接收量;
所述发送端,用于所述发送端RDMA设备接收所述数据接收信用,并根据所述数据接收信用,确定的N个待发送数据包,其中,所述N个待发送数据包的目标信用小于 所述数据接收信用,N为正整数;并将所述N个待发送数据包传输给所述接收端;
所述接收端,用于所述接收端RDMA设备接收所述N个待发送数据包,并将所述N个待发送数据包存储到所述接收端的存储设备中。
本说明书实施例第六方面还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述RDMA数据流控方法的步骤。
本说明书实施例第七方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时上述RDMA数据流控方法的步骤。
本说明书实施例的有益效果如下:
基于上述技术方案,发送端RDMA设备根据接收到的所述数据接收信用,确定出N个待发送数据包,并将其发送给接收端,此时,由于所述N个待发送数据包的目标信用小于所述数据接收信用,由于信用与数据量对应,信用越大其对应的数据量也越大,即在确定所述目标信用小于所述数据接收信用时,使得所述N个待发送数据包的数据量也小于所述数据接收量,使得所述N个待发送数据包在接收端RDMA设备的接收性能范围内,从而确保接收端RDMA设备能够100%的接收所述N个待发放数据包,能够有效降低了数据包被丢弃的概率,在数据包被丢弃的概率降低的情况下使得网络重传数据包的概率也随之降低,进而能够有效提高RDMA的传输性能。
附图说明
图1为本说明书实施例中RDMA数据流控系统的系统架构图;
图2为本说明书实施例中应用于发送端的RDMA数据流控方法的方法流程图;
图3为本说明书实施例中应用于接收端的RDMA数据流控方法的方法流程图;
图4为本说明书实施例中发送端的结构示意图;
图5为本说明书实施例中接收端的结构示意图;
图6为本说明书实施例中电子设备的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的 技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
本说明书实施例中,远程直接数据存取(Remote Direct Memory Access,简称RDMA),为了解决网络传输中服务器端数据处理的延迟而产生的;RDMA通过网络把数据直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用系统性能。
第一方面,如图1所示,本说明书实施例提供一种RDMA的数据流控系统,包括发送端100和接收端200,包括:
接收端200,用于接收端RDMA设备201根据自身的数据接收量,确定出数据接收信用,并将所述数据接收信用发送给发送端100,其中,所述数据接收信用用于表征接收端RDMA设备201的数据接收量;
发送端100,用于发送端RDMA设备101接收所述数据接收信用,并根据所述数据接收信用,确定的N个待发送数据包,其中,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;并将所述N个待发送数据包传输给接收端200;
接收端200,用于接收端RDMA设备201接收所述N个待发送数据包,并将所述N个待发送数据包存储到接收端200的存储设备中。
本说明书实施例中,N为正整数,N例如可以是1、2和4等值。
本说明书实施例中,发送端100和接收端200可以是笔记本电脑、台式电脑、智能手机、智能手表、一体机和平板电脑等电子设备;进一步,发送端RDMA设备101设置在发送端100中,接收端RDMA设备201设置在接收端200中,其中,发送端RDMA设备101和接收端RDMA设备201均可以为RDMA网卡和RDMA芯片等。
本说明书实施例中,接收端RDMA设备201将所述数据接收信用发送给发送端100之前,接收端200和发送端100首先需要建立连接,然后接收端RDMA设备201将所述数据接收信用发送给发送端RDMA设备101。
本说明书实施例中,接收端RDMA设备201首先获取自身的数据接收量,根据所述数据接收量,确定出数据接收信用,然后将所述数据接收信用发送给发送端RDMA设备101。
具体来讲,在根据所述数据接收量,确定出所述数据接收信用过程中,由于RDMA在传输中通常都是4K/8K/16k等长度级别的报文发送,即使上层业务需要发送100M的数据块,在RDMA这层也会拆分成4K/8K/16k等长度级别的报文进行发送,因此,根据所述数据接收量和RDMA中采用的报文包含的最大数据量,确定所述数据接收信用;若所述数据接收量用S表示,报文包含的最大数据量用D表示,且所述数据接收信用用X表示时,X=S/D,例如若S=100M,而D=8K,则X=100M/8K=12800;当然,也可以是X=S/(100×D)=128等。
当然,还可以根据所述数据接收量和RDMA中采用的报文包含的平均数据量,确定出所述数据接收信用,本说明书实施例不作具体限制。
本说明书实施例中,接收端RDMA设备201将所述数据接收信用发送给发送端RDMA设备101之后,发送端RDMA设备101接收到所述数据接收信用,此时,由于所述数据接收信用表征了接收端RDMA设备201的数据接收量,使得根据所述数据接收信用,确定出N个待发送数据包,使得所述N个待发送数据包的目标信用小于所述数据接收信用,由于信用与数据量对应,信用越大其对应的数据量也越大,即在确定所述目标信用小于所述数据接收信用时,使得所述N个待发送数据包的数据量也小于所述数据接收量,使得所述N个待发送数据包在接收端RDMA设备201的接收性能范围内,从而确保接收端RDMA设备201能够100%的接收所述N个待发放数据包,降低了数据包被丢弃的概率,在数据包被丢弃的概率降低的情况下使得网络重传数据包的概率也随之降低,进而能够有效提高RDMA的传输性能。
本说明书实施例中,接收端RDMA设备201将所述数据接收信用发送给发送端100之后,接收端RDMA设备201将自身的数据接收信用的信用值调整为设定信用值,其中,所述设定信用值可以为0或1或2等值,当数据接收信用的信用值为所述设定信用值时,接收端RDMA设备201的当前数据接收量为0。
如此,接收端RDMA设备201将自身的数据接收信用的信用值调整为设定信用值,进而通过所述设定信用值将接收端RDMA设备201的当前数据接收量调整为0,进而使得后续调整接收端RDMA设备201的数据接收信用的准确性提高。
本说明书实施例中,发送端RDMA设备101将所述N个待发送数据包传输给接收端之后,发送端RDMA设备101可以确定出所述N个待发送数据包的目标信用;再根据所述数据接收信用和所述目标信用,确定接收端200的当前接收信用;此时,接收端200的当前接收信用为所述数据接收信用和所述目标信用之间的差值。
例如若所述数据接收信用用A1表示,所述目标信用用A2表示,则所述当前接收信用A3表示,则A3=A1-A2,例如A1=100,A2=40,则A3=60,即确定接收端200的当前接收信用为60,即若当前接收信用对应的数据包数量为120,则使得接收端RDMA设备201能够一次处理的数据包的数量不超过120,促使发送端RDMA设备101下一次发送的数据包的数量不超过120,那么接收端RDMA设备201能够一次处理完成发送端RDMA设备101发送的所有数据包,降低数据包被丢弃情况出现的概率。
如此,通过此种方式发送端RDMA设备101在发放所述N个待发送数据包之后,根据所述数据接收信用和所述目标信用,确定接收端200的当前接收信用,从而能够实时更新接收端200的当前接收信用,使得发送端RDMA设备101在下次发送的数据包的数量仍在接收端200的接收能力范围内,进一步确保接收端RDMA设备201能够100%的接收下一次发送的所有数据包,降低了下一次发送的数据包被丢弃的概率,在下一次发送的数据包概率降低的情况下使得网络重传数据包的概率也随之降低,进而能够进一步提高RDMA的传输性能。
本说明书实施例中,接收端RDMA设备201将所述N个待发送数据包存储到所述接收端的存储设备中之后,接收端RDMA设备201还可以根据所述目标信用和所述设定信用值,增加接收端RDMA设备201的数据接收信用,其中,增加后的接收端RDMA设备201的数据接收信用为所述目标信用的信用值和所述设定信用值之和。
如此,接收端RDMA设备201将所述N个待发送数据包存储到所述接收端的存储设备中之后,接收端RDMA设备201的当前数据接收量已经恢复,进而需要增加接收端RDMA设备201的数据接收信用,而且增加后的接收端RDMA设备201的数据接收信用为所述目标信用的信用值和所述设定信用值之和,从而确保了接收端RDMA设备201完成对所述N个待发送数据包处理后,其自身的数据接收信用的信用值也会随之增加,其增加的信用值与所述目标信用的信用值相同,进而使得接收端RDMA设备201的数据接收信用会根据处理数据的情况实时更新,提高了接收端RDMA设备201获取到的自身数据接收信用的准确度。
本说明书实施例中,接收端RDMA设备201增加接收端RDMA设备201的数据接收信用之后,接收端RDMA设备201判断新增信用是否满足同步条件,其中所述新增信用为接收端RDMA设备201存储所述N个待发送数据包后增加的数据接收信用;接收端RDMA设备201判断出所述新增信用满足所述同步条件,将所述新增信用同步给发送端100,以及接收端RDMA设备201将自身的数据接收信用的信用值调整为设定信 用值;接收端RDMA设备201判断出所述新增信用不满足所述同步条件,则不进行同步操作。
具体来讲,所述同步条件可以是所述新增信用大于预设阈值,若所述新增信用大于预设阈值,则满足所述同步条件,反之,则不满足所述同步条件;所述同步条件还可以是所述新增信用的时间间隔超过预设时长,若所述新增信用的时间间隔超过所述预设时长,则满足所述同步条件,反之,则不满足所述同步条件。
本说明书实施例中,发送端RDMA设备101将所述N个待发送数据包传输给接收端之后,发送端RDMA设备101还可以获取接收端200发送的用于同步的所述新增信用;发送端RDMA设备101根据所述新增信用,更新所述接收端的当前接收信用。
例如,如图1所示,发送端100中安装有RDMA网卡101,接收端200中安装有RDMA网卡201,RDMA网卡201首先与RDMA网卡101建立连接,且RDMA网卡201将自身信用A1发送给RDMA网卡101,并将自身信用清0。
其中,RDMA网卡101接收到A1之后,根据A1,确定20个待发送数据包,其中,若A1为100且20个待发送数据包的信用<100;并将20个待发送数据包发送给RDMA网卡201,此时,根据A1和20个待发送数据的信用为20,确定RDMA网卡201的当前数据接收信用为A1-20=100-20=80。
其中,RDMA网卡201接收到20个待发送数据包之后,将20个待发送数据包存储到接收端200的存储设备中,此时,RDMA网卡201增加自身信用=0+20个待发送数据包的信用20=20,RDMA网卡201每隔2秒将自身信用同步给RDMA网卡101,此时,当前时刻距离发放A1的时刻未到2秒,因此,不需同步。
进一步地,RDMA网卡101在首次传输20个待发送数据包之后,再次进行数据传输时,根据确定RDMA网卡201的当前数据接收信用为80,确定40个待发送数据包,并将40个待发送数据包发送给RDMA网卡201,其中,40个待发送数据包的信用为40,由于40<80,然后确定出RDMA网卡201的当前数据接收信用为80-40个待发送数据的信用为40=40。
进一步地,若RDMA网卡201接收到40个待发送数据包之后,将40个待发送数据包存储到接收端200的存储设备中,此时,若40个待发送数据包的信用为40,则确定RDMA网卡401增加自身信用=40+20=60,此时,RDMA网卡201检测到当前时刻与发送A1时刻之间的时间间隔满了2秒,则将60同步给RDMA网卡101。
此时,RDMA网卡101接收到同步后的60之后,根据60和第二次确定出的当前数据接收信用40,更新RDMA网卡201的信用=60+40=100;一直循环上述步骤,直至完成所有数据的传输。
如此,使得接收端RDMA设备201检测到所述新增信用满足所述同步条件之后,将所述新增信用同步给发送端100,并将自身的数据接收信用的信用值调整为设定信用值;使得发送端100接收到所述新增信用之后,根据所述新增信用,更新接收端200的当前接收信用,根据更新后的当前接收信用来确定待发送的多个数据包,由此,使得接收端RDMA设备201的接收能力的变化通过所述新增信用的流转来完成,能够不间断的更新接收端RDMA设备201的接收能力并同步到发送端100,从而能够确保发送端100能够不间断的将不超过接收端RDMA设备201的接收性能的数据包发送给接收端DMA设备201进行处理,能够有效缓解RDMA网络拥塞问题,同时也能降低由于接收端RDMA设备201的缓冲区耗尽导致出现数据包被丢弃和网络重传的概率,进而能够有效提高RDMA的数据传输性能、稳定性和扩展性。
以及,发送端RDMA设备根据接收到的所述数据接收信用,确定出N个待发送数据包,并将其发送给接收端,此时,由于所述N个待发送数据包的目标信用小于所述数据接收信用,由于信用与数据量对应,信用越大其对应的数据量也越大,即在确定所述目标信用小于所述数据接收信用时,使得所述N个待发送数据包的数据量也小于所述数据接收量,使得所述N个待发送数据包在接收端RDMA设备的接收性能范围内,从而确保接收端RDMA设备能够100%的接收所述N个待发放数据包,能够有效降低了数据包被丢弃的概率,在数据包被丢弃的概率降低的情况下使得网络重传数据包的概率也随之降低,进而能够有效提高RDMA的传输性能。
第二方面,基于与第一方面的同一发明构思,本说明书实施例提供一种RDMA数据流控方法,应用于发送端中,所述发送端中设置有发送端RDMA设备,如图2所示,包括:
步骤S202、所述发送端RDMA设备获取接收端发送的数据接收信用,其中,所述数据接收信用用于表征所述接收端的接收端RDMA设备的数据接收量;
步骤S204、所述发送端RDMA设备根据所述数据接收信用,确定N个待发送数据包,其中,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;
步骤S206、所述发送端RDMA设备将所述N个待发送数据包传输给接收端。
在一种可选实施方式中,所述发送端RDMA设备将所述N个待发送数据包传输给接收端之后,包括:
所述发送端RDMA设备根据所述数据接收信用和所述目标信用,确定所述接收端的当前接收信用。
在一种可选实施方式中,所述发送端RDMA设备将所述N个待发送数据包传输给接收端之后,包括:
所述发送端RDMA设备获取所述接收端发送的用于同步的新增信用,所述新增信用为所述接收端RDMA设备存储所述N个待发送数据包后增加的数据接收信用;
所述发送端RDMA设备根据所述新增信用,更新所述接收端的当前接收信用。
第三方面,基于与第一方面的同一发明构思,本说明书实施例提供一种RDMA数据流控方法,应用于接收端中,所述接收端中设置有接收端RDMA设备,如图3所示,包括:
步骤S302、所述接收端RDMA设备根据自身的数据接收量,确定出数据接收信用,并将所述数据接收信用发送给发送端;
步骤S304、所述接收端RDMA设备接收所述发送端发送的N个待发送数据包,其中,所述N个待发送数据包是所述发送端根据所述数据接收信用确定的,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;
步骤S306、所述接收端RDMA设备将所述N个待发送数据包存储到所述接收端的存储设备中。
在一种可选实施方式中,所述接收端RDMA设备将所述数据接收信用发送给发送端之后,所述方法还包括:
所述接收端RDMA设备将自身的数据接收信用的信用值调整为设定信用值。
在一种可选实施方式中,所述接收端RDMA设备将所述N个待发送数据包存储到所述接收端的存储设备中之后,所述方法还包括:
所述接收端RDMA设备根据所述目标信用和所述设定信用值,增加所述接收端RDMA设备的数据接收信用。
在一种可选实施方式中,所述接收端RDMA设备增加所述接收端RDMA设备的数据接收信用之后,所述方法还包括:
所述接收端RDMA设备判断新增信用是否满足同步条件,其中,所述新增信用为所述接收端RDMA设备存储所述N个待发送数据包后增加的数据接收信用;
所述接收端RDMA设备判断出所述新增信用满足所述同步条件,将所述新增信用同步给所述发送端,并将自身的数据接收信用的信用值调整为所述设定信用值。
第四方面,基于与第二方面的同一发明构思,本说明书实施例提供一种发送端,所述发送端中设置有发送端RDMA设备,如图4所示,包括:
信用接收单元401,用于所述发送端RDMA设备获取接收端发送的数据接收信用,其中,所述数据接收信用用于表征所述接收端的接收端RDMA设备的数据接收量;
数据包确定单元402,用于所述发送端RDMA设备根据所述数据接收信用,确定N个待发送数据包,其中,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;
数据传输单元403,用于所述发送端RDMA设备将所述N个待发送数据包传输给接收端。
在一种可选实施方式中,所述发送端还包括:
当前信用确定单元,用于所述发送端RDMA设备将所述N个待发送数据包传输给接收端之后,根据所述数据接收信用和所述目标信用,确定所述接收端的当前接收信用。
在一种可选实施方式中,所述发送端还包括:
新增信用获取单元,用于所述发送端RDMA设备将所述N个待发送数据包传输给接收端之后,获取所述接收端发送的用于同步的新增信用,所述新增信用为所述接收端RDMA设备存储所述N个待发送数据包后增加的数据接收信用;
当前信用更新单元,用于所述发送端RDMA设备根据所述新增信用,更新所述接收端的当前接收信用。
第五方面,基于与第三方面的同一发明构思,本说明书实施例提供一种接收端,所述接收端中设置有接收端RDMA设备,如图5所示,包括:
数据接收信用确定单元501,用于所述接收端RDMA设备根据自身的数据接收量,确定出数据接收信用,并将所述数据接收信用发送给发送端;
数据接收单元502,用于所述接收端RDMA设备接收所述发送端发送的N个待发送数据包,其中,所述N个待发送数据包是所述发送端根据所述数据接收信用确定的,所 述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;
数据存储单元503,用于所述接收端RDMA设备将所述N个待发送数据包存储到所述接收端的存储设备中。
在一种可选实施方式中,所述接收端还包括:
信用调整单元,用于所述接收端RDMA设备将所述数据接收信用发送给发送端之后,将自身的数据接收信用的信用值调整为设定信用值。
在一种可选实施方式中,所述接收端还包括:
信用增加单元,用于所述接收端RDMA设备根据所述目标信用和所述设定信用值,增加所述接收端RDMA设备的数据接收信用。
在一种可选实施方式中,所述接收端还包括:
同步条件判断单元,用于所述接收端RDMA设备增加所述接收端RDMA设备的数据接收信用之后,判断新增信用是否满足同步条件,其中,所述新增信用为所述接收端RDMA设备存储所述N个待发送数据包后增加的数据接收信用;
同步单元,用于所述接收端RDMA设备判断出所述新增信用满足所述同步条件,将所述新增信用同步给所述发送端,并将自身的数据接收信用的信用值调整为所述设定信用值。
第六方面,基于与前述实施例中RDMA数据流控方法同样的发明构思,本说明书实施例还提供一种电子设备,如图6所示,包括存储器604、处理器602及存储在存储器604上并可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现前文所述RDMA数据流控方法的任一方法的步骤。
其中,在图6中,总线架构(用总线600来代表),总线600可以包括任意数量的互联的总线和桥,总线600将包括由处理器602代表的一个或N个处理器和存储器604代表的存储器的各种电路链接在一起。总线600还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口605在总线600和接收器601和发送器603之间提供接口。接收器601和发送器603可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器602负责管理总线600和通常的处理,而存储器604可以被用于存储处理器602在执行操作时所使用的数据。
第七方面,基于与前述实施例中RDMA数据流控方法的发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述RDMA数据流控方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

Claims (17)

  1. 一种RDMA数据流控方法,应用于发送端中,所述发送端中设置有发送端RDMA设备,包括:
    所述发送端RDMA设备获取接收端发送的数据接收信用,其中,所述数据接收信用用于表征所述接收端的接收端RDMA设备的数据接收量;
    所述发送端RDMA设备根据所述数据接收信用,确定N个待发送数据包,其中,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;
    所述发送端RDMA设备将所述N个待发送数据包传输给接收端。
  2. 如权利要求1所述的流控方法,所述发送端RDMA设备将所述N个待发送数据包传输给接收端之后,包括:
    所述发送端RDMA设备根据所述数据接收信用和所述目标信用,确定所述接收端的当前接收信用。
  3. 如权利要求1所述的流控方法,所述发送端RDMA设备将所述N个待发送数据包传输给接收端之后,包括:
    所述发送端RDMA设备获取所述接收端发送的用于同步的新增信用,所述新增信用为所述接收端RDMA设备存储所述N个待发送数据包后增加的数据接收信用;
    所述发送端RDMA设备根据所述新增信用,更新所述接收端的当前接收信用。
  4. 一种RDMA数据流控方法,应用于接收端中,所述接收端中设置有接收端RDMA设备,包括:
    所述接收端RDMA设备根据自身的数据接收量,确定出数据接收信用,并将所述数据接收信用发送给发送端;
    所述接收端RDMA设备接收所述发送端发送的N个待发送数据包,其中,所述N个待发送数据包是所述发送端根据所述数据接收信用确定的,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;
    所述接收端RDMA设备将所述N个待发送数据包存储到所述接收端的存储设备中。
  5. 如权利要求4所述的流控方法,所述接收端RDMA设备将所述数据接收信用发送给发送端之后,所述方法还包括:
    所述接收端RDMA设备将自身的数据接收信用的信用值调整为设定信用值。
  6. 如权利要求5所述的流控方法,所述接收端RDMA设备将所述N个待发送数据包存储到所述接收端的存储设备中之后,所述方法还包括:
    所述接收端RDMA设备根据所述目标信用和所述设定信用值,增加所述接收端 RDMA设备的数据接收信用。
  7. 如权利要求6所述的流控方法,所述接收端RDMA设备增加所述接收端RDMA设备的数据接收信用之后,所述方法还包括:
    所述接收端RDMA设备判断新增信用是否满足同步条件,其中,所述新增信用为所述接收端RDMA设备存储所述N个待发送数据包后增加的数据接收信用;
    所述接收端RDMA设备判断出所述新增信用满足所述同步条件,将所述新增信用同步给所述发送端,并将自身的数据接收信用的信用值调整为所述设定信用值。
  8. 一种发送端,所述发送端中设置有发送端RDMA设备,包括:
    信用接收单元,用于所述发送端RDMA设备获取接收端发送的数据接收信用,其中,所述数据接收信用用于表征所述接收端的接收端RDMA设备的数据接收量;
    数据包确定单元,用于所述发送端RDMA设备根据所述数据接收信用,确定N个待发送数据包,其中,所述N个待发送数据包的目标信用小于所述数据接收信用;
    数据传输单元,用于所述发送端RDMA设备将所述N个待发送数据包传输给接收端,N为正整数。
  9. 如权利要求8所述的发送端,还包括:
    当前信用确定单元,用于所述发送端RDMA设备将所述N个待发送数据包传输给接收端之后,根据所述数据接收信用和所述目标信用,确定所述接收端的当前接收信用。
  10. 如权利要求8所述的发送端,还包括:
    新增信用获取单元,用于所述发送端RDMA设备将所述N个待发送数据包传输给接收端之后,获取所述接收端发送的用于同步的新增信用,所述新增信用为所述接收端RDMA设备存储所述N个待发送数据包后增加的数据接收信用;
    当前信用更新单元,用于所述发送端RDMA设备根据所述新增信用,更新所述接收端的当前接收信用。
  11. 一种接收端,所述接收端中设置有接收端RDMA设备,包括:
    数据接收信用确定单元,用于所述接收端RDMA设备根据自身的数据接收量,确定出数据接收信用,并将所述数据接收信用发送给发送端;
    数据接收单元,用于所述接收端RDMA设备接收所述发送端发送的N个待发送数据包,其中,所述N个待发送数据包是所述发送端根据所述数据接收信用确定的,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;
    数据存储单元,用于所述接收端RDMA设备将所述N个待发送数据包存储到所述接收端的存储设备中。
  12. 如权利要求11所述的接收端,还包括:
    信用调整单元,用于所述接收端RDMA设备将所述数据接收信用发送给发送端之后,将自身的数据接收信用的信用值调整为设定信用值。
  13. 如权利要求12所述的接收端,还包括:
    信用增加单元,用于所述接收端RDMA设备根据所述目标信用和所述设定信用值,增加所述接收端RDMA设备的数据接收信用。
  14. 如权利要求13所述的接收端,还包括:
    同步条件判断单元,用于所述接收端RDMA设备增加所述接收端RDMA设备的数据接收信用之后,判断新增信用是否满足同步条件,其中,所述新增信用为所述接收端RDMA设备存储所述N个待发送数据包后增加的数据接收信用;
    同步单元,用于所述接收端RDMA设备判断出所述新增信用满足所述同步条件,将所述新增信用同步给所述发送端,并将自身的数据接收信用的信用值调整为所述设定信用值。
  15. 一种RDMA数据流控系统,包括接收端和发送端,包括:
    所述接收端,用于所述接收端RDMA设备根据自身的数据接收量,确定出数据接收信用,并将所述数据接收信用发送给所述发送端,其中,所述数据接收信用用于表征所述接收端RDMA设备的数据接收量;
    所述发送端,用于所述发送端RDMA设备接收所述数据接收信用,并根据所述数据接收信用,确定的N个待发送数据包,其中,所述N个待发送数据包的目标信用小于所述数据接收信用,N为正整数;并将所述N个待发送数据包传输给所述接收端;
    所述接收端,用于所述接收端RDMA设备接收所述N个待发送数据包,并将所述N个待发送数据包存储到所述接收端的存储设备中。
  16. 一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
  17. 一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
PCT/CN2020/093885 2019-09-24 2020-06-02 Rdma数据流控方法、系统、电子设备及可读存储介质 WO2021057068A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910902964.8A CN110750486A (zh) 2019-09-24 2019-09-24 Rdma数据流控方法、系统、电子设备及可读存储介质
CN201910902964.8 2019-09-24

Publications (1)

Publication Number Publication Date
WO2021057068A1 true WO2021057068A1 (zh) 2021-04-01

Family

ID=69276908

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/093885 WO2021057068A1 (zh) 2019-09-24 2020-06-02 Rdma数据流控方法、系统、电子设备及可读存储介质

Country Status (2)

Country Link
CN (1) CN110750486A (zh)
WO (1) WO2021057068A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750486A (zh) * 2019-09-24 2020-02-04 支付宝(杭州)信息技术有限公司 Rdma数据流控方法、系统、电子设备及可读存储介质
CN113890852B (zh) * 2021-08-24 2024-05-28 北京旷视科技有限公司 数据发送方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1914872A (zh) * 2003-12-03 2007-02-14 日本电气株式会社 会话中继装置,会话中继方法和会话中继程序
JP2012205140A (ja) * 2011-03-25 2012-10-22 Nec Corp 通信装置、通信方法、及び通信プログラム
CN103647722A (zh) * 2013-11-19 2014-03-19 中国科学院计算技术研究所 一种基于信誉的链路拥塞控制方法
CN106664290A (zh) * 2015-05-26 2017-05-10 华为技术有限公司 一种光电混合网络的数据传输方法及装置
US9996498B2 (en) * 2015-09-08 2018-06-12 Mellanox Technologies, Ltd. Network memory
CN110750486A (zh) * 2019-09-24 2020-02-04 支付宝(杭州)信息技术有限公司 Rdma数据流控方法、系统、电子设备及可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594701B1 (en) * 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
CN100574310C (zh) * 2007-08-24 2009-12-23 中国科学院计算技术研究所 一种信誉流量控制方法
CN100596114C (zh) * 2007-08-24 2010-03-24 中国科学院计算技术研究所 一种基于信誉的流量控制系统、装置和方法
CN101534173B (zh) * 2009-04-20 2011-11-09 福建星网锐捷网络有限公司 一种数据流量控制方法和系统
US20120224482A1 (en) * 2011-03-03 2012-09-06 Microsoft Corporation Credit feedback system for parallel data flow control
US9237111B2 (en) * 2013-03-14 2016-01-12 International Business Machines Corporation Credit-based flow control in lossless ethernet networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1914872A (zh) * 2003-12-03 2007-02-14 日本电气株式会社 会话中继装置,会话中继方法和会话中继程序
JP2012205140A (ja) * 2011-03-25 2012-10-22 Nec Corp 通信装置、通信方法、及び通信プログラム
CN103647722A (zh) * 2013-11-19 2014-03-19 中国科学院计算技术研究所 一种基于信誉的链路拥塞控制方法
CN106664290A (zh) * 2015-05-26 2017-05-10 华为技术有限公司 一种光电混合网络的数据传输方法及装置
US9996498B2 (en) * 2015-09-08 2018-06-12 Mellanox Technologies, Ltd. Network memory
CN110750486A (zh) * 2019-09-24 2020-02-04 支付宝(杭州)信息技术有限公司 Rdma数据流控方法、系统、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN110750486A (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
CN110662085B (zh) 消息发送方法、装置、可读介质及电子设备
CN107995036B (zh) 数据传输方法、装置、服务器及可读存储介质
CN105376173B (zh) 一种发送窗口流量控制方法和终端
US10021182B2 (en) Method and apparatus for data synchronization
WO2020019743A1 (zh) 流量控制方法及装置
WO2021057068A1 (zh) Rdma数据流控方法、系统、电子设备及可读存储介质
CN104734985A (zh) 数据接收流量控制方法及其系统
WO2015169186A1 (en) File transmission method and system
CN112887217B (zh) 控制数据包发送方法、模型训练方法、装置及系统
CN114095438B (zh) 数据传输方法、装置、设备、存储介质及计算机程序产品
CN104320809A (zh) 基于rtt的无线多跳网络拥塞控制方法及系统
WO2021078286A1 (zh) 一种数据处理方法及其装置
CN114039703A (zh) 数据传输方法、装置、设备和介质
WO2016161606A1 (zh) 消息发送/接收方法、覆盖增强等级确定/获取方法及相关设备
CN110971533B (zh) 用于数据通信的方法、服务器装置、客户端装置和介质
CN113452770B (zh) 数据同步方法、装置、计算机设备及存储介质
CN116868553A (zh) 用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度
CN108093047B (zh) 数据发送方法、装置、电子设备及中间件系统
CN115150383A (zh) 文件发送方法、设备及计算机可读存储介质
CN104780120A (zh) 一种局域网中文件传输的方法和装置
CN109586931B (zh) 组播方法及终端设备
US10126956B2 (en) Information processing device and information processing method
CN114095907B (zh) 蓝牙连接的控制方法、装置及设备
US9182941B2 (en) Flow control with buffer reclamation
US20040240388A1 (en) System and method for dynamic assignment of timers in a network transport engine

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20867818

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20867818

Country of ref document: EP

Kind code of ref document: A1