CN106302201A - Flow control methods, equipment and system - Google Patents
Flow control methods, equipment and system Download PDFInfo
- Publication number
- CN106302201A CN106302201A CN201510245796.1A CN201510245796A CN106302201A CN 106302201 A CN106302201 A CN 106302201A CN 201510245796 A CN201510245796 A CN 201510245796A CN 106302201 A CN106302201 A CN 106302201A
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- credit
- memory
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种流量控制方法、设备和系统。该流量控制方法包括:从接收队列获取第一消息数据包,该接收队列中存储由第一设备向第二设备发送的消息数据包;在该接收队列中删除已获取的该第一消息数据包,若该接收队列中存储的消息数据包的个数小于或等于该第一阈值,向该第一设备发送载有信用数据的数据导入指令。第二设备通过数据导入指令直接更新第一设备的内存中的该信用数据,第一设备根据内存中的该信用数据控制其向第二设备发送的数据包的个数上限;从硬件层面完成信用数据的更改,省去了软件层面更改信用数据所需的交互时间,提前了第一设备根据该信用数据控制其向第二设备发送数据包的时间,提高了网络带宽的利用率。
The embodiment of the invention discloses a flow control method, device and system. The flow control method includes: obtaining a first message data packet from a receiving queue, where the message data packet sent by the first device to the second device is stored; and deleting the obtained first message data packet in the receiving queue , if the number of message data packets stored in the receiving queue is less than or equal to the first threshold, sending a data import instruction carrying credit data to the first device. The second device directly updates the credit data in the memory of the first device through the data import command, and the first device controls the upper limit of the number of data packets it sends to the second device according to the credit data in the memory; the credit is completed from the hardware level The change of data saves the interaction time required for changing the credit data at the software level, advances the time for the first device to control sending data packets to the second device according to the credit data, and improves the utilization rate of network bandwidth.
Description
技术领域technical field
本发明实施例涉及网络领域,尤其涉及流量控制方法、设备和系统。The embodiments of the present invention relate to the network field, and in particular to a flow control method, device and system.
背景技术Background technique
设备之间的消息通信,无论是基于传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol,简称TCP/IP)协议还是其他支持通信协议(例如套接字socket接口协议)的消息通信,需将消息封装为数据包,在设备之间交互数据包来实现消息通信;为保证正确接收数据包的概率,确定了流量控制机制,通过该流量控制机制来协调一设备(发送端)向另一设备(接收端)传输数据的速度。流量控制机制中,接收端准备好接收数据时生成载有信用数据(CreditData)的消息,并将该消息封装成数据包(流量控制包),向发送端发送该流量控制包;发送端解析该流量控制包得到载有所述信用数据的消息,进而发送端根据该信用数据确定在下一次收到流量控制包之前可以发送的最大字节数。发送端发送数据包,当发送的数据包具有的字节数达到根据该信用数据确定的最大字节数时,发送端必须等待接收端发送的下一个流量控制包并从该流量控制包解析出下一个信用数据,才能根据下一个信用数据,继续向接收端发送数据包。Whether the message communication between devices is based on Transmission Control Protocol/Internet Protocol (Transmission Control Protocol/Internet Protocol, referred to as TCP/IP) protocol or other message communication that supports communication protocols (such as socket interface protocol), it is necessary to Messages are encapsulated into data packets, and data packets are exchanged between devices to realize message communication; in order to ensure the probability of correctly receiving data packets, a flow control mechanism is determined, through which one device (sending end) is coordinated to another device (Receiver) The speed at which data is transmitted. In the flow control mechanism, when the receiving end is ready to receive data, it generates a message carrying credit data (CreditData), encapsulates the message into a data packet (flow control packet), and sends the flow control packet to the sending end; the sending end analyzes the The flow control packet obtains the message carrying the credit data, and then the sender determines the maximum number of bytes that can be sent before receiving the flow control packet next time according to the credit data. When the sending end sends a data packet, when the number of bytes of the sent data packet reaches the maximum number of bytes determined according to the credit data, the sending end must wait for the next flow control packet sent by the receiving end and parse out the flow control packet from the flow control packet. The next credit data can continue to send data packets to the receiving end according to the next credit data.
以队列偶(Queue Pair,简称QP)为例,发送端期望向接收端提供业务时,建立一条QP通道,将该业务的数据封装在消息中,在将该消息封装在数据包中,通过该QP通道向接收端发送该数据包;接收端每接收一个来自发送端的数据包,会消耗掉一个接收队列中的一个接收缓冲格,该接收队列由多个接收缓冲格组成。接收缓冲格的数据包被应用程序取走后,可以再次用来接收从发送端发来的数据包,能够用来接收数据包的接收缓冲格被称为可用缓冲格。另外,发送端和接收端还建立了一条用于流量控制的QP通道;接收端,每当其可用缓冲格的数量达到接收队列的一半时,生成载有信用数据的数据包(流量控制包),通过该QP通道并利用QP发送接收操作向发送端传输该流量控制包;进而发送端从该流量控制包中解析出信用数据,根据解析出的信用数据确定最多可向接收端发送的数据包的个数。Taking Queue Pair (QP for short) as an example, when the sending end expects to provide services to the receiving end, it establishes a QP channel, encapsulates the data of the service in a message, encapsulates the message in a data packet, and passes the The QP channel sends the data packet to the receiving end; each time the receiving end receives a data packet from the sending end, it will consume a receiving buffer grid in a receiving queue, and the receiving queue is composed of multiple receiving buffer grids. After the data packet in the receiving buffer is taken away by the application program, it can be used to receive the data packet sent from the sending end again, and the receiving buffer that can be used to receive the data packet is called an available buffer. In addition, the sending end and the receiving end have also established a QP channel for flow control; the receiving end, whenever the number of its available buffer grids reaches half of the receiving queue, generates a data packet (flow control packet) carrying credit data , transmit the flow control packet to the sender through the QP channel and use the QP send and receive operation; then the sender parses the credit data from the flow control packet, and determines the maximum data packets that can be sent to the receiver according to the parsed credit data the number of .
因此,采用QP通道的方式传输载有信用数据的流量控制包来实现接收端与发送端之间的流量控制,需要较多的软件开销(包括新建立QP通道、接收端的数据包封装、发送端的数据包解析),延迟了发送端获取到信用数据的时间,从而延长了两次根据信用数据控制数据包发送之间间隔的时间,降低了网络带宽的利用率。Therefore, using the QP channel to transmit the flow control packet carrying credit data to realize the flow control between the receiving end and the sending end requires more software overhead (including the establishment of a new QP channel, data packet encapsulation at the receiving end, Data packet analysis) delays the time for the sender to obtain the credit data, thereby prolonging the interval between sending two control data packets according to the credit data, and reducing the utilization rate of network bandwidth.
发明内容Contents of the invention
有鉴于此,本发明实施例提供了一种流量控制方法、设备和系统,通过远程内存访问指令更改用于流量控制的信用数据,从硬件层面完成信用数据的更改,省去了软件层面更改信用数据所需的交互时间。In view of this, the embodiments of the present invention provide a flow control method, device, and system, which change the credit data used for flow control through remote memory access instructions, and complete the change of credit data from the hardware level, eliminating the need to modify the credit data at the software level. The interaction time required for the data.
第一方面,本发明实施例提供了一种流量控制方法,所述流量控制方法包括:In a first aspect, an embodiment of the present invention provides a flow control method, and the flow control method includes:
从接收队列获取第一消息数据包,所述接收队列中存储由第一设备向第二设备发送的消息数据包;Obtaining the first message data packet from the receiving queue, where the message data packet sent by the first device to the second device is stored in the receiving queue;
在所述接收队列中删除已获取的所述第一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,以使所述第一设备根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限,其中,所述信用数据为所述接收队列期望接收的消息数据包的个数,所述数据导入指令属于远程内存访问指令。Delete the obtained first message data packet in the receiving queue, and if the number of message data packets stored in the receiving queue is less than or equal to the first threshold, send a message containing A data import instruction for credit data, writing the credit data into a preset address in the internal memory of the first device, so that the first device determines to transfer to the second device according to the credit data recorded at the preset address 2. The upper limit of the number of message data packets sent by the device, wherein the credit data is the number of message data packets expected to be received by the receiving queue, and the data import instruction belongs to a remote memory access instruction.
结合第一方面,在第一种可能的实现方式中,所述向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,具体为:With reference to the first aspect, in a first possible implementation manner, the sending a data import instruction carrying credit data to the first device writes the credit data into a preset address, specifically:
所述第二设备的内存资源控制器MRC向所述第一设备的MRC发送所述数据导入指令,使得所述第一设备的MRC转发所述数据导入指令至所述第一设备的内存控制器MC,由所述第一设备的MC根据所述数据导入指令将所述信用数据写入所述预设地址。The memory resource controller MRC of the second device sends the data import instruction to the MRC of the first device, so that the MRC of the first device forwards the data import instruction to the memory controller of the first device MC, the MC of the first device writes the credit data into the preset address according to the data import instruction.
结合第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。With reference to the first possible implementation of the first aspect or the second possible implementation of the first aspect, in a third possible implementation, the data import instruction includes: the identifier of the first device, A physical address corresponding to the preset address.
第二方面,本发明实施例提供了一种第二设备,所述第二设备包括:In a second aspect, an embodiment of the present invention provides a second device, where the second device includes:
数据处理模块,用于从接收队列获取第一消息数据包,所述接收队列中存储由第一设备向所述第二设备发送的消息数据包;A data processing module, configured to acquire a first message data packet from a receiving queue, where the message data packet sent by the first device to the second device is stored in the receiving queue;
所述数据处理模块,还用于在所述接收队列中删除已获取的所述第一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,确定信用数据,所述信用数据为所述接收队列期望接收的消息数据包的个数;The data processing module is further configured to delete the acquired first message data packets in the receiving queue, if the number of message data packets stored in the receiving queue is less than or equal to the first threshold, Determining credit data, the credit data being the number of message packets expected to be received by the receiving queue;
指令发送模块,用于向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,以使所述第一设备根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限,所述数据导入指令属于远程内存访问指令。An instruction sending module, configured to send a data import instruction carrying credit data to the first device, and write the credit data into a preset address in the memory of the first device, so that the first device The credit data recorded at the preset address determines the upper limit of the number of message data packets sent to the second device, and the data import instruction belongs to a remote memory access instruction.
结合第二方面,在第一种可能的实现方式中,所述指令发送模块,用于向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,具体为:With reference to the second aspect, in a first possible implementation manner, the instruction sending module is configured to send a data import instruction carrying credit data to the first device, and write the credit data into the first device. The preset address in the device memory, specifically:
所述指令发送模块为所述第二设备的内存资源控制器MRC,用于向所述第一设备的MRC发送所述数据导入指令,使得所述第一设备的MRC转发所述数据导入指令至所述第一设备的内存控制器MC,由所述第一设备的MC根据所述数据导入指令将所述信用数据写入所述预设地址。The instruction sending module is the memory resource controller MRC of the second device, configured to send the data import instruction to the MRC of the first device, so that the MRC of the first device forwards the data import instruction to The memory controller MC of the first device writes the credit data into the preset address by the MC of the first device according to the data import instruction.
结合第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。With reference to the first possible implementation of the second aspect or the second possible implementation of the second aspect, in a third possible implementation, the data import instruction includes: the identifier of the first device, A physical address corresponding to the preset address.
第三方面,本发明实施例提供了一种流量控制方法,所述流量控制方法包括:In a third aspect, an embodiment of the present invention provides a flow control method, the flow control method comprising:
接收由第二设备向第一设备发送的数据导入指令,向内存中所述数据导入指令指向的预设地址写入信用数据,其中,所述数据导入指令载有所述信用数据,所述数据导入指令属于远程内存访问指令;receiving the data import command sent by the second device to the first device, writing credit data to the preset address pointed to by the data import command in the memory, wherein the data import command carries the credit data, and the data Import instructions are remote memory access instructions;
根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限。The upper limit of the number of message data packets sent to the second device is determined according to the credit data recorded at the preset address.
结合第三方面,在第一种可能的实现方式中,所述接收由第二设备向第一设备发送的数据导入指令,向内存中所述数据导入指令指向的预设地址写入信用数据,具体包括:With reference to the third aspect, in a first possible implementation manner, the receiving a data import instruction sent by the second device to the first device writes the credit data to a preset address pointed to by the data import instruction in the memory, Specifically include:
所述第一设备的MRC接收从所述第二设备的MRC发送的所述数据导入指令,转发所述数据导入指令至所述第一设备的内存控制器MC;The MRC of the first device receives the data import instruction sent from the MRC of the second device, and forwards the data import instruction to the memory controller MC of the first device;
所述第一设备的MC根据所述数据导入指令向所述预设地址写入所述信用数据。The MC of the first device writes the credit data to the preset address according to the data import instruction.
结合第三方面的第一种可能的实现方式或者第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。With reference to the first possible implementation of the third aspect or the second possible implementation of the third aspect, in a third possible implementation, the data import instruction includes: the identifier of the first device, A physical address corresponding to the preset address.
第四方面,本发明实施例提供了一种第一设备,所述第一设备包括:In a fourth aspect, an embodiment of the present invention provides a first device, where the first device includes:
指令接收模块,用于接收由第二设备向第一设备发送的数据导入指令,其中,所述数据导入指令载有信用数据,所述数据导入指令属于远程内存访问指令;An instruction receiving module, configured to receive a data import instruction sent by the second device to the first device, wherein the data import instruction carries credit data, and the data import instruction belongs to a remote memory access instruction;
指令响应模块,用于向内存中所述数据导入指令指向的预设地址写入所述信用数据;An instruction response module, configured to write the credit data to a preset address pointed to by the data import instruction in the memory;
消息数据包限制模块,用于根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限。A message data packet limiting module, configured to determine the upper limit of the number of message data packets sent to the second device according to the credit data recorded in the preset address.
结合第四方面,在第一种可能的实现方式中,所述指令接收模块为第一设备的内存资源控制器MRC,用于接收从第二设备的MRC发送的数据导入指令,转发所述数据导入指令至所述第一设备的内存控制器MC;With reference to the fourth aspect, in a first possible implementation manner, the instruction receiving module is a memory resource controller MRC of the first device, configured to receive a data import instruction sent from the MRC of the second device, and forward the data importing instructions into the memory controller MC of the first device;
所述指令响应模块为所述第一设备的MC,用于根据所述数据导入指令向所述预设地址写入所述信用数据。The instruction response module is the MC of the first device, configured to write the credit data to the preset address according to the data import instruction.
结合第四方面的第一种可能的实现方式或者第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。With reference to the first possible implementation of the fourth aspect or the second possible implementation of the fourth aspect, in a third possible implementation, the data import instruction includes: the identifier of the first device, A physical address corresponding to the preset address.
第五方面,本发明实施例提供了一种系统,所述系统包括第一设备和第二设备,所述第一设备和所述第二设备通信连接;In a fifth aspect, an embodiment of the present invention provides a system, the system includes a first device and a second device, and the first device and the second device are connected in communication;
所述第二设备,用于从接收队列获取第一消息数据包,所述接收队列中存储由所述第一设备向所述第二设备发送的所述消息数据包;The second device is configured to obtain a first message data packet from a receiving queue, where the message data packet sent by the first device to the second device is stored in the receiving queue;
所述第二设备,用于在所述接收队列中删除已获取的所述第一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,向所述第一设备发送载有信用数据的数据导入指令,所述信用数据为所述接收队列期望接收的消息数据包的个数,所述数据导入指令属于远程内存访问指令;The second device is configured to delete the acquired first message data packets in the receiving queue, and if the number of message data packets stored in the receiving queue is less than or equal to the first threshold, send The first device sends a data import command carrying credit data, the credit data is the number of message packets expected to be received by the receiving queue, and the data import command belongs to a remote memory access command;
所述第一设备,用于根据所述数据导入指令将所述信用数据写入其内存中的预设地址,根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限。The first device is configured to write the credit data into a preset address in its memory according to the data import instruction, and determine the credit data to be sent to the second device according to the credit data recorded at the preset address. The upper limit of the number of message packets.
结合第五方面,在第一种可能的实现方式中,所述第一设备,用于根据所述数据导入指令将所述信用数据写入其内存中的预设地址,具体为:With reference to the fifth aspect, in a first possible implementation manner, the first device is configured to write the credit data to a preset address in its internal memory according to the data import instruction, specifically:
所述第一设备,用于由所述第一设备的内存资源控制器MRC接收从所述第二设备的MRC发送的所述数据导入指令,转发所述数据导入指令至所述第一设备的内存控制器MC,由所述第一设备的MC根据所述数据导入指令向所述预设地址写入所述信用数据。The first device is configured to have the memory resource controller MRC of the first device receive the data import instruction sent from the MRC of the second device, and forward the data import instruction to the first device's A memory controller MC, wherein the MC of the first device writes the credit data to the preset address according to the data import instruction.
结合第五方面的第一种可能的实现方式或者第五方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。With reference to the first possible implementation of the fifth aspect or the second possible implementation of the fifth aspect, in a third possible implementation, the data import instruction includes: the identifier of the first device, A physical address corresponding to the preset address.
通过上述方案,第二设备通过数据导入指令直接更新第一设备的内存中的该信用数据,第一设备根据内存中的该信用数据控制其向第二设备最多发送的数据包的个数;从硬件层面完成信用数据的更改,省去了软件层面更改信用数据所需的交互时间,提前了第一设备根据该信用数据控制其向第二设备发送数据包的时间,提高了网络带宽的利用率。Through the above scheme, the second device directly updates the credit data in the memory of the first device through the data import command, and the first device controls the maximum number of data packets it sends to the second device according to the credit data in the memory; The change of credit data is completed at the hardware level, which saves the interaction time required for changing the credit data at the software level, advances the time for the first device to control the sending of data packets to the second device based on the credit data, and improves the utilization of network bandwidth .
附图说明Description of drawings
图1为流量控制方法的应用场景的系统逻辑结构示意图;FIG. 1 is a schematic diagram of a system logical structure of an application scenario of a flow control method;
图2为依据本发明一实施例提供的流量控制方法的一种示范性流程图;FIG. 2 is an exemplary flowchart of a flow control method provided according to an embodiment of the present invention;
图3为依据本发明一实施例的第二设备300提供的逻辑结构示意图;FIG. 3 is a schematic diagram of a logical structure provided by a second device 300 according to an embodiment of the present invention;
图4为依据本发明一实施例提供的流量控制方法的一种示范性流程图;FIG. 4 is an exemplary flowchart of a flow control method provided according to an embodiment of the present invention;
图5为对图4中步骤S401的一种可选细化流程图;FIG. 5 is an optional detailed flowchart of step S401 in FIG. 4;
图6为依据本发明一实施例的第一设备600提供的逻辑结构示意图。FIG. 6 is a schematic diagram of a logical structure provided by a first device 600 according to an embodiment of the present invention.
具体实施方式detailed description
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。The following will clearly and completely describe the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are some of the embodiments of the present invention, but not all of them. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without creative efforts fall within the protection scope of the present invention.
如图1所示的系统100,包括第一设备101和第二设备102。需说明的是,“第一设备”中的“第一”和“第二设备”中的“第二”,为代指,用于设备区分。The system 100 shown in FIG. 1 includes a first device 101 and a second device 102 . It should be noted that the "first" in the "first device" and the "second" in the "second device" refer to each other and are used to distinguish devices.
对于图1中的第一设备101,第一设备101具有处理器1013、内存资源控制器(Memory Resources Controller,简称MRC)1011、内存控制器(Memory Controller,简称MC)1012和内存1014。第一设备101中,处理器1013与内存资源控制器1011和/或内存控制器1012通过总线连接,或者内存资源控制器1011和/或内存控制器1012与该处理器1013直接电性连接;可选地,内存资源控制器1011和/或内存控制器1012集成到该处理器1013内,集成到处理器1013内的内存资源控制器1011与该处理器1013直接电性连接,集成到处理器1013内的内存控制器1012与该处理器1013直接电性连接。内存控制器1012,在处理器1013的控制下对本地内存(即内存1014)进行数据的读取或写入。内存资源控制器1011,在处理器1013的控制下对远端内存进行数据的读取或写入,举例说明,第二设备102的内存1024相对于第一设备101为远端内存。无论本地内存还是远端内存都属于内存,用于存储数据。For the first device 101 in FIG. 1 , the first device 101 has a processor 1013 , a memory resource controller (Memory Resources Controller, MRC for short) 1011 , a memory controller (Memory Controller, MC for short) 1012 and a memory 1014 . In the first device 101, the processor 1013 is connected to the memory resource controller 1011 and/or the memory controller 1012 via a bus, or the memory resource controller 1011 and/or the memory controller 1012 is directly electrically connected to the processor 1013; Optionally, the memory resource controller 1011 and/or the memory controller 1012 are integrated into the processor 1013, the memory resource controller 1011 integrated into the processor 1013 is directly electrically connected to the processor 1013, and integrated into the processor 1013 The internal memory controller 1012 is directly electrically connected to the processor 1013 . The memory controller 1012 reads or writes data to the local memory (that is, the memory 1014 ) under the control of the processor 1013 . The memory resource controller 1011 reads or writes data to the remote memory under the control of the processor 1013 . For example, the memory 1024 of the second device 102 is a remote memory relative to the first device 101 . Both local memory and remote memory belong to memory and are used to store data.
对于图1中的第二设备102,有处理器1023、内存资源控制器1021、内存控制器1022和内存1024。第二设备102中,处理器1023与内存资源控制器1021和/或内存控制器1022通过总线连接,或者内存资源控制器1021和/或内存控制器1022与该处理器1023直接电性连接;可选地,集成到处理器1023内的内存资源控制器1021与该处理器1023直接电性连接,集成到处理器1023内的内存控制器1022与该处理器1023直接电性连接。内存控制器1022,在处理器1023的控制下对本地内存(即内存1024)进行数据的读取或写入。内存资源控制器1021,在处理器1023的控制下对远端内存进行数据的读取或写入,举例说明,第一设备101中的内存1014相对于第二设备102为远端内存。无论本地内存还是远端内存都属于内存,用于存储数据。For the second device 102 in FIG. 1 , there are a processor 1023 , a memory resource controller 1021 , a memory controller 1022 and a memory 1024 . In the second device 102, the processor 1023 is connected to the memory resource controller 1021 and/or the memory controller 1022 through a bus, or the memory resource controller 1021 and/or the memory controller 1022 is directly electrically connected to the processor 1023; Optionally, the memory resource controller 1021 integrated into the processor 1023 is directly electrically connected to the processor 1023 , and the memory controller 1022 integrated into the processor 1023 is directly electrically connected to the processor 1023 . The memory controller 1022 reads or writes data to the local memory (that is, the memory 1024 ) under the control of the processor 1023 . The memory resource controller 1021 reads or writes data to the remote memory under the control of the processor 1023 . For example, the memory 1014 in the first device 101 is a remote memory relative to the second device 102 . Both local memory and remote memory belong to memory and are used to store data.
系统100中,第一设备101与第二设备102通信连接,第一设备101与第二设备102通过数据包的交互来实现数据交互。其中,对于业务交互,第一设备101与第二设备102通过消息交互的方式实现业务交互。In the system 100, the first device 101 is communicatively connected with the second device 102, and the first device 101 and the second device 102 realize data interaction through the interaction of data packets. Wherein, for service interaction, the first device 101 and the second device 102 implement service interaction through message interaction.
以第一设备101期望向第二设备102发送业务的数据为例,第一设备101的处理器1013将该业务的数据封装在消息中,再将该消息封装在数据包中,在发送缓存区中依次存储封装的数据包;若期望对从第一设备101向第二设备102发送的数据包进行流量控制,则确定最新的信用数据,第一设备101根据所述信用数据控制硬件收发模块向第二设备102发送的该数据包,发送的该数据包的个数至多为所述信用数据;对应地,第二设备102的硬件收发模块接收第一设备101发送的数据包,并在第二设备102的接收队列中存储接收到的数据包,对数据包进行解析并解析出载有业务数据的消息,第二设备102的处理器1023再从该消息中解析出业务的数据。类似地,可实现第二设备102向第一设备101发送业务的数据,在此不再赘述。Taking the first device 101 expecting to send service data to the second device 102 as an example, the processor 1013 of the first device 101 encapsulates the service data in a message, and then encapsulates the message in a data packet, and stores the service data in the sending buffer Store encapsulated data packets in sequence; if it is desired to perform flow control on the data packets sent from the first device 101 to the second device 102, then determine the latest credit data, and the first device 101 controls the hardware transceiver module according to the credit data. The number of the data packets sent by the second device 102 is at most the credit data; correspondingly, the hardware transceiver module of the second device 102 receives the data packets sent by the first device 101, and in the second The received data packet is stored in the receiving queue of the device 102, and the data packet is parsed to obtain a message carrying service data, and the processor 1023 of the second device 102 parses the message to obtain service data. Similarly, it may be implemented that the second device 102 sends service data to the first device 101 , which will not be repeated here.
本发明一实施例,为业务建立队列偶(Queue Pair,简称QP)通道,通过该QP通道传输第一设备与第二设备之间交互的业务数据,定义该业务数据为业务的数据。以第一设备向第二设备提供业务为例,通过该QP通道传输载有该业务数据的数据包;在传输过程中,采用流量控制方法对从第一设备向第二设备发送的数据包的个数进行控制,实现流量控制。In one embodiment of the present invention, a queue pair (Queue Pair, QP) channel is established for the service, and service data interacted between the first device and the second device is transmitted through the QP channel, and the service data is defined as service data. Taking the service provided by the first device to the second device as an example, the data packet carrying the service data is transmitted through the QP channel; The number is controlled to achieve flow control.
为实现该流量控制,在第一设备的内存中分配一段内存空间,该段内存空间用于存储信用数据,将该段内存空间的物理地址定义为第一物理地址;对该段内存空间的第一物理地址进行地址映射,地址映射得到该段内存空间的虚拟地址,第一设备的处理器可根据该虚拟地址访问该信用数据(例如根据该虚拟地址读取该信用数据);可选地,第一设备具有内存管理单元(Memory Management Unit,MMU),该处理器对该信用数据的访问的过程中,由MMU完成虚拟地址到第一物理地址的地址映射。另外,还将该段内存空间的第一物理地址和第一设备的标识进行加密,生成加密数据的数据包,向第二设备发送该数据包;第二设备从该数据包中解析出加密的第一物理地址和第一设备的标识,再解密得到:第一物理地址和第一设备的标识。In order to realize the flow control, a section of memory space is allocated in the memory of the first device, and the section of memory space is used to store credit data, and the physical address of the section of memory space is defined as the first physical address; A physical address is subjected to address mapping, and the address mapping obtains the virtual address of the memory space, and the processor of the first device can access the credit data according to the virtual address (for example, read the credit data according to the virtual address); optionally, The first device has a memory management unit (Memory Management Unit, MMU). When the processor accesses the credit data, the MMU completes the address mapping from the virtual address to the first physical address. In addition, the first physical address of the segment of memory space and the identifier of the first device are encrypted to generate a data packet of encrypted data, and send the data packet to the second device; the second device parses the encrypted data packet from the data packet. The first physical address and the identifier of the first device are decrypted to obtain: the first physical address and the identifier of the first device.
另外,预先在第二设备中分配一段物理地址,将分配的该段物理地址定义为第二物理地址。第二设备解密得到第一物理地址后,确定第一物理地址与第二物理地址的映射关系。In addition, a section of physical addresses is allocated in advance in the second device, and the allocated section of physical addresses is defined as the second physical address. After obtaining the first physical address through decryption, the second device determines a mapping relationship between the first physical address and the second physical address.
在第一设备向第二设备发送载有业务的数据包的过程中,第二设备将从第一设备接收的数据包依次存储在接收队列中,每从第一设备接收到一个数据包,便将该个数据包存储在该接收队列的一个接收缓冲格中,即一个数据包需一个接收缓冲格来存储;另外,该业务的应用,可从该接收队列的接收缓冲格中,读取并取走该业务的数据包;被取走数据包的接收缓冲格,可继续用来接收从第一设备发送的数据包;当所述接收队列中的消息数据包的个数从大于第一阈值减小到小于或等于所述第一阈值时,即接收队列中可用来接收数据包的接收缓冲格从小于第二阈值增长到大于或等于第二阈值(可选地,第一阈值与第二阈值的和等于接收队列包含的接收缓冲格的总个数)时,确定一次信用数据,并生成一次数据导入指令,该数据导入指令包括第二物理地址和第一设备的标识,该数据导入指令还包括确定的信用数据,在该信用数据中记录:所述第二设备期望由其接收队列接收的消息数据包的个数;第二设备根据该数据导入指令中的第二物理地址确定该数据导入指令不是访问第二设备的内存而是访问第一设备的内存,将该数据导入指令中的第二物理地址替换为:与该第二物理地址映射的第一物理地址;然后,直接向第一设备的内存中该数据导入指令指向的该第一物理地址写入本次确定的信用数据。可选地,当内第二设备的存控制器(memory controller,简称MC)识别到该数据导入指令为指向第二物理地址的远程内存访问指令时,将该数据导入指令转由第二设备的内存资源控制器(MemoryResources Controller,简称MRC)处理;第二设备的MRC将该数据导入指令中的第二物理地址替换为对应的第一物理地址,再将地址替换后的该数据导入指令发送至第一设备的MRC;第一设备的MRC识别到该数据导入指令指向的所述第一物理地址为第一设备的本地内存的物理地址时,转发给数据导入指令至第一设备的MC;第一设备的MC根据该数据导入指令向所述第一物理地址写入本次确定的信用数据以更新所述第一物理地址中原存储的信用数据。During the process of the first device sending data packets carrying services to the second device, the second device sequentially stores the data packets received from the first device in the receiving queue, and each time a data packet is received from the first device, the Store the data packet in a receiving buffer grid of the receiving queue, that is, a data packet needs a receiving buffer grid to store; in addition, the application of the service can read and store the data packet from the receiving buffer grid of the receiving queue Take away the data packet of the service; the receiving buffer grid of the taken data packet can continue to be used to receive the data packet sent from the first device; when the number of message data packets in the receiving queue is greater than the first threshold When it is reduced to be less than or equal to the first threshold, that is, the receiving buffer grid that can be used to receive data packets in the receiving queue increases from less than the second threshold to greater than or equal to the second threshold (optionally, the first threshold and the second When the sum of the thresholds is equal to the total number of receiving buffer grids contained in the receiving queue), the credit data is determined once, and a data import instruction is generated, and the data import instruction includes the second physical address and the identification of the first device, and the data import instruction It also includes determined credit data, in which it is recorded: the number of message data packets that the second device expects to receive by its receiving queue; the second device determines the data according to the second physical address in the data import instruction The import instruction does not access the memory of the second device but the memory of the first device, and replaces the second physical address in the data import instruction with: the first physical address mapped with the second physical address; then, directly to the second physical address The credit data determined this time is written into the first physical address pointed to by the data import instruction in the memory of a device. Optionally, when the memory controller (memory controller, MC for short) of the second device recognizes that the data import instruction is a remote memory access instruction pointing to the second physical address, the data import instruction is forwarded to the second device's The memory resource controller (MemoryResources Controller, referred to as MRC) processing; the MRC of the second device replaces the second physical address in the data import instruction with the corresponding first physical address, and then sends the data import instruction after the address replacement to The MRC of the first device; when the MRC of the first device recognizes that the first physical address pointed to by the data import instruction is the physical address of the local memory of the first device, it forwards the data import instruction to the MC of the first device; The MC of a device writes the currently determined credit data into the first physical address according to the data import instruction to update the credit data originally stored in the first physical address.
可选地,该远程内存访问指令包括load指令和store指令,该数据导入指令为store指令。第二设备根据指向第一设备的内存的预设地址的store指令,能够直接对该预设地址进行远程的数据写入,更新该预设地址存储的信用数据。Optionally, the remote memory access instruction includes a load instruction and a store instruction, and the data import instruction is a store instruction. According to the store instruction pointing to the preset address of the internal memory of the first device, the second device can directly perform remote data writing to the preset address, and update the credit data stored in the preset address.
本实施例中,在对第一设备向第二设备发送载有业务的数据包中,为控制发送的数据包的个数来实现流量控制,在第一设备的内存中分配一段内存空间,该段内存空间用于存储信用数据的一段内存空间;将该段内存空间的第一物理地址和第一设备的标识通知第二设备之后,第二设备可通过远程内存访问指令直接访问该段内存空间,更改该段内存空间存储的信用数据。第二设备更改该段内存空间存储的信用数据的过程中,都属于硬件层面的数据传输,相对于QP需分配缓冲区来接收载有信用数据的数据包、从数据包解析出信用数据、再由第一设备的处理器在该段内存空间写入信用数据,减小了在第一设备的该段内存空间中更新信用数据的时延,提前了根据该信用数据继续向第二设备发送载有业务的数据包的发送时间,能够更加有效地利用网络带宽。In this embodiment, when the first device sends a data packet carrying a service to the second device, in order to control the number of data packets sent to realize flow control, a section of memory space is allocated in the memory of the first device. A section of memory space used to store credit data; after notifying the second device of the first physical address of the section of memory space and the identifier of the first device, the second device can directly access the section of memory space through remote memory access instructions , change the credit data stored in this memory space. When the second device changes the credit data stored in the memory space, it belongs to the data transmission at the hardware level. Compared with the QP, it needs to allocate a buffer to receive the data packet carrying the credit data, parse the credit data from the data packet, and then The processor of the first device writes the credit data in this section of memory space, which reduces the time delay for updating credit data in this section of memory space of the first device, and advances the time to continue sending loads to the second device based on the credit data. The sending time of data packets with business can make more effective use of network bandwidth.
本发明一实施例,提供一种流量控制方法,图2示出了依据本实施例提供的该方法的实现流程,但为了便于描述,图2仅示出了与本发明实施例相关的部分。所述流量控制方法包括步骤S201和步骤S202。An embodiment of the present invention provides a flow control method. FIG. 2 shows the implementation process of the method according to this embodiment. However, for ease of description, FIG. 2 only shows the parts related to the embodiment of the present invention. The flow control method includes step S201 and step S202.
本实施例所述的消息数据包为:第一设备向第二设备提供业务的过程中,由第一设备向第二设备发送的数据包;该数据包载有该业务的数据。The message data packet described in this embodiment is: a data packet sent by the first device to the second device during the process of the first device providing a service to the second device; the data packet carries the data of the service.
预先在第一设备中的内存中分配一段内存空间,该段内存空间用于存储信用数据,此处统称可访问该段内存空间的地址为预设地址,例如,所述预设地址为该段内存空间的物理地址(即上述的第一物理地址),再例如,所述预设地址为对该第一物理地址进行地址映射后得到的虚拟地址。A section of memory space is pre-allocated in the memory of the first device, and this section of memory space is used to store credit data. Here, the address that can access this section of memory space is collectively referred to as a preset address, for example, the preset address is the section The physical address of the memory space (that is, the above-mentioned first physical address), for another example, the preset address is a virtual address obtained after performing address mapping on the first physical address.
如果该预设地址为该段内存空间的第一物理地址,将该预设地址进行地址映射,得到该段内存空间的虚拟地址;第一设备的处理器可根据该虚拟地址访问该段内存空间。If the preset address is the first physical address of the segment memory space, address mapping is performed on the preset address to obtain the virtual address of the segment memory space; the processor of the first device can access the segment memory space according to the virtual address .
另外,确定第一设备的标识,使得第二设备能够根据第一设备的标识访问到第一设备;第一设备,在其与第二设备的通信中,将载有第一物理地址和第一设备的标识通知第二设备;继而,第二设备能够根据指向第一物理地址的远程内存访问指令直接访问第一设备的内存中的该段内存空间。In addition, determine the identity of the first device, so that the second device can access the first device according to the identity of the first device; the first device, in its communication with the second device, will carry the first physical address and the first The identification of the device notifies the second device; then, the second device can directly access the segment of memory space in the memory of the first device according to the remote memory access instruction pointing to the first physical address.
步骤S201,从接收队列获取第一消息数据包,所述接收队列中存储由第一设备向第二设备发送的消息数据包。其中,所述第一消息数据包为已存储在该接收队列中的、业务的应用正在从该接收队列取走的数据包。Step S201, obtaining a first message data packet from a receiving queue, where the message data packet sent by the first device to the second device is stored. Wherein, the first message data packet is a data packet that has been stored in the receiving queue and is being taken from the receiving queue by the application of the service.
步骤S202,在所述接收队列中删除已获取的所述第一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,以使所述第一设备根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限,其中,所述信用数据为所述接收队列期望接收的消息数据包的个数,所述数据导入指令属于远程内存访问指令。Step S202, delete the obtained first message data packet in the receiving queue, if the number of message data packets stored in the receiving queue is less than or equal to the first threshold, send a message to the first device Sending a data import instruction carrying credit data, writing the credit data into a preset address in the internal memory of the first device, so that the first device determines the credit data recorded at the preset address to The upper limit of the number of message data packets sent by the second device, wherein the credit data is the number of message data packets expected to be received by the receiving queue, and the data import instruction belongs to a remote memory access instruction.
第一设备向第二设备提供业务的过程中,第一设备向第二设备发送载有该业务的消息数据包;如,采用QP进行第一设备与第二设备之间消息数据包的收发,将第一设备中期望向第二设备发送的消息数据包添加入第一设备的发送队列,该发送队列由多个发送缓冲格组成,每个该发送缓冲格能缓存一个待发送的数据包,可将待发送的该消息数据包依次缓存在该发送缓冲格中;按照第一设备的内存的预设地址中存储的信用数据确定最多可向第二设备发送该消息数据包的个数,根据确定的个数控制发送队列中消息数据包的发送。In the process of the first device providing a service to the second device, the first device sends a message data packet carrying the service to the second device; for example, using QP to send and receive a message data packet between the first device and the second device, Adding the message data packets expected to be sent from the first device to the second device into the sending queue of the first device, the sending queue is composed of a plurality of sending buffer grids, each of which can cache a data packet to be sent, The message data packets to be sent can be sequentially buffered in the sending buffer grid; according to the credit data stored in the preset address of the internal memory of the first device, the maximum number of the message data packets that can be sent to the second device is determined, according to The determined number controls the sending of message packets in the sending queue.
相应地,第二设备具有接收队列,该接收队列由多个接收缓冲格组成,每个该接收缓冲格能缓存一个接收的数据包,因此在第一设备向第二设备提供业务的过程中,第二设备将接收的消息数据包依次缓存在该接收缓冲格中。Correspondingly, the second device has a receiving queue, and the receiving queue is composed of a plurality of receiving buffer cells, and each receiving buffer cell can buffer a received data packet, so when the first device provides services to the second device, The second device sequentially buffers the received message data packets in the receiving buffer grid.
第二设备中,该业务的应用可从该接收队列取走消息数据包(正在被取走的消息数据包为第一数据包),取走该第一消息数据包这一动作包括从接收缓冲格中获取第一消息数据包、删除该接收缓冲格中存储的第一消息数据包;该业务的应用每从一个接收缓冲格中取走第一消息数据包,该接收缓冲格便能够再次用来缓存接收到的消息数据包;因此,该业务的应用持续从接收缓冲格中取走消息数据包的过程中,可能会出现所述接收队列中的消息数据包的个数从大于第一阈值减小到小于或等于所述第一阈值这一事件,一旦出现该事件,则在所述接收队列中的消息数据包的个数减小到小于或等于所述第一阈值时,触发数据导入指令,也即可再次用来接收消息数据包的接收缓冲格的个数从小于第二阈值增长到大于或等于第二阈值(第一阈值与第二阈值的和等于接收队列包含的接收缓冲格的总个数)时触发该数据导入指令;该数据导入指令的参数包括:第一物理地址和第一设备的标识。因此,该第二设备能够根据该数据导入指令直接向第一设备的内存的预设地址写入信用数据,第一设备根据本次写入的该信用数据确定:在第二设备下一次更新该信用数据之前,第一设备至多可向第二设备发送的消息数据包的个数。以此类推,第二设备,每次所述接收队列中的消息数据包的个数从大于第一阈值减小到小于或等于所述第一阈值时,均触发一次数据导入指令,通过该数据导入指令更新第一设备的内存的预设地址中存储的信用数据;信用数据每次更新后,第一设备每次可根据更新的信用数据确定可向第二设备发送的消息数据包的个数。实现根据信用数据的更新,控制第一设备不同时间段可向第二设备发送的消息数据包的个数,实现第一设备向第二设备提供业务时的流量控制。In the second device, the application of the service can take the message data packet from the receiving queue (the message data packet being taken is the first data packet), and the action of taking the first message data packet includes Obtain the first message data packet in the receiving buffer grid, delete the first message data packet stored in the receiving buffer grid; every time the application of this service takes the first message data packet from a receiving buffer grid, the receiving buffer grid can be used again to cache the received message data packets; therefore, in the process of continuously taking message data packets from the receiving buffer grid, the number of message data packets in the receiving queue may change from greater than the first threshold Decrease to be less than or equal to the event of the first threshold, once this event occurs, when the number of message packets in the receiving queue is reduced to less than or equal to the first threshold, data import is triggered Instruction, that is, the number of receiving buffer grids that can be used to receive message packets again increases from less than the second threshold to greater than or equal to the second threshold (the sum of the first threshold and the second threshold is equal to the receiving buffer grid included in the receiving queue The data import instruction is triggered when the data import instruction is triggered; the parameters of the data import instruction include: the first physical address and the identifier of the first device. Therefore, the second device can directly write the credit data to the preset address of the memory of the first device according to the data import instruction, and the first device determines according to the credit data written this time: when the second device updates the Before the credit data, the first device can send at most the number of message data packets to the second device. By analogy, the second device, each time the number of message data packets in the receiving queue decreases from greater than the first threshold to less than or equal to the first threshold, triggers a data import instruction, and passes the data The import command updates the credit data stored in the preset address of the memory of the first device; after the credit data is updated each time, the first device can determine the number of message data packets that can be sent to the second device each time according to the updated credit data . According to the update of the credit data, the number of message data packets that the first device can send to the second device in different time periods is controlled, and the flow control when the first device provides services to the second device is realized.
另外,在第一设备与第二设备之间初始建立QP通道时,第二设备的接收队列中可用于接收数据包的接收缓冲格的个数小于或等于所述第一阈值,步骤S202触发数据导入指令,通过该数据导入指令重置第一设备的内存的预设地址中存储的信用数据。In addition, when the QP channel is initially established between the first device and the second device, the number of receiving buffer boxes available for receiving data packets in the receiving queue of the second device is less than or equal to the first threshold, step S202 triggers data An import instruction, through which the credit data stored in the preset address of the internal memory of the first device is reset.
另外,第一设备与第二设备之间建立的QP通道中断后再次启用,如果第二设备的接收队列中可用于接收数据包的接收缓冲格的个数小于或等于所述第一阈值,步骤S202触发数据导入指令,通过该数据导入指令更新第一设备的内存的预设地址中存储的信用数据。In addition, the QP channel established between the first device and the second device is restarted after being interrupted, if the number of receiving buffer grids available for receiving data packets in the receiving queue of the second device is less than or equal to the first threshold, the step S202 triggers a data import instruction, through which the credit data stored in the preset address of the internal memory of the first device is updated.
本实施例中,对采用哪种方式实现第二设备将数据导入指令发送至第一设备不做限定;例如,第二设备直接向第一设备发送该数据导入指令;再如,经其他转发设备(如路由器、交换机等)将第二设备发送的该数据导入指令转发至第一设备。In this embodiment, there is no limitation on the way the second device sends the data import instruction to the first device; for example, the second device directly sends the data import instruction to the first device; another example, through other forwarding devices (such as routers, switches, etc.) forward the data import instruction sent by the second device to the first device.
另外,本实施例对第一设备中由哪个器件响应该数据导入指令并将信用数据写入内存的预设地址不做限定;如,由内存资源控制器响应该数据导入指令并转发该数据导入指令至第一设备的内存控制器,由第一设备的内存控制器并将信用数据写入内存的预设地址;如,由第一设备的处理器响应该数据导入指令,并控制内存控制器将信用数据写入内存的预设地址。In addition, this embodiment does not limit which device in the first device responds to the data import instruction and writes the credit data into the preset address of the memory; for example, the memory resource controller responds to the data import instruction and forwards the data import instruction. Command to the memory controller of the first device, and the memory controller of the first device writes the credit data into the preset address of the memory; for example, the processor of the first device responds to the data import instruction and controls the memory controller Write the credit data to the preset address of the memory.
可选地,对图2提供的流量控制方法做一可选细化,所述向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,具体为:Optionally, an optional refinement is made to the flow control method provided in FIG. 2 , the sending a data import command carrying credit data to the first device, and writing the credit data into the memory of the first device The default address in , specifically:
所述第二设备的内存资源控制器MRC向所述第一设备的MRC发送所述数据导入指令,使得所述第一设备的MRC转发所述数据导入指令至所述第一设备的内存控制器MC,由所述第一设备的MC根据所述数据导入指令将所述信用数据写入所述预设地址。The memory resource controller MRC of the second device sends the data import instruction to the MRC of the first device, so that the MRC of the first device forwards the data import instruction to the memory controller of the first device MC, the MC of the first device writes the credit data into the preset address according to the data import instruction.
具体地,预先在第二设备中分配一段物理地址,将分配的该段物理地址定义为第二物理地址。第一设备首先向第二设备发送第一设备的标识和第一物理地址;第二设备获得第一物理地址后,确定第一物理地址与第二物理地址的映射关系。Specifically, a section of physical addresses is allocated in advance in the second device, and the allocated section of physical addresses is defined as the second physical address. The first device first sends the identifier of the first device and the first physical address to the second device; after the second device obtains the first physical address, it determines the mapping relationship between the first physical address and the second physical address.
第二设备每次期望更新第一设备的内存中的信用数据,则触发所述数据导入指令,触发的所述数据导入指令指向的地址为第二物理地址,此处对触发该数据导入指令的场景不做详述,具体参见上述实施例的描述。第二设备在识别到第二物理地址不为指向本地内存的物理地址时,将所述数据导入指令中的第二物理地址替换为对应的第一物理地址,将地址替换后的数据导入指令发送至所述第一设备的内存资源控制器,所述第一设备的内存资源控制器识别到该数据导入指令指向的所述第一物理地址为第一设备的本地内存的地址时,转发给数据导入指令至第一设备的内存控制器;第一设备的内存控制器根据该数据导入指令向内存的第一物理地址(与预设地址对应)写入该数据导入指令载有的信用数据。Every time the second device expects to update the credit data in the internal memory of the first device, it triggers the data import instruction, and the address pointed to by the triggered data import instruction is the second physical address, where the triggering of the data import instruction The scene is not described in detail, and for details, refer to the description of the foregoing embodiments. When the second device recognizes that the second physical address is not a physical address pointing to the local memory, it replaces the second physical address in the data import instruction with the corresponding first physical address, and sends the data import instruction after the address replacement To the memory resource controller of the first device, when the memory resource controller of the first device recognizes that the first physical address pointed to by the data import instruction is the address of the local memory of the first device, forward it to the data Importing the instruction to the memory controller of the first device; the memory controller of the first device writes the credit data carried in the data importing instruction to the first physical address (corresponding to the preset address) of the memory according to the data importing instruction.
可选地,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。其中,与所述预设地址对应的物理地址为上述的第一物理地址。即,如果所述预设地址为第一设备的第一物理地址,则所述预设地址与所述数据导入指令包括的物理地址相同,如果所述预设地址为与该第一物理地址映射的虚拟地址,则所述预设地址与所述数据导入指令包括的物理地址具有对应关系。Optionally, the data import instruction includes: an identifier of the first device, and a physical address corresponding to the preset address. Wherein, the physical address corresponding to the preset address is the above-mentioned first physical address. That is, if the preset address is the first physical address of the first device, the preset address is the same as the physical address included in the data import instruction, and if the preset address is mapped to the first physical address virtual address, the preset address has a corresponding relationship with the physical address included in the data import instruction.
其中,所述第一设备的标识为:第一设备与第二设备通信时,用于第二设备找到第一设备的地址或者身份标识。Wherein, the identifier of the first device is: when the first device communicates with the second device, an address or an identity used by the second device to find the first device.
具体地,第二设备能够根据该数据导入指令指向的所述第一设备的标识,指定第一设备执行该数据导入指令;进一步根据与所述预设地址对应的第一物理地址,能够指向第一设备的内存的预设地址,并对该预设地址执行所述信用数据的写入。Specifically, the second device can designate the first device to execute the data import instruction according to the identifier of the first device pointed to by the data import instruction; further, according to the first physical address corresponding to the preset address, it can point to the second A preset address of the internal memory of a device, and write the credit data to the preset address.
本发明一实施例,提供一种第二设备300,图3示出了依据本实施例提供的该第二设备300的逻辑结构示意图,但为了便于描述,图3仅示出了与本发明实施例相关的部分。An embodiment of the present invention provides a second device 300. FIG. 3 shows a schematic diagram of the logic structure of the second device 300 provided according to this embodiment. However, for ease of description, FIG. 3 only shows example related part.
所述第二设备300包括:数据处理模块301,用于从接收队列获取第一消息数据包,所述接收队列中存储由第一设备向所述第二设备发送的消息数据包;The second device 300 includes: a data processing module 301, configured to obtain a first message data packet from a receiving queue, and the receiving queue stores a message data packet sent by the first device to the second device;
所述数据处理模块301,还用于在所述接收队列中删除已获取的所述第一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,确定信用数据,所述信用数据为所述接收队列期望接收的消息数据包的个数;The data processing module 301 is further configured to delete the acquired first message data packets in the receiving queue, if the number of message data packets stored in the receiving queue is less than or equal to the first threshold , determining credit data, where the credit data is the number of message packets expected to be received by the receiving queue;
指令发送模块302,用于向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,以使所述第一设备根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限,所述数据导入指令属于远程内存访问指令。An instruction sending module 302, configured to send a data import instruction carrying credit data to the first device, and write the credit data into a preset address in the memory of the first device, so that the first device according to The credit data recorded at the preset address determines the upper limit of the number of message data packets sent to the second device, and the data import instruction belongs to a remote memory access instruction.
可选地,所述指令发送模块302,用于向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,具体为:Optionally, the instruction sending module 302 is configured to send a data import instruction carrying credit data to the first device, and write the credit data into a preset address in the memory of the first device, specifically :
所述指令发送模块302为所述第二设备的内存资源控制器MRC,用于向所述第一设备的MRC发送所述数据导入指令,使得所述第一设备的MRC转发所述数据导入指令至所述第一设备的内存控制器MC,由所述第一设备的MC根据所述数据导入指令将所述信用数据写入所述预设地址。The instruction sending module 302 is the memory resource controller MRC of the second device, configured to send the data import instruction to the MRC of the first device, so that the MRC of the first device forwards the data import instruction To the memory controller MC of the first device, the MC of the first device writes the credit data into the preset address according to the data import instruction.
可选地,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。Optionally, the data import instruction includes: an identifier of the first device, and a physical address corresponding to the preset address.
本发明一实施例,提供一种流量控制方法,图4示出了依据本实施例提供的该方法的实现流程,但为了便于描述,图4仅示出了与本发明实施例相关的部分。所述流量控制方法包括步骤S401和步骤S402。An embodiment of the present invention provides a flow control method. FIG. 4 shows the implementation process of the method according to this embodiment. However, for ease of description, FIG. 4 only shows the parts related to the embodiment of the present invention. The flow control method includes step S401 and step S402.
预先在第一设备中的内存中分配一段内存空间,该段内存空间用于存储信用数据,此处统称可访问该段内存空间的地址为预设地址,例如,所述预设地址为该段内存空间的物理地址(即上述的第一物理地址),再例如,所述预设地址为对该第一物理地址进行地址映射后得到的虚拟地址。;A section of memory space is pre-allocated in the memory of the first device, and this section of memory space is used to store credit data. Here, the address that can access this section of memory space is collectively referred to as a preset address, for example, the preset address is the section The physical address of the memory space (that is, the above-mentioned first physical address), for another example, the preset address is a virtual address obtained after performing address mapping on the first physical address. ;
如果该预设地址为该段内存空间的第一物理地址,将该预设地址进行地址映射,得到该段内存空间的虚拟地址;第一设备的处理器可根据该虚拟地址访问该段内存空间。If the preset address is the first physical address of the segment memory space, address mapping is performed on the preset address to obtain the virtual address of the segment memory space; the processor of the first device can access the segment memory space according to the virtual address .
另外,确定第一设备的标识,使得第二设备能够根据第一设备的标识访问到第一设备;第一设备,在其与第二设备的通信中,将载有第一物理地址和第一设备的标识通知第二设备;继而,第二设备能够根据指向第一物理地址的远程内存访问指令直接访问第一设备的内存中的该段内存空间。In addition, determine the identity of the first device, so that the second device can access the first device according to the identity of the first device; the first device, in its communication with the second device, will carry the first physical address and the first The identifier of the device notifies the second device; then, the second device can directly access the segment of memory space in the memory of the first device according to the remote memory access instruction pointing to the first physical address.
步骤S401,接收由第二设备向第一设备发送的数据导入指令,向内存中所述数据导入指令指向的预设地址写入所述信用数据,其中,所述数据导入指令载有信用数据,所述数据导入指令属于远程内存访问指令;Step S401, receiving a data import command sent by the second device to the first device, writing the credit data to a preset address pointed to by the data import command in the memory, wherein the data import command carries credit data, The data import instruction belongs to the remote memory access instruction;
步骤S402,根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限。Step S402, determining the upper limit of the number of message data packets sent to the second device according to the credit data recorded in the preset address.
第二设备中,业务的应用从接收缓冲格中取走消息数据包的过程中,每次所述接收队列中的消息数据包的个数从大于第一阈值减小到小于或等于所述第一阈值时,均触发一次数据导入指令;即,可再次用来接收消息数据包的接收缓冲格的个数从小于第二阈值增长到大于或等于第二阈值时触发该数据导入指令,其中,第一阈值与第二阈值的和等于接收队列包含的接收缓冲格的总个数。第一设备根据该数据导入指令载有的信用数据,更新第一设备的内存的预设地址中存储的信用数据;信用数据每次更新后,第一设备每次可根据更新的信用数据确定可向第二设备发送的消息数据包的个数。实现根据信用数据的更新,控制第一设备不同时间段可向第二设备发送的消息数据包的个数,实现第一设备向第二设备提供业务时的流量控制。In the second device, when the application of the service takes the message data packets from the receiving buffer grid, each time the number of message data packets in the receiving queue decreases from greater than the first threshold to less than or equal to the first threshold When a threshold value is reached, the data import instruction is triggered once; that is, the data import instruction is triggered when the number of receiving buffer cells that can be used to receive message data packets again increases from less than the second threshold value to greater than or equal to the second threshold value, wherein, The sum of the first threshold and the second threshold is equal to the total number of receiving buffer boxes included in the receiving queue. According to the credit data carried in the data import instruction, the first device updates the credit data stored in the preset address of the internal memory of the first device; after the credit data is updated each time, the first device can determine the credit data according to the updated credit data each time. The number of message packets sent to the second device. According to the update of the credit data, the number of message data packets that the first device can send to the second device in different time periods is controlled, and the flow control when the first device provides services to the second device is realized.
另外,在第一设备与第二设备之间初始建立QP通道时,第二设备的接收队列中可用于接收数据包的接收缓冲格的个数小于或等于所述第一阈值,第二设备触发数据导入指令;步骤S401接收到从第二设备向第一设备发送的数据导入指令,通过该数据导入指令重置第一设备的内存的预设地址中存储的信用数据。In addition, when the QP channel is initially established between the first device and the second device, the number of receiving buffer slots available for receiving data packets in the receiving queue of the second device is less than or equal to the first threshold, and the second device triggers Data import instruction: Step S401 receives a data import instruction sent from the second device to the first device, and resets the credit data stored in the preset address of the internal memory of the first device through the data import instruction.
另外,第一设备与第二设备之间建立的QP通道中断后再次启用,如果第二设备的接收队列中可用于接收数据包的接收缓冲格的个数小于或等于所述第一阈值,第二设备触发数据导入指令;步骤S401接收到从第二设备向第一设备发送的数据导入指令,通过该数据导入指令更新第一设备的内存的预设地址中存储的信用数据。In addition, after the QP channel established between the first device and the second device is interrupted and re-enabled, if the number of receiving buffer boxes available for receiving data packets in the receiving queue of the second device is less than or equal to the first threshold, the second The second device triggers a data import command; Step S401 receives the data import command sent from the second device to the first device, and updates the credit data stored in the preset address of the internal memory of the first device through the data import command.
可选地,步骤S401做一具体可选细化,参见图5,所述接收由第二设备向第一设备发送的数据导入指令,向内存中所述数据导入指令指向的预设地址写入信用数据,具体包括步骤S4011和步骤S4012。Optionally, in step S401, a specific optional refinement is made, see FIG. 5, the receiving the data import command sent by the second device to the first device, and writing to the preset address pointed to by the data import command in the memory The credit data specifically includes steps S4011 and S4012.
步骤S4011,所述第一设备的MRC接收从所述第二设备的MRC发送的所述数据导入指令,转发所述数据导入指令至所述第一设备的内存控制器MC;Step S4011, the MRC of the first device receives the data import command sent from the MRC of the second device, and forwards the data import command to the memory controller MC of the first device;
步骤S4012,所述第一设备的MC根据所述数据导入指令向所述预设地址写入所述信用数据。Step S4012, the MC of the first device writes the credit data to the preset address according to the data import instruction.
可选地,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。Optionally, the data import instruction includes: an identifier of the first device, and a physical address corresponding to the preset address.
本发明一实施例,提供一种第一设备600,图6示出了依据本实施例提供的该第一设备600的逻辑结构示意图,但为了便于描述,图6仅示出了与本发明实施例相关的部分。An embodiment of the present invention provides a first device 600. FIG. 6 shows a schematic diagram of the logical structure of the first device 600 provided according to this embodiment. However, for ease of description, FIG. 6 only shows example related part.
所述第一设备600包括:The first device 600 includes:
指令接收模块601,用于接收由第二设备向第一设备发送的数据导入指令,其中,所述数据导入指令载有信用数据,所述数据导入指令属于远程内存访问指令;An instruction receiving module 601, configured to receive a data import instruction sent by the second device to the first device, wherein the data import instruction carries credit data, and the data import instruction belongs to a remote memory access instruction;
指令响应模块602,用于向内存中所述数据导入指令指向的预设地址写入所述信用数据;An instruction response module 602, configured to write the credit data into the preset address pointed to by the data import instruction in the memory;
消息数据包限制模块603,用于根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限。A message data packet limiting module 603, configured to determine the upper limit of the number of message data packets sent to the second device according to the credit data recorded in the preset address.
可选地,所述指令接收模块601为第一设备的内存资源控制器MRC,用于接收从第二设备的MRC发送的数据导入指令,转发所述数据导入指令至所述第一设备的内存控制器MC;Optionally, the instruction receiving module 601 is the memory resource controller MRC of the first device, configured to receive the data import instruction sent from the MRC of the second device, and forward the data import instruction to the memory of the first device Controller MC;
所述指令响应模块602为所述第一设备的MC,用于根据所述数据导入指令向所述预设地址写入所述信用数据。The command response module 602 is the MC of the first device, configured to write the credit data to the preset address according to the data import command.
可选地,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。Optionally, the data import instruction includes: an identifier of the first device, and a physical address corresponding to the preset address.
本发明一实施例,提供一种系统100,所述系统100包括第一设备101和第二设备102,所述第一设备101和所述第二设备102通信连接;An embodiment of the present invention provides a system 100, the system 100 includes a first device 101 and a second device 102, and the first device 101 and the second device 102 are connected in communication;
所述第二设备102,用于从接收队列获取第一消息数据包,所述接收队列中存储由所述第一设备101向所述第二设备102发送的所述消息数据包;其中,所述第一消息数据包为已存储在该接收队列中的、业务的应用正在从该接收队列取走的数据包;The second device 102 is configured to obtain a first message data packet from a receiving queue, and the receiving queue stores the message data packet sent by the first device 101 to the second device 102; wherein, the The first message data packet is a data packet that has been stored in the receiving queue and is being taken away by the application of the service from the receiving queue;
所述第二设备102,用于在所述接收队列中删除已获取的所述第一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,向所述第一设备101发送载有信用数据的数据导入指令,所述信用数据为所述接收队列期望接收的消息数据包的个数,所述数据导入指令属于远程内存访问指令;The second device 102 is configured to delete the acquired first message data packets in the receiving queue, if the number of message data packets stored in the receiving queue is less than or equal to the first threshold, Sending a data import command carrying credit data to the first device 101, where the credit data is the number of message data packets expected to be received by the receiving queue, and the data import command belongs to a remote memory access command;
所述第一设备101,用于根据所述数据导入指令将所述信用数据写入其内存中的预设地址,根据所述预设地址记录的所述信用数据确定向所述第二设备102发送的消息数据包的个数上限。The first device 101 is configured to write the credit data into a preset address in its memory according to the data import instruction, and determine to send the credit data to the second device 102 according to the credit data recorded at the preset address. The upper limit of the number of message packets sent.
可选地,所述第一设备101,用于根据所述数据导入指令将所述信用数据写入其内存中的预设地址,具体为:Optionally, the first device 101 is configured to write the credit data into a preset address in its memory according to the data import instruction, specifically:
所述第一设备101,用于由所述第一设备101的内存资源控制器1011接收从所述第二设备的内存资源控制器1021发送的所述数据导入指令,转发所述数据导入指令至所述第一设备的内存控制器1022,由所述第一设备的内存控制器1022根据所述数据导入指令向所述预设地址写入所述信用数据。The first device 101 is configured to have the memory resource controller 1011 of the first device 101 receive the data import instruction sent from the memory resource controller 1021 of the second device, and forward the data import instruction to The memory controller 1022 of the first device writes the credit data to the preset address according to the data import instruction.
可选地,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。Optionally, the data import instruction includes: an identifier of the first device, and a physical address corresponding to the preset address.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块和单元的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed system, device and method can be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of modules and units is only a logical function division, and there may be other division methods during implementation, such as multiple modules or units or components. May be combined or may be integrated into another system, or some features may be omitted, or not implemented. In another point, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or modules may be in electrical, mechanical or other forms.
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。The modules described as separate components may or may not be physically separated, and the components as modules may or may not be physical modules, that is, they may be located in one place, or may be distributed to multiple network modules. Part or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。In addition, each functional module in each embodiment of the present invention may be integrated into one processing module, each module may exist separately physically, or two or more modules may be integrated into one module. The above-mentioned integrated modules can be implemented in the form of hardware, or in the form of hardware plus software function modules.
上述以软件功能模块的形式实现集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器(英文:Read-Only Memory,简称ROM)、随机存取存储器(英文:Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。The aforementioned integrated modules in the form of software function modules may be stored in a computer-readable storage medium. The above-mentioned software function modules are stored in a storage medium, and include several instructions to enable a computer device (which may be a personal computer, server, or network device, etc.) to execute some steps of the methods described in various embodiments of the present invention. The aforementioned storage media include: removable hard disk, read-only memory (English: Read-Only Memory, ROM for short), random access memory (English: Random Access Memory, RAM for short), magnetic disks or optical discs, etc., which can store programs. The medium of the code.
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: it can still be Modifications are made to the technical solutions described in the foregoing embodiments, or equivalent replacements are made to some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions depart from the protection scope of the technical solutions of the various embodiments of the present invention.
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510245796.1A CN106302201A (en) | 2015-05-14 | 2015-05-14 | Flow control methods, equipment and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510245796.1A CN106302201A (en) | 2015-05-14 | 2015-05-14 | Flow control methods, equipment and system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106302201A true CN106302201A (en) | 2017-01-04 |
Family
ID=57630934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510245796.1A Pending CN106302201A (en) | 2015-05-14 | 2015-05-14 | Flow control methods, equipment and system |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106302201A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273213A (en) * | 2017-06-27 | 2017-10-20 | 联想(北京)有限公司 | A kind of calculation control method, network interface card and electronic equipment |
CN108829735A (en) * | 2018-05-21 | 2018-11-16 | 上海达梦数据库有限公司 | Synchronous method, device, server and the storage medium of parallel executive plan |
CN113301103A (en) * | 2021-02-05 | 2021-08-24 | 阿里巴巴集团控股有限公司 | Data processing system, method and device |
CN115017089A (en) * | 2022-06-01 | 2022-09-06 | 中国科学院计算技术研究所 | A system and method for remote memory access |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030406A1 (en) * | 2009-06-29 | 2012-02-02 | Jichuan Chang | Hypervisor-based management of local and remote virtual memory pages |
CN102724112A (en) * | 2012-05-31 | 2012-10-10 | 华为技术有限公司 | Transmission method, receiving terminal equipment and system based on TCP (transmission control protocol) |
CN103227778A (en) * | 2013-03-26 | 2013-07-31 | 华为技术有限公司 | Method, device and system for accessing memory |
CN103645994A (en) * | 2013-11-05 | 2014-03-19 | 华为技术有限公司 | Data processing method and device |
-
2015
- 2015-05-14 CN CN201510245796.1A patent/CN106302201A/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030406A1 (en) * | 2009-06-29 | 2012-02-02 | Jichuan Chang | Hypervisor-based management of local and remote virtual memory pages |
CN102724112A (en) * | 2012-05-31 | 2012-10-10 | 华为技术有限公司 | Transmission method, receiving terminal equipment and system based on TCP (transmission control protocol) |
CN103227778A (en) * | 2013-03-26 | 2013-07-31 | 华为技术有限公司 | Method, device and system for accessing memory |
CN103645994A (en) * | 2013-11-05 | 2014-03-19 | 华为技术有限公司 | Data processing method and device |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273213A (en) * | 2017-06-27 | 2017-10-20 | 联想(北京)有限公司 | A kind of calculation control method, network interface card and electronic equipment |
CN107273213B (en) * | 2017-06-27 | 2024-04-19 | 联想(北京)有限公司 | Calculation control method, network card and electronic equipment |
CN108829735A (en) * | 2018-05-21 | 2018-11-16 | 上海达梦数据库有限公司 | Synchronous method, device, server and the storage medium of parallel executive plan |
CN108829735B (en) * | 2018-05-21 | 2021-06-29 | 上海达梦数据库有限公司 | Synchronization method, device, server and storage medium for parallel execution plan |
CN113301103A (en) * | 2021-02-05 | 2021-08-24 | 阿里巴巴集团控股有限公司 | Data processing system, method and device |
CN113301103B (en) * | 2021-02-05 | 2024-03-12 | 阿里巴巴集团控股有限公司 | Data processing system, method and device |
CN115017089A (en) * | 2022-06-01 | 2022-09-06 | 中国科学院计算技术研究所 | A system and method for remote memory access |
CN115017089B (en) * | 2022-06-01 | 2025-01-28 | 中国科学院计算技术研究所 | A remote memory access system and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10079889B1 (en) | Remotely accessible solid state drive | |
US10348830B1 (en) | Virtual non-volatile memory express drive | |
EP3758412A1 (en) | Multichannel data transmission method and apparatus | |
US12182402B2 (en) | Data access method and apparatus, and first computing device | |
CN103647726B (en) | Message dispatching method and device thereof | |
EP3076296A1 (en) | Computer, control device and data processing method | |
CN103440202B (en) | A kind of communication means based on RDMA, system and communication equipment | |
WO2020114336A1 (en) | Information synchronization method, authentication method and device | |
JP2018509674A (en) | Clustering host-based non-volatile memory using network-mapped storage | |
CN105684382A (en) | Packet control method, switch and controller | |
CN102523207A (en) | VNC (Virtual Network Computer)-based remote resource access method and proxy device | |
CN107547745A (en) | Resource allocation method and Related product | |
CN106610789B (en) | A kind of data processing method, apparatus and system | |
CN109426631A (en) | A kind of communication means based on RDMA, device and storage medium | |
CN106598752A (en) | Remote zero-copy method | |
CN112968919B (en) | Data processing method, device, equipment and storage medium | |
CN106302201A (en) | Flow control methods, equipment and system | |
CN114500633A (en) | Data forwarding method, related device, program product and data transmission system | |
WO2023103419A1 (en) | Message queue-based method and apparatus for sending 5g messages in batches, and electronic device | |
WO2023125380A1 (en) | Data management method and corresponding apparatus | |
CN116301568A (en) | A data access method, device and equipment | |
CN110545230A (en) | method and device for forwarding VXLAN message | |
CN113039523A (en) | Implementation of core cellular network stack on cloud infrastructure | |
CN104038550B (en) | Data communications method and its device, storage system | |
CN105786732A (en) | Data access method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |