Data transmission

By establishing dedicated data transmission channels between computer nodes and determining the target storage unit based on data priority and storage unit priority, the problem of low data transmission efficiency between nodes is solved, and efficient and low-latency data transmission is achieved.

WO2025253304A1PCT designated stage Publication Date: 2025-12-11CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/IB2025/055735
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-05
Filing Date
2025-06-04
Publication Date
2025-12-11

AI Technical Summary

Technical Problem

Data transmission efficiency between different computer nodes is low, mainly due to poor network stability and easy packet loss, resulting in high data transmission latency and extended communication time.

Method used

By establishing dedicated data transmission channels between nodes and determining the target data storage unit based on the priority of the data to be transmitted and the priority of the data storage unit, efficient data transmission can be achieved.

Benefits of technology

It improves the data transmission efficiency between nodes, avoids network packet loss problems, and achieves low-latency data communication.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IB2025055735_11122025_PF_FP_ABST
    Figure IB2025055735_11122025_PF_FP_ABST
Patent Text Reader

Abstract

Provided are a data transmission method and device, a computing device, and a storage medium. The data transmission method comprises: receiving a data transmission request sent by a first node to a second node, wherein the data transmission request is a request to be sent by the first node to the second node; on the basis of a second node identifier, determining a data transmission channel between the first node and the second node, and a plurality of data storage units corresponding to the data transmission channel; on the basis of the data priority of data to be transmitted and the unit priority of the data storage units, determining a target data storage unit corresponding to said data, and storing said data into the target data storage unit; and transmitting said data in the target data storage unit to the second node by means of the data transmission channel.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Field of data transmission

[0002]

[0001] Embodiments of the present disclosure relate to the technical field of computer, and particularly, relate to data transmission. BACKGROUND

[0003]

[0002] With the continuous development of computer technology, data transmission needs to be performed between different computer nodes, so as to implement corresponding data processing operations.

[0004]

[0003] In the related art, different nodes are interconnected through a network, and data transmission between different nodes is also implemented through the network. However, due to the characteristics of the network itself, such as poor stability and easy packet loss, the data transmission efficiency between different nodes is low. Based on this, how to implement efficient data transmission between different nodes becomes a problem to be solved. SUMMARY

[0005]

[0004] In view of this, the embodiments of the present disclosure provide a data transmission method. One or more embodiments of the present disclosure also relate to a data transmission device, a data transmission system, a computing device, a computer-readable storage medium, and a computer program product, to solve the technical defect of low data transmission efficiency between different nodes in the related art.

[0006]

[0005] According to a first aspect of embodiments of the present disclosure, a data transmission method is provided, including: receiving a data transmission request sent by a first node for a second node, wherein the data transmission request carries to-be-transmitted data and a second node identifier of the second node; determining a data transmission channel between the first node and the second node and a plurality of data storage units corresponding to the data transmission channel based on the second node identifier; determining a target data storage unit corresponding to the to-be-transmitted data based on a data priority of the to-be-transmitted data and a unit priority of each data storage unit, and storing the to-be-transmitted data to the target data storage unit; and transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel.

[0007]

[0006] According to a second aspect of embodiments of the present disclosure, a data transmission device is provided, comprising: a request processing module configured to receive a data transmission request sent by a first node to a second node, wherein the data transmission request carries to-be-transmitted data and a second node identifier of the second node; a channel management module configured to determine, based on the second node identifier, a data transmission channel between the first node and the second node, and a plurality of data storage units corresponding to the data transmission channel; a data storage module configured to determine, based on data priorities of the to-be-transmitted data and unit priorities of the data storage units, a target data storage unit corresponding to the to-be-transmitted data, and store the to-be-transmitted data into the target data storage unit; and a data sending module configured to transmit the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel.

[0008]

[0007] According to a third aspect of embodiments of the present disclosure, a data transmission system is provided, comprising a data transmission device, a first node and a second node, wherein the first node is configured to send a data transmission request for the second node to the data transmission device, wherein the data transmission request is a request to be sent by the first node to the second node, and the data transmission request carries to-be-transmitted data and a second node identifier of the second node; the data transmission device is configured to receive the data transmission request sent by the first node for the second node, determine, based on the second node identifier, a data transmission channel between the first node and the second node, and a plurality of data storage units corresponding to the data transmission channel, determine, based on data priorities of the to-be-transmitted data and unit priorities of the data storage units, a target data storage unit corresponding to the to-be-transmitted data, store the to-be-transmitted data into the target data storage unit, and transmit the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel; and the second node is configured to receive the to-be-transmitted data.

[0008] According to a fourth aspect of embodiments of the present disclosure, a computing device is provided, comprising: a memory and a processor; the memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions, which realize the steps of the above data transmission method when executed by the processor.

[0009]

[0009] According to a fifth aspect of the embodiments of the present disclosure, a computer readable storage medium is provided, which stores computer programs / instructions, and the computer programs / instructions are executed by a processor to implement the steps of the above data transmission method.

[0010]

[0010] According to a sixth aspect of the embodiments of the present disclosure, a computer program product is provided, which includes computer programs / instructions, and the computer programs / instructions are executed by a processor to implement the steps of the above data transmission method.

[0011]

[0011] The data transmission method provided by one or more embodiments of the present disclosure can determine a data transmission channel for data transmission between a first node and a second node, and determine a plurality of data storage units corresponding to the data transmission channel during data transmission. Since the data transmission channel is used for data transmission between the first node and the second node, the data transmission efficiency can be ensured, and the characteristics of poor stability and easy packet loss of the network itself are avoided. In addition, based on the data priority of the to-be-transmitted data and the unit priority of each data storage unit, a target data storage unit corresponding to the to-be-transmitted data is determined from each data storage unit, and then the to-be-transmitted data in the target data storage unit is transmitted to the second node through the data transmission channel. Thus, according to different priorities, the to-be-transmitted data with higher priority is transmitted first, and efficient data transmission between the first node and the second node is realized, thereby solving the problem of low data transmission efficiency between different nodes.

[0012]

[0012] FIG. 1 is a communication schematic diagram of an RDMA network provided by an embodiment of the present disclosure;

[0013]

[0013] FIG. 2 is an application schematic diagram of a data transmission method provided by an embodiment of the present disclosure;

[0014]

[0014] FIG. 3 is a flowchart of a data transmission method provided by an embodiment of the present disclosure;

[0015]

[0015] FIG. 4 is a schematic diagram of a data format in a data transmission method provided by an embodiment of the present disclosure;

[0016]

[0016] FIG. 5 is a process flowchart of a data transmission method provided by an embodiment of the present disclosure;

[0017]

[0017] FIG. 6 is a structural schematic diagram of MEC hardware in a data transmission method provided by an embodiment of the present disclosure;

[0018]

[0018] Figure 7 is a schematic diagram illustrating an application of MEC hardware in a data transmission method according to an embodiment of the present disclosure;

[0019]

[0019] Figure 8 is another schematic diagram illustrating an application of MEC hardware in a data transmission method according to an embodiment of the present disclosure;

[0020]

[0020] Figure 9 is a schematic diagram illustrating a structure of a data transmission device according to an embodiment of the present disclosure;

[0021]

[0021] Figure 10 is a schematic block diagram illustrating a structure of a computing device according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0022]

[0022] In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, the present disclosure can be practiced without the specific details

[0023]

[0023] The terminology used in this disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of one or more embodiments of the present disclosure. As used in this disclosure and the appended claims, the singular forms "a," "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items.

[0024]

[0024] It will be understood that, although the terms first, second, etc. can be used herein to describe various information, these terms are merely used as labels to distinguish one element from another. For example, a first element could be termed a second element without departing from the scope of one or more embodiments of the present disclosure. Furthermore, spatial or directional terms, such as top, bottom, front, back, rear, right, left, lateral, horizontal, vertical, ascending, descending, and the like, can be used herein for the purpose of

[0025] In addition, it should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in one or more embodiments of the present disclosure are all information and data authorized by the user or authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation portal for user to choose authorization or refusal.

[0025]

[0026] First, the terms involved in one or more embodiments of the present disclosure are explained.

[0026]

[0027] CXL (Compute Express Link): a high-speed interconnection technology, CXL can be a high-speed serial protocol that allows fast and reliable data transmission between different components within a computer system. Through CXL, higher data throughput and lower latency can be provided to meet the needs of modern computing and storage systems.

[0027]

[0028] RDMA (Remote Direct Memory Access): refers to remote direct data access. RDMA is designed to solve the delay of server data processing in network transmission. RDMA directly transmits data into the storage area of the computer through the network, and moves data from one system to the remote system memory quickly without affecting the operating system. This way, you don't need to use much computer processing power.

[0028]

[0029] MEC (Message Exchange Controller): can be understood as a device responsible for managing and coordinating the transmission of data (such as messages) between different nodes in a cluster; through the MEC device, low-latency message communication between multiple nodes can be achieved.

[0029]

[0030] Arbitration: arbitration is a key technology in computer systems, used to manage the allocation of access rights when multiple devices (such as caches) or nodes share the same data transmission channel resources; different devices or nodes transmit data or control signals through the data transmission channel. Since the data transmission channel (such as the bus) can only be occupied by one device or node at the same time, in order to prevent data conflicts or chaos caused by multiple devices or nodes trying to access the data transmission channel at the same time, an arbitration mechanism is needed to determine which device or node can obtain the current data transmission channel usage right.

[0030]

[0031] RR (Round-Robin): refers to Round-Robin arbitration, which is an arbitration strategy. Round-Robin arbitration is a fair allocation method that assigns data transmission channel usage rights to each requester (e.g., priority cache module) in a fixed order (e.g., priority order of priority cache module). For example, if there are three master devices A, B, and C requesting data transmission channels, RR arbitration will give them access rights in turn, i.e., first to A, second to B, third to C, and then to A again, and so on.

[0031]

[0032] WRR (Weighted Round-Robin): refers to Weighted Round-Robin arbitration, which is an arbitration strategy. Weighted Round-Robin arbitration is an improvement over ordinary Round-Robin arbitration, which takes into account that different devices (e.g., priority cache modules) or nodes may have different needs for data transmission channels, and assigns each device or node a weight. In the arbitration process, devices or nodes with higher weights will have more frequent access to data transmission channels than devices or nodes with lower weights.

[0032]

[0033] IP: refers to Internet Protocol, the abbreviation of Internet Protocol, which is a network layer protocol in the TCP / IP system.

[0033]

[0034] TCP (Transmission Control Protocol): refers to Transmission Control Protocol, which is a connection-oriented, reliable, and byte-stream-based transport layer communication protocol.

[0034]

[0035] AI (Artificial Intelligence): refers to Artificial Intelligence.

[0035]

[0036] UDP: is the abbreviation of Datagram Protocol, which refers to User Datagram Protocol.

[0036]

[0037] Network MAC port: refers to the location of the MAC address on the Network Interface Card (NIC); MAC address, full name Media Access Control Address, refers to the Media Access Control Address.

[0037]

[0038] The CXL switch is a network device based on the CXL technology, which plays a core role in the CXL architecture and is responsible for efficiently managing and forwarding data packets between multiple CXL devices. The working principle and role of the CXL switch are similar to those of a traditional network switch, but are targeted at communication between devices supporting the CXL protocol.

[0038]

[0039] With the continuous development of computer technology, data transmission needs to be performed between different computer nodes, so as to realize corresponding data processing operations. Among them, different nodes are interconnected through a network, and data transmission between different nodes is also realized through the network.

[0039]

[0040] However, due to the poor stability and easy packet loss of the network itself, the data transmission efficiency between different nodes is low. For example, in order to meet the data efficient processing demand in the AI era, 0 packet loss, low latency, high throughput and other indicators have become the three core indicators of the data center network. However, in the process of interconnecting different nodes through the network, a series of initialization and network protocol packet operations are required for data transmission. For details, refer to FIG. 1, which is a communication diagram of an RDMA network according to an embodiment of the present disclosure. As shown in FIG. 1, the RDMA network architecture is composed of nodes and an RDMA network. The nodes include a software part and a hardware part. Through cooperation between the software part and the hardware part, messages are sent to another node through the RDMA network. The software part includes an RDMA application layer and an APL software stack. The hardware part includes transport layer processing, network layer processing (IP / UDP), and an Ethernet link layer.

[0040]

[0041] Therefore, the nodes in the data center are connected to the RDMA network through a network MAC port, so as to communicate between nodes through the RDMA network. The communication process is as follows: first, the RDMA network is initialized to establish a transmission queue; then, a transmission command is issued to notify the hardware to perform data transmission. During data transmission, each layer of data (e.g., messages) needs to be packetized, unpacked, cached, and processed.

[0041]

[0042] The RDMA network has the following disadvantages in data transmission: first, the transmission delay is relatively high, especially when the network is congested, packet loss occurs, which further increases the delay. Second, the overall communication delay is long. Finally, due to its support for out-of-order, common packet loss will further increase the overall delay; therefore, it is difficult for the RDMA network to realize 0 packet loss and low delay communication.

[0042]

[0043] Based on this, in the present disclosure, a data transmission method is provided, and one or more embodiments of the present disclosure simultaneously relate to a data transmission device, a data transmission system, a computing device, a computer-readable storage medium, and a computer program product, which are described in detail one by one in the following embodiments.

[0043]

[0044] Referring to FIG. 2, FIG. 2 shows an application schematic diagram of a data transmission method according to an embodiment of the present disclosure. Based on FIG. 2, it can be known that the data transmission between node 0 (i.e., the first node) and node N (i.e., the second node) can be realized through MEC hardware (i.e., a data transmission device), and the specific implementation manner can be as follows: first, node 0 sends the to-be-transmitted data to be sent to node N to the MEC hardware, and the MEC hardware can determine the data transmission channel between node 0 and node N and the priority cache module corresponding to the data transmission channel according to the node ID of node N; second, based on the data priority of the to-be-transmitted data, the priority cache module matched with the to-be-transmitted data is determined from the plurality of priority cache modules with priority, and the to-be-transmitted data is stored in the corresponding priority storage module; finally, the MEC hardware judges the non-empty condition of the priority cache module, and performs arbitration between different priorities, so as to transmit the to-be-transmitted data in the priority cache module to node N, thereby realizing low-delay communication between multiple nodes.

[0044]

[0045] It should be noted that the node in the data transmission method provided by one or more embodiments of the present disclosure can be a node in a data center or a data cluster.

[0045]

[0046] Referring to FIG. 3, FIG. 3 shows a flowchart of a data transmission method according to an embodiment of the present disclosure, which specifically includes the following steps.

[0046]

[0047] Step 302: receiving a data transmission request sent by a first node for a second node, wherein the data transmission request is a request to be sent by the first node to the second node, and the data transmission request carries to-be-transmitted data and a second node identifier of the second node.

[0047]

[0048] It should be noted that the data transmission method provided by the present disclosure is applied to a data transmission device, which can be connected with multiple nodes to realize data transmission between the multiple nodes. The data transmission device can be a hardware module or a software module, for example, the data transmission device can be a software module such as an application, a script, a software plug-in, a computer program product, a virtual device, or the data transmission device can be a hardware module such as a hardware device, a physical plug-in, or a device. In one or more embodiments of the present disclosure, the data transmission device is a MEC hardware.

[0048]

[0049] It should be noted that the data transmission device can be independently connected with multiple nodes, or can be arranged in a communication device as a component. Through the data transmission device arranged in the communication device, data transmission between multiple nodes can also be realized. The communication device can be a device such as a router, a switch, or a base station.

[0050] The node can be understood as a server, a server, a terminal, a client, a virtual machine, a cloud server, a container, etc. The data transmission request can be understood as a request of the first node to transmit to-be-transmitted data to the second node, and the data transmission request can be a write request. The to-be-transmitted data can be set according to an actual application scenario, for example, the to-be-transmitted data can be a message, multimedia data, text data, weight parameters, code data, etc., which is not limited here. The second node identifier can be understood as a node identifier corresponding to the second node. The node identifier can be information representing a unique node, and the node identifier can be character, number, value, address, etc. The node identifier can be a node ID.

[0049]

[0051] In one or more embodiments of the present disclosure, the receiving of the data transmission request sent by the first node for the second node includes: receiving, by a request processing module, the data transmission request sent by the first node for the second node. The request processing module can be understood as a module for processing the data transmission request, and the request processing module can be a module composed of a data transmission module, a data sending module, and a data receiving module.

[0050]

[0052] In one or more embodiments provided in the present disclosure, the receiving, by the first node, of the data transmission request sent by the second node includes: receiving, by the first data transmission module corresponding to the first node, the data transmission request sent by the second node to the first node; and determining, based on the second node identifier, the data transmission channel between the first node and the second node and the plurality of data storage modules corresponding to the data transmission channel includes: parsing, by the first data transmission module, the to-be-transmitted data and the second node identifier in the data transmission request, and sending the parsed to-be-transmitted data and the second node identifier to the first data sending module corresponding to the first node; sending, by the first data sending module, the to-be-transmitted data and the second node identifier to the channel management module; and determining, by the channel management module, the data transmission channel between the first node and the second node based on the second node identifier from the plurality of transmission channels, and determining the plurality of data storage modules corresponding to the data transmission channel.

[0051]

[0053] It should be noted that each node has a corresponding data transmission module for realizing data transmission between nodes. For example, the second node has a corresponding second data transmission module, which can be a hardware module or a software module. For example, the data transmission module can be a CXL protocol processing module, which realizes CXL interconnection between the data transmission module and each node and avoids data packet loss. In one or more embodiments provided in the present disclosure, the hardware module can be understood as a hardware device, a physical plug-in, a device, etc. The software module can be an application program, a script, a software plug-in, a computer program product, a virtual device, etc.

[0052]

[0054] The first data sending module can be understood as a data sending module corresponding to the first node. It should be noted that each node has a corresponding data sending module for realizing data transmission between nodes. For example, the second node has a corresponding second data sending module. The data sending module can be a hardware module or a software module. In one or more embodiments provided in the present disclosure, the data sending node can be a node receiving processing module.

[0053]

[0055] The channel management module can be understood as a module for managing a transmission channel in a data transmission device. The channel management module can be a hardware module or a software module. In one or more embodiments provided in the present disclosure, the channel management module can be a channel distribution scheduling module. The data transmission channel between the first node and the second node is constructed by the channel management module.

[0054]

[0056] For example, the data transmission method provided in the present disclosure is used to perform data transmission between different nodes. The CXL protocol processing module receives a data write request with a priority sent by the first node, then analyzes the data write request to obtain data (for example, a message) in the data write request and a second node ID, and sends the data and the second node ID to the node sending processing module. The node sending processing module processes the received data and the second node ID, and sends them to the channel distribution scheduling module.

[0055]

[0057] In the above embodiments, the data transmission module, the data sending module, and the data receiving module corresponding to each node are used for data transmission, so that the data transmission demand of the node can be efficiently and timely processed.

[0056]

[0058] Step 304: Based on the second node identifier, a data transmission channel between the first node and the second node is determined, as well as a plurality of data storage units corresponding to the data transmission channel.

[0059] The data storage unit can be understood as a unit for storing the to-be-transmitted data. The data storage unit can be a cache, a local hard disk, a register, or the like, which is not specifically limited herein. For example, the data storage unit can be a priority cache module.

[0057]

[0060] In one or more embodiments provided in the present disclosure, based on the second node identifier, the data transmission channel between the first node and the second node is determined, as well as the plurality of data storage units corresponding to the data transmission channel, which includes: using the channel management module, based on the second node identifier, the data transmission channel between the first node and the second node is determined, as well as the plurality of data storage units corresponding to the data transmission channel, so that subsequent data transmission between two nodes can be realized based on the data transmission channel and the plurality of data storage units.

[0058]

[0061] In one or more embodiments provided in the disclosure, before the determining the data transmission channel between the first node and the second node based on the second node identifier, and the plurality of data storage units corresponding to the data transmission channel, the method further comprises: receiving a channel establishment request sent by the first node, wherein the channel establishment request carries the first node identifier of the first node and the second node identifier; determining an idle transmission channel from the plurality of transmission channels based on channel states of the plurality of transmission channels, wherein each transmission channel has a plurality of corresponding data storage units; determining a first node address corresponding to the first node based on the first node identifier, and determining a second node address of the second node based on the second node identifier; establishing the data transmission channel between the first node and the second node based on the first node address, the second node address, and the idle transmission channel.

[0059]

[0062] The channel state can be understood as information representing the load request or whether the transmission channel is idle, for example, a label indicating whether the transmission channel is idle, information indicating whether the transmission channel is currently performing data transmission, etc.; the first node address can be understood as the IP address of the first node; and the second node address can be understood as the IP address of the second node.

[0060]

[0063] In the above example, the channel distribution scheduling module in the MEC hardware arbitrates the connection establishment request sent by the node sending processing module after receiving the connection establishment request; in the case of arbitration determining that a corresponding transmission channel needs to be distributed for the node, the corresponding channel is allocated to the node according to the availability (i.e., the channel state) of the current channels (i.e., the transmission channels); the ID information in the node receiving end (i.e., the second node) register is queried to find an address consistent with the ID information in the write request, and the connection between the two nodes is established based on the channel.

[0061]

[0064] In the above embodiments, the channel management module pre-establishes the data transmission channel between the first node and the second node based on the channel establishment request, so that the data transmission channel between the two nodes and the plurality of data storage units can be quickly determined subsequently, and efficient data transmission between the two nodes is realized.

[0062]

[0065] Step 306: determining a target data storage unit corresponding to the to-be-transmitted data based on the data priority of the to-be-transmitted data and the unit priority of each data storage unit, and storing the to-be-transmitted data in the target data storage unit.

[0063]

[0066] In one or more embodiments provided in the present disclosure, the target data storage unit corresponding to the to-be-transmitted data is determined based on the data priority of the to-be-transmitted data and the unit priority of each data storage unit, and the to-be-transmitted data is stored in the target data storage unit, including: determining, by a data storage module, the target data storage unit corresponding to the to-be-transmitted data based on the data priority of the to-be-transmitted data and the unit priority of each data storage unit, and storing the to-be-transmitted data in the target data storage unit; so that the target data storage unit corresponding to the to-be-transmitted data is accurately determined and stored by the data storage module dedicated to data storage.

[0064]

[0067] The data storage module can be understood as a module for storing to-be-stored data in a data storage unit with the same priority according to the priority, for example, the data storage module can be a priority distribution module; the data storage module can be a hardware module or a software module.

[0065]

[0068] In one or more embodiments provided in the present disclosure, the target data storage unit corresponding to the to-be-transmitted data is determined based on the data priority of the to-be-transmitted data and the unit priority of each data storage unit, including: determining the data priority of the to-be-transmitted data and determining the unit priority of each data storage unit; and determining the data storage unit with the same unit priority as the data priority of the to-be-transmitted data as the target data storage unit.

[0066]

[0069] In the above example, the priority distribution module determines the data priority of the to-be-transmitted data and the priority corresponding to the priority cache module, so as to determine the priority cache module with the same priority as the data priority, and store the to-be-transmitted data in the corresponding priority cache module, thereby accurately determining the corresponding priority cache module for the to-be-transmitted data.

[0067]

[0070] In one or more embodiments provided in the present disclosure, the data priority of the to-be-transmitted data is determined by: determining the request priority of the data transmission request as the data priority of the to-be-transmitted data; or determining the data priority contained in the to-be-transmitted data; or determining the data attribute information corresponding to the to-be-transmitted data, and performing priority evaluation on the to-be-transmitted data based on the data attribute information to obtain the data priority of the to-be-transmitted data.

[0068]

[0071] Specifically, the data transmission method provided by one or more embodiments of the present disclosure determines the data priority in the following manner: a first manner is to determine a request priority corresponding to a data transmission request, and take the request priority as the data priority of the to-be-transmitted data (i.e., the request priority of the data transmission request is determined as the data priority of the to-be-transmitted data).

[0069]

[0072] A second manner can be understood as determining the data priority contained in the to-be-transmitted data, and a specific implementation manner is as follows: the data format of the to-be-transmitted data can be referred to FIG. 4, which is a schematic diagram of a data format in a data transmission method provided by one embodiment of the present disclosure. As shown in FIG. 4, the to-be-transmitted data is composed of a data valid bit, priority information, and message data. Based on this, the priority information (i.e., the data priority) contained in the to-be-transmitted data can be determined.

[0070]

[0073] It should be noted that the data valid bit is used by the second node to determine whether the read data is valid, that is, the second node determines whether the read data is valid by the bit (data valid bit) after reading the data; the message data can be understood as the data required by the second node.

[0071]

[0074] A third manner can be understood as determining data attribute information corresponding to the to-be-transmitted data, and performing priority evaluation on the to-be-transmitted data based on the data attribute information to obtain the data priority of the to-be-transmitted data.

[0072]

[0075] The data attribute information can be understood as attribute information such as the data type and data size of the to-be-transmitted data.

[0073]

[0076] In one or more embodiments of the present disclosure, considering that a specific type of to-be-transmitted data is more important, for example, weight parameters, code data, etc., therefore, in the process of priority evaluation of the to-be-transmitted data, the weight parameters, code data, and other specific types of to-be-transmitted data can be set to high priority, and other data can be set to low priority.

[0074]

[0077] Alternatively, considering the efficiency of data transmission, in order to avoid that data with large volume occupies the data transmission channel for a long time, therefore, data with small volume can be set to high priority, and data with large volume can be set to low priority.

[0075]

[0078] In the above embodiments, the data priority of the to-be-transmitted data is determined in multiple ways, so that the data transmission method is improved in applicability.

[0076]

[0079] Step 308: transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel.

[0077]

[0080] In one or more embodiments provided in the present disclosure, the transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel comprises: utilizing a data sending module to transmit the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel.

[0078]

[0081] The data sending module can be understood as a module for sending to-be-transmitted data, and the data sending module can be a priority arbitration module; the data sending module can be a hardware module or a software module.

[0079]

[0082] In one or more embodiments provided in the present disclosure, the transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel comprises: determining a to-be-transmitted data storage unit from the data storage units based on the unit priority of each data storage unit in the multiple data storage units; and in a case where the to-be-transmitted data storage unit is determined to be the target data storage unit, transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel.

[0083] The to-be-transmitted data storage unit can be understood as a data storage unit storing data.

[0080]

[0084] In the above example, in a case where the priority arbitration module determines that the multiple priority cache modules are not empty, the priority arbitration module determines a priority cache unit (i.e., a to-be-transmitted data storage unit) in the priority cache modules storing data.

[0081]

[0085] The priority of each priority cache module is determined, each priority cache module is arbitrated based on the priority, a priority cache module currently needing data transmission is determined, and to-be-transmitted data in the priority cache module is transmitted to the second node through the data transmission channel.

[0082]

[0086] In the above embodiment, the data sending module arbitrates the priority buffer modules by using the priority, so that the use right of the flexible data transmission channel is allocated to each priority buffer module, and the data transmission efficiency is improved.

[0083]

[0087] In one or more embodiments provided in the present disclosure, the data storage unit to be transmitted is determined from the data storage units based on the unit priority of each data storage unit in the plurality of data storage units, including: determining a data storage unit to be scheduled and a unit priority of the data storage unit to be scheduled from the plurality of data storage units, and determining the data storage unit to be scheduled corresponding to the maximum unit priority in the unit priority as the data storage unit to be transmitted, wherein the data storage unit to be scheduled is a non-empty data storage unit in the plurality of data storage units; or sorting the plurality of data storage units based on the unit priority to obtain a data storage unit sequence, and sequentially determining each data storage unit as the data storage unit to be transmitted according to the data storage unit sequence; or sorting the plurality of data storage units based on the unit priority to obtain a data storage unit sequence, and determining the data storage unit to be transmitted from each data storage unit according to the data storage unit sequence and a preset weight parameter of each data storage unit.

[0084]

[0088] In the above example, the priority arbitration module arbitrates different priority buffer modules to determine the priority buffer module to be transmitted, and then initiates a data sending request to the node receiving end.

[0085]

[0089] Specifically, the arbitration manner of different priority buffer modules includes but is not limited to: a first arbitration manner, which refers to determining a data storage unit to be scheduled and a unit priority of the data storage unit to be scheduled from the plurality of data storage units, and determining the data storage unit to be scheduled corresponding to the maximum unit priority in the unit priority as the data storage unit to be transmitted; and the execution strategy of the specific manner is: directly scheduling according to the priority of the node, that is, determining the data in the priority buffer module with the highest priority as the data to be transmitted; and switching to the priority buffer module of the next priority for data transmission after the transmission is completed.

[0086]

[0090] The second arbitration manner is to sort the plurality of data storage units based on the unit priorities, to obtain a data storage unit sequence, and to sequentially determine the data storage units as the to-be-transmitted data storage unit according to the data storage unit sequence. The execution strategy of the second arbitration manner is that the data transmission channel is allocated to each priority cache module in turn according to the priority sequence of the priority cache modules.

[0087]

[0091] The third manner is to sort the plurality of data storage units based on the unit priorities, to obtain a data storage unit sequence, and to determine the to-be-transmitted data storage unit from the data storage units according to the data storage unit sequence and preset weight parameters of the data storage units. The execution strategy of the third manner is that the data transmission channel is allocated to each priority cache module in turn according to the priority sequence of the priority cache modules and the weight information of each priority cache module. In other words, the third arbitration manner is WRR arbitration.

[0088]

[0092] In the above embodiments, the data sending module flexibly arbitrates the priority cache modules by using a plurality of arbitration strategies, so as to realize flexible allocation of the use right of the data transmission channel to the priority cache modules, and improve the applicability of the data transmission method.

[0089]

[0093] In one or more embodiments provided in the disclosure, the transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel comprises: determining a data receiving strategy corresponding to the second node; and transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel based on the data receiving strategy.

[0090]

[0094] The data receiving strategy can be understood as a data receiving mode configured by the second node, and the data receiving mode can be set according to an actual application scenario.

[0091]

[0095] Specifically, in the process of transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel, the second node can configure different data receiving strategies based on actual application requirements. Therefore, it is necessary to determine the data receiving strategy corresponding to the second node, and based on the data receiving strategy, the to-be-transmitted data in the target data storage unit is successfully transmitted to the second node through the data transmission channel, thereby avoiding the problem that the to-be-transmitted data cannot be transmitted to the second node due to the uncertainty of the data receiving strategy corresponding to the second node, and improving the applicability of the data transmission method.

[0092]

[0096] In one or more embodiments provided in the present disclosure, the transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel based on the data receiving strategy comprises: determining a second data receiving module corresponding to the second node, and transmitting the to-be-transmitted data in the target data storage unit to the second data receiving module through the data transmission channel; using the second data receiving module to send the to-be-transmitted data to a second data transmission module corresponding to the second node based on the data receiving strategy; and using the second data transmission module to send the to-be-transmitted data to the second node.

[0093]

[0097] It should be noted that each node has a corresponding data receiving module for realizing data receiving between nodes. For example, the first node has a first data receiving module. The data receiving module can be understood as a node receiving processing module. The data receiving module can be a software module or a hardware module.

[0094]

[0098] Specifically, in the process of transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel based on the data receiving strategy, first, the second data receiving module corresponding to the second node needs to be determined, and the to-be-transmitted data in the target data storage unit is transmitted to the second data receiving module through the data transmission channel.

[0095]

[0099] Secondly, using the second data receiving module, the to-be-transmitted data is sent to a second data transmission module corresponding to the second node based on the data receiving strategy, thereby avoiding the problem that the to-be-transmitted data cannot be transmitted to the second node due to the uncertainty of the data receiving strategy corresponding to the second node, and improving the applicability of the data transmission method.

[0096]

[0100] Finally, the second data transmission module is used to send the to-be-transmitted data to the second node, so that the to-be-transmitted data is efficiently sent to the second node through the second data transmission module dedicated for data transmission.

[0097]

[0101] In the above embodiment, data is received by the data receiving module corresponding to each node, and efficient and timely processing of the data transmission demand of the node is realized.

[0098]

[0102] In one or more embodiments provided in the present disclosure, based on the data receiving strategy, the to-be-transmitted data is sent to the second data transmission module corresponding to the second node, including: in a case where it is determined that the data receiving strategy is a memory interrupt strategy, memory interrupt information is determined based on the to-be-transmitted data, and the memory interrupt information is sent to the second data transmission module corresponding to the second node; or in a case where it is determined that the data receiving strategy is a cache polling strategy, the to-be-transmitted data is sent to the second data transmission module corresponding to the second node in a manner of address mapping; or in a case where it is determined that the data receiving strategy is a cache interrupt strategy, the to-be-transmitted data and cache interrupt information determined based on the to-be-transmitted data are sent to the second data transmission module corresponding to the second node in a manner of address mapping.

[0099]

[0103] Among them, the memory interrupt strategy can be understood as the mem interrupt mode; the cache polling strategy can be understood as the cache polling mode; and the cache interrupt strategy can be understood as the cache interrupt mode.

[0100]

[0104] Continuing with the above example, after the node receiving and processing module receives the data sending request of the channel distribution and scheduling module, the configuration information is read, and the receiving mode (i.e., the data receiving strategy) is determined.

[0105] When the receiving mode is the mem polling mode, the data packet is discarded; when the receiving mode is the mem interrupt mode, interrupt information is generated according to the configuration and transmitted to the CXL protocol processing module; when the receiving mode is the cache polling mode, the data is sent to the CXL protocol processing module according to address mapping, and space release information is returned; and when the receiving mode is the cache interrupt mode, the data is first sent to the CXL protocol processing module according to address mapping, then interrupt information is generated according to the configuration and transmitted to the CXL protocol processing module, and then space release information is returned.

[0101]

[0106] In the above embodiment, the data transmission is performed through different types of data receiving strategies, so that corresponding data receiving strategies can be flexibly adopted according to different application scenarios, and the applicability of the data transmission method is improved.

[0102]

[0107] In one or more embodiments provided in the present disclosure, before the receiving first node receives the data transmission request sent by the second node, the receiving first node further receives a data acquisition request sent by the second node to the receiving first node, wherein the data acquisition request carries a to-be-acquired data identifier and a first node identifier of the receiving first node; based on the first node identifier, a data transmission channel between the receiving first node and the second node and a plurality of data storage units corresponding to the data transmission channel are determined; based on a data priority of the data acquisition request and a unit priority of each data storage unit, a target data storage unit corresponding to the data acquisition request is determined, and the data acquisition request is stored in the target data storage unit; the data acquisition request in the target data storage unit is transmitted to the receiving first node through the data transmission channel; the receiving first node receives a data transmission request sent by the second node, wherein the data transmission request is sent by the receiving first node based on the received data acquisition request, and the data transmission request carries the to-be-transmitted data corresponding to the to-be-acquired data identifier and a second node identifier of the second node.

[0103]

[0108] The data acquisition request can be understood as a request for acquiring the to-be-transmitted data from the receiving first node, for example, the data acquisition request can be a data read request.

[0104]

[0109] It should be noted that the manner in which the second node sends the data acquisition request to the receiving first node by using the data transmission device is the same as the manner in which the receiving first node sends the to-be-transmitted data to the second node by using the data transmission device, and thus will not be described herein.

[0105]

[0110] In addition, after the receiving first node receives the data acquisition request, the receiving first node sends the to-be-transmitted data corresponding to the to-be-acquired data identifier to the data transmission device based on the data acquisition request, so as to realize data transmission between the receiving first node and the second node.

[0106]

[0111] The data transmission method provided by one or more embodiments of the present disclosure can determine a data transmission channel for data transmission between a first node and a second node, and determine a plurality of data storage units corresponding to the data transmission channel during the data transmission process. Since the data transmission channel is dedicated to data transmission between the first node and the second node, the data transmission efficiency can be ensured, and the characteristics of poor stability and easy packet loss of the network itself are avoided. In addition, based on the data priority of the to-be-transmitted data and the unit priority of each data storage unit, a target data storage unit corresponding to the to-be-transmitted data is determined from each data storage unit, and then the to-be-transmitted data in the target data storage unit is transmitted to the second node through the data transmission channel. Thus, according to different priorities, the to-be-transmitted data with higher priority is transmitted first, thereby realizing efficient data transmission between the first node and the second node, and solving the problem of low data transmission efficiency between different nodes.

[0107]

[0112] The data transmission method provided by the present disclosure will be further described below in the application of the data transmission method in a multi-node low-latency message communication scenario. Specifically, FIG. 5 shows a process flowchart of a data transmission method according to an embodiment of the present disclosure. It should be noted that the data transmission method provided by the present disclosure can be applied to a MEC hardware connected to a plurality of nodes. The hardware structure of the MEC hardware can be referred to FIG. 6, which is a structural diagram of the MEC hardware in a data transmission method according to an embodiment of the present disclosure. As shown in FIG. 6, each node can send and receive messages of different priorities. The nodes and the MEC hardware can be connected through an interface (for example, a CXL interface). The MEC hardware can establish a transmission channel for each two nodes, and the MEC hardware is responsible for establishing the channel, caching and transmitting messages of different priorities.

[0108]

[0113] The MEC hardware can be composed of a CXL protocol processing module, a node sending processing module, a node receiving processing module, a channel distribution scheduling module, and a channel cache management module.

[0109]

[0114] The CXL protocol processing module can implement the following functions:

[0115] When the K receives a CXL data packet from a host node, the corresponding address, data, and other information are parsed. The write command is transmitted to the node sending processing module, and the read command is transmitted to the node receiving module.

[0110]

[0116] 2, When receiving the CXL package sending request from the node receiving processing module, encapsulate as a CXL data package according to the address, data and other information, and send to the host node.

[0111]

[0117] Among them, the CXL protocol processing module can realize the following functions:

[0112]

[0118] K maintains the node sending end register, including the cache space size, available space and other information, for node configuration and query; among them, the node sending end can be understood as the node sending message, and the node sending end register can be understood as the register corresponding to the node sending end, used to store the cache space size, available space and other information related to the node sending end register.

[0113]

[0119] 2, After receiving the information of the CXL protocol processing module, cache and initiate a write request to the channel distribution scheduling module;

[0114]

[0120] 3, After waiting for the channel distribution scheduling module to receive the request, release the corresponding cache space.

[0115]

[0121] Among them, the node receiving processing module can realize the following functions:

[0116]

[0122] K maintains the node receiving end register, including node space mapping, receiving mode, and to-be-received data volume and other information, for node configuration and query; among them, the node receiving end can be understood as the node receiving message, and the node receiving end register can be understood as the register corresponding to the node receiving end, used to store the node space mapping, receiving mode, and to-be-received data volume and other information related to the node receiving end register.

[0117]

[0123] 2, After receiving the message of the CXL protocol processing module, cache and initiate a read request to the channel distribution scheduling module;

[0118]

[0124] 3, After waiting for the channel distribution scheduling module to receive the request, release the corresponding cache space;

[0119]

[0125] 4, After receiving the data sending request of the channel distribution scheduling module, read the configuration information and judge the receiving mode.

[0120]

[0126] When the receiving mode is the mem polling mode, the data packet is discarded; when the receiving mode is the mem interrupt mode, interrupt information is generated according to the configuration and transmitted to the CXL protocol processing module; when the receiving mode is the cache polling mode, the data is transmitted to the CXL protocol processing module according to the address mapping, and space release information is returned; when the receiving mode is the cache interrupt mode, the data is first transmitted to the CXL protocol processing module according to the address mapping, then interrupt information is generated according to the configuration and transmitted to the CXL protocol processing module, and then space release information is returned.

[0121]

[0127] The channel distribution scheduling module can implement the following functions:

[0122]

[0128] Specifically, the main functions of the sending processing are:

[0123]

[0129] K receives the connection establishment request of each node sending processing module and performs arbitration; it should be noted that the arbitration can be understood as RR, WRR, or the arbitration strategy that adopts the priority of the node.

[0124]

[0130] 2. According to the available conditions of each channel (transmission channel), the corresponding channel is allocated to the node;

[0125]

[0131] 3. The ID information in the node receiving end register is queried, the address consistent with the ID information in the request is found, and the connection is established;

[0126]

[0132] 4. The data write request of each node sending processing module is received, arbitration is performed, and the corresponding channel cache management module is transmitted.

[0127]

[0133] Specifically, the main functions of the receiving processing are:

[0128]

[0134] K receives the read request of each node receiving processing module, performs arbitration, and then transmits the read request to the corresponding channel cache management module;

[0129]

[0135] 2. After receiving the read data returned by each channel cache management module, the read data is returned to the corresponding node receiving processing module;

[0130]

[0136] 3. After receiving the write data request of each channel cache management module, arbitration is performed, and the corresponding node receiving processing module is transmitted.

[0137] The channel cache management module can implement the following functions:

[0131]

[0138] It should be noted that the MEC hardware supports multiple channels, and each channel has a corresponding channel cache management module, which includes a priority distribution module, a priority cache module and a priority arbitration module; the main functions are:

[0132]

[0139] K maintains channel attributes, priority information and state registers for node configuration and query;

[0133]

[0140] 2. For each priority, a cache space (i.e. priority cache module) is maintained for parallel processing of message data of each priority;

[0134]

[0141] 3. The priority distribution module is used to update the data of the corresponding priority cache space after receiving the data write request of the channel distribution scheduling module;

[0135]

[0142] 4. The priority arbitration module is used to arbitrate different priorities when the priority cache space is not empty, and then initiate a data sending request to the node receiving end;

[0136]

[0143] 5. After receiving the data read request of the channel distribution scheduling module, return the data of the corresponding address.

[0137]

[0144] Based on the MEC hardware composed of the CXL protocol processing module, the node sending processing module, the node receiving processing module, the channel distribution scheduling module and the channel cache management module, the processing process flow of the data transmission method specifically includes the following steps:

[0138]

[0145] Step 502: Initialize each node.

[0139]

[0146] Specifically, initializing each node mainly includes: configuring the receiving end information and the sending end information (such as ID number, priority, address mapping, receiving mode, etc.) of each node to the MEC hardware; wherein the receiving end is the above-mentioned node receiving end, and the sending end is the above-mentioned node sending end.

[0140]

[0147] Step 504: The sending end initiates a channel request, the MEC hardware schedules and occupies the cache channel, and at the same time finds the corresponding receiving end ID to establish a connection path.

[0141]

[0148] Step 506: The sending end queries the available sending space size and sends data with priority to the MEC hardware.

[0142]

[0149] Step 508: After the MEC hardware receives the data, the data is cached to the corresponding cache channel according to the priority information.

[0143]

[0150] Step 510: If the cache space is not empty, the MEC hardware performs arbitration between different priorities.

[0144]

[0151] Step 512: The MEC hardware determines the data transmission mode according to the mode configuration of the receiving end.

[0145]

[0152] Specifically, when the receiving mode is the mem polling mode, no additional processing is performed, and the receiving node actively reads the corresponding data; when the receiving mode is the mem interrupt mode, interrupt information is generated and transmitted to the CXL protocol processing module, and then the receiving node reads the corresponding data; when the receiving mode is the cache polling mode, the data is sent to the CXL protocol processing module, and then sent to the memory space of the corresponding node; when the receiving mode is the cache interrupt mode, the data is first sent to the CXL protocol processing module, and then sent to the memory space of the corresponding node, and then interrupt information is generated according to the configuration and transmitted to the receiving node.

[0146]

[0153] Step 514: If it is an interrupt mode, the receiving end waits for the interrupt of the MEC hardware, and reads the data from the local or MEC hardware according to the receiving mode; otherwise, it keeps reading until valid data is read.

[0147]

[0154] Step 516: After the transmission is completed, the sending end can configure the register in the MEC hardware, and discard the corresponding transmission channel.

[0148]

[0155] Based on the above steps, the data transmission method in one or more embodiments of the present disclosure provides a CXL-based low-latency message communication scheme between nodes with priority. The scheme considers that the CXL interconnection itself has the characteristics of 0 packet loss, so for nodes with a relatively short physical distance, the CXL interconnection is used to replace the network interconnection, thereby supporting low-latency message communication between nodes with priority. Therefore, the scheme supports using CXL to replace RDMA to transmit data with different priorities, so that the software does not need to perform multi-level network packet packaging operations, and the hardware does not need to frequently trigger retransmission due to packet loss, and the latency can be reduced from the us level to the 500ns level. For nodes with a relatively short physical distance, the CXL interconnection is used to replace the network interconnection, and 0 packet loss and low-latency message communication with priority are realized.

[0149]

[0156] It should be noted that the MEC hardware can support point-to-point low-latency communication of multiple nodes, including but not limited to one of the use cases in FIG. 7, which is a schematic diagram of one application of MEC hardware in a data transmission method according to an embodiment of the present disclosure. As can be seen from FIG. 7, the MEC hardware can be used as a stand-alone hardware device, which is combined with a CXL IP to realize low-latency message communication with priority among multiple nodes.

[0150]

[0157] In addition, FIG. 8 is another schematic diagram of one application of MEC hardware in a data transmission method according to an embodiment of the present disclosure. As can be seen from FIG. 8, the MEC hardware can be used as a component in a communication device to support low-latency communication among multiple nodes. For example, the communication device can be a switch, a CXL switch, etc. Taking the CXL switch as an example, the CXL switch can be connected to multiple shared memories, storage devices, and accelerators.

[0151]

[0158] Corresponding to the above method embodiments, the present disclosure also provides data transmission device embodiments. FIG. 9 shows a structural schematic diagram of a data transmission device according to an embodiment of the present disclosure. As shown in FIG. 9, the device includes: a request processing module 902 configured to receive a data transmission request sent by a first node to a second node, wherein the data transmission request is a request to be sent by the first node to the second node, and the data transmission request carries to-be-transmitted data and a second node identifier of the second node; a channel management module 904 configured to determine a data transmission channel between the first node and the second node and a plurality of data storage units corresponding to the data transmission channel based on the second node identifier; a data storage module 906 configured to determine a target data storage unit corresponding to the to-be-transmitted data based on a data priority of the to-be-transmitted data and a unit priority of each data storage unit, and store the to-be-transmitted data in the target data storage unit; and a data sending module 908 configured to transmit the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel.

[0152]

[0159] Optionally, the data storage module 906 is further configured to: determine the data priority of the to-be-transmitted data and determine the unit priority of each data storage unit; and determine, as the target data storage unit, a data storage unit with the same unit priority as the data priority of the to-be-transmitted data.

[0153]

[0160] Optionally, the data storage module 906 is further configured to determine the data priority of the data transmission request as the data priority of the to-be-transmitted data, or determine the data priority included in the to-be-transmitted data, or determine data attribute information corresponding to the to-be-transmitted data, and perform priority evaluation on the to-be-transmitted data based on the data attribute information to obtain the data priority of the to-be-transmitted data.

[0154]

[0161] Optionally, the data sending module 908 is further configured to determine a to-be-transmitted data storage unit from the plurality of data storage units based on the unit priority of each data storage unit in the plurality of data storage units, and in a case where the to-be-transmitted data storage unit is determined as the target data storage unit, transmit the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel.

[0155]

[0162] Optionally, the data sending module 908 is further configured to determine a to-be-scheduled data storage unit and a unit priority of the to-be-scheduled data storage unit from the plurality of data storage units, and determine the to-be-scheduled data storage unit corresponding to the maximum unit priority in the unit priority as the to-be-transmitted data storage unit, wherein the to-be-scheduled data storage unit is a non-empty data storage unit in the plurality of data storage units; or sort the plurality of data storage units based on the unit priority to obtain a data storage unit sequence, and sequentially determine each data storage unit as the to-be-transmitted data storage unit according to the data storage unit sequence; or sort the plurality of data storage units based on the unit priority to obtain a data storage unit sequence, and determine the to-be-transmitted data storage unit from each data storage unit according to the data storage unit sequence and a preset weight parameter of each data storage unit.

[0156]

[0163] Optionally, the data sending module 908 is further configured to determine a data receiving strategy corresponding to the second node, and transmit the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel based on the data receiving strategy.

[0157]

[0164] Optionally, the data transmission device further comprises a second data receiving module and a second data transmission module corresponding to the second node; the data sending module 908 is further configured to: determine the second data receiving module corresponding to the second node, store the to-be-transmitted data in the target data storage unit, and transmit the to-be-transmitted data to the second data receiving module through the data transmission channel; based on the data receiving strategy, send the to-be-transmitted data to the second data transmission module corresponding to the second node by using the second data receiving module; and send the to-be-transmitted data to the second node by using the second data transmission module.

[0158]

[0165] Optionally, the second data receiving module is configured to: in a case where it is determined that the data receiving strategy is the in-memory interrupt strategy, determine in-memory interrupt information based on the to-be-transmitted data, and send the in-memory interrupt information to the second data transmission module corresponding to the second node; or in a case where it is determined that the data receiving strategy is the cache polling strategy, send the to-be-transmitted data to the second data transmission module corresponding to the second node by means of address mapping; or in a case where it is determined that the data receiving strategy is the cache interrupt strategy, send the to-be-transmitted data and cache interrupt information determined based on the to-be-transmitted data to the second data transmission module corresponding to the second node by means of address mapping.

[0159]

[0166] Optionally, the channel management module 904 is further configured to: receive a channel establishment request sent by the first node, wherein the channel establishment request carries a first node identifier of the first node and a second node identifier; determine an idle transmission channel from a plurality of transmission channels based on channel states of the plurality of transmission channels, wherein each transmission channel has a plurality of corresponding data storage units; determine a first node address corresponding to the first node based on the first node identifier, and determine a second node address of the second node based on the second node identifier; and based on the first node address, the second node address, and the idle transmission channel, establish a data transmission channel between the first node and the second node.

[0160]

[0167] Optionally, the request processing module 902 is further configured to: receive, by the first data transmission module corresponding to the first node, the data transmission request sent by the second node to the first node; the channel management module 904 is further configured to: parse, by the first data transmission module, the to-be-transmitted data in the data transmission request and the second node identifier of the second node, and send the to-be-transmitted data and the second node identifier obtained by parsing to the first data sending module corresponding to the first node; send, by the first data sending module, the to-be-transmitted data and the second node identifier to the channel management module; and determine, by the channel management module, a data transmission channel between the first node and the second node from a plurality of transmission channels based on the second node identifier, and determine a plurality of data storage modules corresponding to the data transmission channel.

[0161]

[0168] Optionally, the request processing module 902 is further configured to: receive a data acquisition request sent by the second node to the first node, wherein the data acquisition request carries a to-be-acquired data identifier and a first node identifier of the first node; the channel management module 904 is further configured to determine a data transmission channel between the first node and the second node and a plurality of data storage units corresponding to the data transmission channel based on the first node identifier; the data storage module 906 is further configured to determine a target data storage unit corresponding to the data acquisition request based on a data priority of the data acquisition request and a unit priority of each data storage unit, and store the data acquisition request to the target data storage unit; the data sending module 908 is further configured to transmit the data acquisition request in the target data storage unit to the first node through the data transmission channel; and the request processing module 902 is further configured to: receive a data transmission request for the second node sent by the first node based on the received data acquisition request, wherein the data acquisition request carries the to-be-transmitted data corresponding to the to-be-acquired data identifier and a second node identifier of the second node.

[0162]

[0169] The data transmission device provided by one or more embodiments of the present disclosure can determine a data transmission channel for data transmission between a first node and a second node and a plurality of data storage units corresponding to the data transmission channel in the process of data transmission. Since the data transmission channel is used for data transmission between the first node and the second node, the data transmission efficiency can be ensured, and the characteristics of poor stability and easy packet loss of the network itself are avoided. In addition, based on the data priority of the to-be-transmitted data and the unit priority of each data storage unit, a target data storage unit corresponding to the to-be-transmitted data is determined from each data storage unit, and then the to-be-transmitted data in the target data storage unit is transmitted to the second node through the data transmission channel, so that the to-be-transmitted data with a higher priority is transmitted in a targeted manner according to different priorities, and efficient data transmission between the first node and the second node is realized, thereby solving the problem of low data transmission efficiency between different nodes.

[0170] The data transmission device is described as a schematic scheme of the embodiment. It should be noted that the technical scheme of the data transmission device belongs to the same concept as the technical scheme of the data transmission method described above, and the details of the technical scheme of the data transmission device that are not described in detail can be referred to the description of the technical scheme of the data transmission method.

[0163]

[0171] Corresponding to the method embodiments described above, the present disclosure also provides a data transmission system embodiment, which includes a data transmission device, a first node and a second node. The first node is configured to send a data transmission request for the second node to the data transmission device. The data transmission request is a request to be sent by the first node to the second node, and the data transmission request carries to-be-transmitted data and a second node identifier of the second node. The data transmission device is configured to receive the data transmission request sent by the first node for the second node, determine a data transmission channel between the first node and the second node and a plurality of data storage units corresponding to the data transmission channel based on the second node identifier, determine a target data storage unit corresponding to the to-be-transmitted data based on the data priority of the to-be-transmitted data and the unit priority of each data storage unit, store the to-be-transmitted data in the target data storage unit, and transmit the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel. The second node is configured to receive the to-be-transmitted data.

[0164]

[0172] The data transmission system provided by one or more embodiments of the present disclosure can determine a data transmission channel for data transmission between a first node and a second node and determine a plurality of data storage units corresponding to the data transmission channel in the process of data transmission between the first node and the second node by using a data transmission device. Since the data transmission channel is dedicated to data transmission between the first node and the second node, the data transmission efficiency can be ensured, and the characteristics of poor stability and easy packet loss of the network itself can be avoided. In addition, the target data storage unit corresponding to the to-be-transmitted data is determined from each data storage unit based on the data priority of the to-be-transmitted data and the unit priority of each data storage unit, and then the to-be-transmitted data in the target data storage unit is transmitted to the second node through the data transmission channel. Thus, the to-be-transmitted data with a higher priority can be transmitted first according to different priorities, and efficient data transmission between the first node and the second node is realized, thereby solving the problem of low data transmission efficiency between different nodes.

[0165]

[0173] The above is a schematic scheme of the data transmission system of the present embodiment. It should be noted that the technical scheme of the data transmission system belongs to the same concept as the technical scheme of the data transmission method described above, and the details of the technical scheme of the data transmission system that are not described in detail can be referred to the description of the technical scheme of the data transmission method.

[0166]

[0174] FIG. 10 shows a structural block diagram of a computing device 1000 according to one embodiment of the present disclosure. The components of the computing device 1000 include but are not limited to a memory 1010 and a processor 1020. The processor 1020 is connected to the memory 1010 through a bus 1030, and a database 1050 is used to save data.

[0167]

[0175] The computing device 1000 also includes an access device 1040 that enables the computing device 1000 to communicate via one or more networks 1060. Examples of such networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or combinations of such networks, such as the Internet. The access device 1040 can include one or more of any type of network interface (for example, a network interface card (NIC)) such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a Worldwide Interoperability for Microwave Access (WiMAX) interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth interface, a Near Field Communication (NFC) interface, and so forth.

[0168]

[0176] In one embodiment of the disclosure, the above-described components of the computing device 1000, as well as other components not shown in FIG. 10, can also be connected to each other by a bus, for example. It should be understood that the structure block diagram of the computing device shown in FIG. 10 is merely for the purpose of example, and is not a limitation on the scope of the disclosure. Those skilled in the art can add or replace other components as needed.

[0169]

[0177] The computing device 1000 can be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (for example, a tablet computer, a personal digital assistant, a laptop computer, a notebook computer, a netbook, and so forth), a mobile phone (for example, a smartphone), a wearable computing device (for example, a smartwatch, smartglasses, and so forth), or other type of mobile device, or a stationary computing device such as a desktop computer or a personal computer (PC). The computing device 1000 can also be a mobile or stationary server.

[0170]

[0178] The processor 1020 is configured to execute the computer program / instructions, and realize the steps of the data transmission method.

[0171]

[0179] The embodiments in the present disclosure are described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other. Each embodiment mainly describes the difference from other embodiments. In particular, the computing device embodiment is described simply, and the relevant part can be referred to the description of the data transmission method embodiment.

[0172]

[0180] An embodiment of the present disclosure further provides a computer readable storage medium, which stores computer program / instructions, and the computer program / instructions are executed by the processor to realize the steps of the data transmission method.

[0173]

[0181] The embodiments in the present disclosure are described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other. Each embodiment mainly describes the difference from other embodiments. In particular, the computer readable storage medium embodiment is described simply, and the relevant part can be referred to the description of the data transmission method embodiment.

[0174]

[0182] An embodiment of the present disclosure further provides a computer program product, which includes computer program / instructions, and the computer program / instructions are executed by the processor to realize the steps of the data transmission method.

[0175]

[0183] The above is a schematic scheme of the computer program product of the embodiment. It should be noted that the technical scheme of the computer program product and the technical scheme of the data transmission method belong to the same concept, and the details of the technical scheme of the computer program product which are not described in detail can be referred to the description of the technical scheme of the data transmission method.

[0176]

[0184] The specific embodiments of the present disclosure are described above. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims can be performed in a different order and still achieve desirable results. Also, the process depicted in the figures does not necessarily require the particular order shown or sequential order to achieve desirable results. In certain implementations, multitasking and parallel processing can be advantageous.

[0177]

[0185] The computer readable medium can include any entity or apparatus capable of carrying the computer program code, recording medium, U disk, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal, software distribution medium, etc. It should be noted that the computer readable medium can include appropriate additions or subtractions according to the requirements of patent practice. For example, according to the patent practice in some regions, the computer readable medium does not include electric carrier signals and telecommunication signals.

[0178]

[0186] It should be noted that, for the foregoing method embodiments, in order to facilitate description, each is described as a combination of a series of actions, but those skilled in the art should know that the disclosed embodiments are not limited to the order of the actions described, because according to the disclosed embodiments, certain steps can be performed in other orders or at the same time. In addition, those skilled in the art should know that the embodiments described in the specification all belong to preferred embodiments, and the actions and modules involved are not necessarily required by the disclosed embodiments.

[0179]

[0187] In the above embodiments, the description of each embodiment has its own focus, and the parts not described in detail in a certain embodiment can be referred to the related description of other embodiments.

[0180]

[0188] The preferred embodiments of the present disclosure disclosed above are only used to help explain the present disclosure. The alternative embodiments do not describe all the details and limit the invention to the specific embodiments described. Obviously, according to the content of the disclosed embodiments, many modifications and changes can be made. The present disclosure selects and specifically describes these embodiments in order to better explain the principles and practical applications of the disclosed embodiments, so that those skilled in the art can well understand and use the present disclosure. The present disclosure is limited only by the claims and their full scope and equivalents.

Claims

CLAIM 1. A method of data transmission, comprising: receiving a data transmission request sent by a first node for a second node, wherein the data transmission request is a request to be sent by the first node to the second node, and the data transmission request carries to-be-transmitted data and a second node identifier of the second node; determining a data transmission channel between the first node and the second node and a plurality of data storage units corresponding to the data transmission channel based on the second node identifier; determining a target data storage unit corresponding to the to-be-transmitted data based on a data priority of the to-be-transmitted data and a unit priority of each data storage unit, and storing the to-be-transmitted data into the target data storage unit; and transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel. 2.The data transmission method of claim 1, wherein the target data storage unit corresponding to the data to be transmitted is determined based on a data priority of the data to be transmitted and a unit priority of each data storage unit. determining the data priority of the to-be-transmitted data and determining the unit priority of each data storage unit; determining a data storage unit with the same unit priority as the data priority of the to-be-transmitted data as the target data storage unit.

3. The data transmission method of claim 2, wherein the determining the data priority of the data to be transmitted comprises: determining the request priority of the data transmission request as the data priority of the to-be-transmitted data; or determining the data priority included in the to-be-transmitted data; or determining data attribute information corresponding to the to-be-transmitted data, and performing priority evaluation on the to-be-transmitted data based on the data attribute information to obtain the data priority of the to-be-transmitted data.

4. The data transmission method of claim 1, wherein the transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel comprises: determining a to-be-transmitted data storage unit from each data storage unit in the plurality of data storage units based on the unit priority of each data storage unit in the plurality of data storage units; in a case where the to-be-transmitted data storage unit is determined as the target data storage unit, transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel. 5.The data transmission method of claim 4, wherein the determining the data storage unit to be transmitted from the data storage units based on the unit priority of each data storage unit of the plurality of data storage units comprises: determining a to-be-scheduled data storage unit and a unit priority of the to-be-scheduled data storage unit from the plurality of data storage units, and determining the to-be-scheduled data storage unit corresponding to the maximum unit priority in the unit priority as the to-be-transmitted data storage unit, wherein the to-be-scheduled data storage unit is a non-empty data storage unit in the plurality of data storage units; or sorting the plurality of data storage units based on the unit priority to obtain a data storage unit sequence, and sequentially determining each data storage unit as the to-be-transmitted data storage unit according to the data storage unit sequence; or sorting the plurality of data storage units based on the unit priority to obtain a data storage unit sequence, and determining the to-be-transmitted data storage unit from each data storage unit according to the data storage unit sequence and a preset weight parameter of each data storage unit.

6. The data transmission method according to any one of claims 1 or 5, wherein the step of transmitting the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel comprises: determining a data reception strategy corresponding to the second node; Based on the data receiving strategy, the to-be-transmitted data in the target data storage unit is transmitted to the second node through the data transmission channel.

7. The data transmission method of claim 6, wherein based on the data receiving strategy, the to-be-transmitted data in the target data storage unit is transmitted to the second node through the data transmission channel, comprising: determining a second data receiving module corresponding to the second node, and transmitting the to-be-transmitted data in the target data storage unit to the second data receiving module through the data transmission channel; based on the data receiving strategy, using the second data receiving module to send the to-be-transmitted data to a second data transmission module corresponding to the second node; using the second data transmission module to send the to-be-transmitted data to the second node. 8.The data transmission method of claim 7, wherein based on the data receiving strategy, the to-be-transmitted data is sent to a second data transmission module corresponding to the second node, and the sending comprises: In a case where the data receiving strategy is determined to be the memory interrupt strategy, memory interrupt information is determined based on the to-be-transmitted data, and the memory interrupt information is sent to the second data transmission module corresponding to the second node; or in a case where the data receiving strategy is determined to be the cache polling strategy, the to-be-transmitted data is sent to the second data transmission module corresponding to the second node through address mapping; or in a case where the data receiving strategy is determined to be the cache interrupt strategy, the to-be-transmitted data and cache interrupt information determined based on the to-be-transmitted data are sent to the second data transmission module corresponding to the second node through address mapping. 9.The data transmission method of claim 1, before the determining the data transmission channel between the first node and the second node based on the second node identifier and the plurality of data storage units corresponding to the data transmission channel, further comprising: receiving a channel establishment request sent by the first node, wherein the channel establishment request carries a first node identifier of the first node and the second node identifier; determining an idle transmission channel from a plurality of transmission channels based on channel states of the plurality of transmission channels, wherein each transmission channel has a plurality of corresponding data storage units; determining a first node address corresponding to the first node based on the first node identifier, and determining a second node address of the second node based on the second node identifier; and establishing a data transmission channel between the first node and the second node based on the first node address, the second node address, and the idle transmission channel.

10. The data transmission method of claim 1, wherein the receiving the data transmission request sent by the second node comprises: receiving, by using a first data transmission module corresponding to the first node, the data transmission request sent by the first node for the second node; The determining, based on the second node identifier, of the data transmission channel between the first node and the second node and the plurality of data storage modules corresponding to the data transmission channel comprises: parsing, by the first data transmission module, the to-be-transmitted data in the data transmission request and the second node identifier of the second node, and sending the to-be-transmitted data and the second node identifier obtained by the parsing to the first data sending module corresponding to the first node; sending, by the first data sending module, the to-be-transmitted data and the second node identifier to the channel management module; determining, by the channel management module, the data transmission channel between the first node and the second node from a plurality of transmission channels based on the second node identifier, and determining the plurality of data storage modules corresponding to the data transmission channel.

11. The data transmission method of claim 1, before the receiving the data transmission request sent by the second node, further comprising: The data acquisition request sent by the second node to the first node is received, wherein the data acquisition request carries a to-be-acquired data identifier and a first node identifier of the first node. 19 Based on the first node identifier, the data transmission channel between the first node and the second node is determined, and the plurality of data storage units corresponding to the data transmission channel are determined; based on the data priority of the data acquisition request and the unit priority of each data storage unit, the target data storage unit corresponding to the data acquisition request is determined, and the data acquisition request is stored to the target data storage unit; the data acquisition request in the target data storage unit is transmitted to the first node through the data transmission channel; the receiving of the data transmission request sent by the first node to the second node comprises: receiving the data transmission request sent by the first node to the second node based on the received data acquisition request, wherein the data acquisition request carries the to-be-transmitted data corresponding to the to-be-acquired data identifier and the second node identifier of the second node.

12. The data transmission method of claim 1, wherein the receiving the data transmission request sent by the second node for the first node comprises: The data transmission request sent by the first node to the second node is received by the request processing module. The determining, based on the second node identifier, the data transmission channel between the first node and the second node and the plurality of data storage units corresponding to the data transmission channel comprises: determining, by the channel management module, based on the second node identifier, the data transmission channel between the first node and the second node and the plurality of data storage units corresponding to the data transmission channel; the determining, based on the second node identifier, the data transmission channel between the first node and the second node and the plurality of data storage units corresponding to the data transmission channel comprises: determining, by the data storage module, based on the second node identifier, the data transmission channel between the first node and the second node and the plurality of data storage units corresponding to the data transmission channel; the transmitting, by the data transmission channel, the to-be-transmitted data in the target data storage unit to the second node comprises: transmitting, by the data sending module, the to-be-transmitted data in the target data storage unit to the second node by the data transmission channel.

13. A data transmission device, comprising: The request processing module is configured to receive a data transmission request sent by a first node to a second node, wherein the data transmission request is a request of the first node to be sent to the second node, and the data transmission request carries to-be-transmitted data and a second node identifier of the second node; the channel management module is configured to determine, based on the second node identifier, a data transmission channel between the first node and the second node and a plurality of data storage units corresponding to the data transmission channel; the data storage module is configured to determine a target data storage unit corresponding to the to-be-transmitted data based on a data priority of the to-be-transmitted data and a unit priority of each data storage unit, and store the to-be-transmitted data in the target data storage unit; and the data sending module is configured to transmit the to-be-transmitted data in the target data storage unit to the second node by the data transmission channel.

14. The data transmission device according to claim 13, wherein the data sending module is further configured to: determine a to-be-transmitted data storage unit from the plurality of data storage units based on a unit priority of each data storage unit; and in a case where the to-be-transmitted data storage unit is determined to be the target data storage unit, transmit the to-be-transmitted data in the target data storage unit to the second node by the data transmission channel.

15. The data transmission device according to any one of claims 13 to 14, wherein the data sending module is further configured to: determine a second data receiving module corresponding to the second node, and transmit the to-be-transmitted data in the target data storage unit to the second data receiving module by the data transmission channel.

20. Utilize the second data receiving module to send the to-be-transmitted data to the second node.

16. A data transmission system, the system comprising a data transmission device, a first node and a second node, wherein, The first node is configured to send a data transmission request for the second node to the data transmission device, wherein the data transmission request is a request to be sent by the first node to the second node, and the data transmission request carries to-be-transmitted data and a second node identifier of the second node; the data transmission device is configured to receive the data transmission request sent by the first node for the second node, determine a data transmission channel between the first node and the second node and a plurality of data storage units corresponding to the data transmission channel based on the second node identifier, determine a target data storage unit corresponding to the to-be-transmitted data based on a data priority of the to-be-transmitted data and a unit priority of each data storage unit, store the to-be-transmitted data into the target data storage unit, and transmit the to-be-transmitted data in the target data storage unit to the second node through the data transmission channel; and the second node is configured to receive the to-be-transmitted data.

17. A computing device comprising: a memory and a processor; The memory is configured to store a computer program / instruction, and the processor is configured to execute the computer program / instruction, so as to realize the steps of the data transmission method in any one of claims 1 to 12.

18. A computer readable storage medium, which stores a computer program / instruction, and the computer program / instruction realizes the steps of the data transmission method in any one of claims 1 to 12 when executed by a processor.

19. A computer program product, which comprises a computer program / instruction, and the computer program / instruction realizes the steps of the data transmission method in any one of claims 1 to 12 when executed by a processor.

Citation Information

Patent Citations

  • Data transmission method, device and equipment and readable storage medium

    CN112491963A

  • Data transmission method and system

    CN112751772A