Memory object transmission method and system, node, computer program product and storage medium

By extending the semantics of the communication protocol and optimizing the interaction between the network interface card (NIC) device and the processing unit using subscription requests and request responses, the problem of CPU performance disturbance is solved, and efficient memory object transfer is achieved.

WO2026051701A1PCT designated stage Publication Date: 2026-03-12CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD +1
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-08-12
Publication Date
2026-03-12

AI Technical Summary

Technical Problem

In distributed computing, the excessive number of interactions between the CPU and network interface card during inter-process memory object transfers can severely disrupt CPU performance and affect transmission latency.

Method used

By extending the semantics of the communication protocol and adopting new semantics for subscription requests and request responses, the interaction logic between the network interface card (NIC) device and the processing unit is optimized, the number of interactions is reduced, and subscription-based memory object transmission is achieved.

Benefits of technology

It effectively reduces the latency of memory object transfer, reduces the processing pressure on processing units, and improves transfer efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025114237_12032026_PF_FP_ABST
    Figure CN2025114237_12032026_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a memory object transmission method and system, a node, a computer program product, and a storage medium. Semantics in a communication protocol between a processing unit and a network interface card device are extended, so as to optimize interaction logic between the network interface card device and the processing unit during memory object transmission. On this basis, simplified interaction can be carried out between the network interface card device and the processing unit on the basis of new semantics such as a subscription request and a request response, so as to realize transmission of a memory object in a subscription-based manner. In this way, the transmission problem of the memory object is converted into a state monitoring problem of the memory object, and a monitoring result can be transmitted between the processing unit and the network interface card device by means of the request response. Therefore, the processing unit and the network interface card device no longer need to perform complex interaction on the basis of conventional basic semantics such as receiving / sending. Accordingly, the transmission delay of the memory object can be effectively reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Memory object transmission method, node, system, computer program product and storage medium TECHNICAL FIELD

[0001] The present application relates to the technical field of cloud computing, and particularly relates to a memory object transmission method, a node, a system, a computer program product and a storage medium. BACKGROUND

[0002] In technical scenarios such as distributed computing, inter-process communication often occurs. Since different processes run in different address spaces and different processes cannot directly access each other's address spaces, the transmission of memory objects between different processes is often involved.

[0003] The network card device assembled on the computing node where the process is located needs to participate in the transmission process of the memory object. Moreover, in order to realize the transmission of the memory object, the number of interactions required between the central processing unit (CPU) and the network card device on the computing node where the process is located is considerable, which brings excessive disturbance to the CPU, affects the CPU performance, and causes the transmission delay of the memory object to be too high. SUMMARY

[0004] Aspects of the present application provide a memory object transmission method, a node, a system, a computer program product and a storage medium to reduce the transmission delay of the memory object.

[0005] The embodiment of the present application provides a memory object transmission method, which is suitable for a first network card device, the first network card device is assembled on a first node, and a first processing unit is also assembled on the first node. The method comprises the following steps:

[0006] sending a subscription request for a target memory object to the first processing unit, the subscription request being used to request to listen to the ready state of the target memory object, and the target memory object being any memory object that needs to be transmitted;

[0007] determining a second node after receiving a request response sent by the first processing unit for the subscription request, the request response being sent by the first processing unit after listening to the ready state of the target memory object as ready;

[0008] transmitting the target memory object to the second node.

[0009] The embodiment of the present application also provides a memory object transmission method, which is suitable for a second network card device, the second network card device is assembled on a second node, and a second processing unit is also assembled on the second node. The method comprises the following steps:

[0010] receiving a pre-fetch request sent by the second processing unit, the pre-fetch request being used to indicate to obtain the target memory object from the first node;

[0011] forwarding the pre-fetch request to the first node to trigger the first node to return the target memory object after the first node listens to the ready state of the target memory object and finds that the target memory object is ready;

[0012] writing the received target memory object into a memory reserved space set by the second processing unit for the pre-fetch request.

[0013] Embodiments of the present application further provide a memory object transmission system, comprising a first node and a second node, the first node being equipped with a first network device and a first processing unit, and the second node being equipped with a second network device and a second processing unit; the first network device and the second network device are set to perform the memory object transmission method as described above to transmit the target memory object between the first node and the second node.

[0014] Embodiments of the present application further provide a node, comprising a processing unit and a network card device;

[0015] the network card device is set to interact with the processing unit according to the memory object transmission method as described above to perform the memory object transmission.

[0016] Embodiments of the present application further provide a computer readable storage medium storing a computer program, when the computer program is executed by one or more processors, the one or more processors are caused to perform the memory object transmission method as described above.

[0017] Embodiments of the present application further provide a computer program product, comprising a computer program, when the computer program is executed by one or more processors, the one or more processors are caused to perform the memory object transmission method as described above.

[0018] In the embodiments of the present application, semantics in a communication protocol between a processing unit and a network card device are extended to optimize the interaction logic between the network card device and the processing unit in the process of memory object transmission. Based on this, the network card device and the processing unit can perform simplified interaction according to new semantics such as subscription request and request response, and realize the transmission of the memory object by subscription. In this way, the transmission of the memory object is converted into the problem of monitoring the state of the memory object, and the processing unit and the network card device can deliver the monitoring result through request response, so that the processing unit and the network card device no longer need to perform complex interaction according to traditional basic semantics such as receive / send. Accordingly, on the one hand, this can effectively reduce the number of interactions between the network card device and the processing unit in the process of memory object transmission, thereby reducing the number of times that the processing unit receives an interrupt signal, i.e., reducing the disturbance to the processing unit, and further more efficiently completing the memory object transmission and effectively reducing the transmission delay of the memory object. On the other hand, based on the behavior rules indicated by the new semantics, the control plane work related to the second node that needs to be responded to in the process of memory object transmission can be offloaded to the network card device, which can effectively reduce the processing pressure of the processing unit, thereby further reducing the transmission delay of the memory object. BRIEF DESCRIPTION OF DRAWINGS

[0019] The accompanying drawings, which are included to provide a further understanding of the present application, form a part of the present application and illustrate the illustrative embodiments of the present application and together with the description serve to explain the present application. In the drawings:

[0020] FIG. 1 provides a conventional memory object transmission scheme;

[0021] FIG. 2 is a flowchart of a memory object transmission method provided by an illustrative embodiment of the present application;

[0022] FIG. 3a is a schematic diagram of the interaction logic between a network device and a processing unit on a first node provided by an illustrative embodiment of the present application;

[0023] FIG. 3b is a schematic diagram of a work task processing mechanism on a first processing unit provided by an illustrative embodiment of the present application;

[0024] FIG. 4 is a schematic diagram of an optional implementation provided by an illustrative embodiment of the present application;

[0025] FIG. 5 is a schematic diagram of another optional implementation provided by an illustrative embodiment of the present application;

[0026] FIG. 6 is a schematic diagram of an optional transmission mode provided by an illustrative embodiment of the present application;

[0027] Figure 7 is a flow diagram of a memory object transmission method according to another example embodiment of the present application;

[0028] Figure 8 is a diagram of interaction logic between a network device and a processing unit on a second node according to another example embodiment of the present application;

[0029] Figure 9 is a diagram of interaction logic in a case where serialization is required before transmission according to another example embodiment of the present application;

[0030] Figure 10 is a diagram of a memory transmission system according to yet another example embodiment of the present application;

[0031] Figure 11 is a diagram of a node according to yet another example embodiment of the present application. DETAILED DESCRIPTION

[0032] In order to make the objects, technical solutions and advantages of the present application clearer, the technical solutions of the present application will be described below in detail with reference to the embodiments of the present application and the corresponding drawings. Obviously, the described embodiments are only some of the embodiments of the present application, not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the scope of protection of the present application.

[0033] Before starting to describe the technical solutions provided by the embodiments of the present application in detail, the following will first explain several technical concepts involved in the present application.

[0034] Distributed computing can be understood as a computing mode executed on a distributed system. This computing mode divides a computing task into multiple sub-tasks, then distributes the sub-tasks to multiple computing nodes for processing, and finally integrates the computing results to obtain the final result, thereby improving the computing efficiency and the ability to solve complex problems.

[0035] Inter-process communication can be understood as a process of transmitting or exchanging data between different processes. In technical scenarios such as distributed computing, inter-process communication often occurs, and the processes that need to communicate can be distributed on different computing nodes or on the same computing node. Therefore, inter-process communication includes cross-node communication and non-cross-node communication. Regardless of which inter-process communication, if the processes do not share memory, but different processes run in different address spaces, inter-process communication will involve the transmission of memory objects.

[0036] Memory Object, which can be understood as a data structure stored in memory. The memory object can be any type of memory content, including but not limited to variables, arrays, structures, class instances, and buffers. In technical scenarios such as high-performance computing and distributed systems, a memory object can generally refer to data that needs to be shared or transmitted between computing nodes.

[0037] The inventors found in the research process that the transmission of memory objects mainly depends on software (operating system and network card device driver) in the CPU and the network card device. The network card device and the CPU interact according to a communication protocol, which refers to the rules and agreements that both parties need to follow to complete communication. The communication protocol can include semantics, syntax, and timing elements. Among them, semantics is used to specify the interaction mode of both parties, including the format of requests and responses, specific operations, and the purpose of data transmission. At present, the communication protocol between the network card device and the CPU usually adopts traditional basic semantics such as receive / send. For this type of communication task of memory object transmission, multiple rounds of combination of these basic semantics are needed to form the complete semantics of memory object transmission. Therefore, the network card device and the CPU need to interact according to this complex combined semantics to complete the transmission of memory objects, which leads to the phenomenon mentioned in the background art: the number of interactions between the network card device and the CPU is considerable during the transmission of memory objects.

[0038] Figure 1 provides an existing memory object transmission scheme. Referring to Figure 1, two processes are distributed on different computing nodes. For ease of distinction and description, the node where the process providing the memory object is located is marked as node 1 in Figure 1. The node where the process that needs to obtain the memory object is located is marked as node 2. The network card device installed on node 1 is marked as network card device 1, and the network card device installed on node 2 is marked as network card device 2.

[0039] Referring to FIG. 1, taking an example that the CPU and the network card device interact according to the two basic semantics of receive and send, the CPU on both nodes needs to first transmit a receive request receive to the associated network card device to make a receiving preparation. Then, the CPU on node 2 can transmit a send request send to the network card device 2, the send is used to carry the acquisition demand of the memory object of node 2, the network card device 2 forwards the send to the network card device 1, and the network card device 1 transmits the send to the CPU of node 1, and the CPU of node 1 needs to transmit a send completion notification send ACK for the send, and the send ACK is transmitted to the CPU of node 2 after being forwarded by the network card device 1 and the network card device 2. Then, the CPU of node 2 continues to transmit a receive completion notification receive ACK for the send ACK, and the receive ACK is transmitted to the CPU of node 1 after being forwarded by the network card device 2 and the network card device 1. At this time, after several rounds of interaction, the acquisition demand of the memory object of node 2 is transmitted to the CPU of node 1, that is, the transmission phase of the acquisition demand is completed.

[0040] After the CPU of node 1 obtains the acquisition demand, the CPU of node 1 needs to transmit a send request send to the network card device 1 after the memory object required by node 2 is ready. Referring to FIG. 1, several rounds of request and completion notification (including send completion notification and receive completion notification) based on the semantics of receive and send are needed between the CPU and the network card device on both nodes, so as to transmit the memory object to node 2.

[0041] Referring to FIG. 1, it can be clearly understood that in the transmission phase of the memory object, the CPU and the network card device on both nodes need to interact according to these basic semantics, and the number of interactions will be as many as dozens of times. The inventor found in the research process that the interaction between the network card device and the CPU also depends on the interrupt mechanism: after receiving the network signal (for example, the request or response sent by the opposite network card device in FIG. 1), the network card device will actively send an interrupt signal to the CPU, and the CPU needs to stop the ongoing calculation immediately after receiving the interrupt signal, so as to analyze and process the interrupt signal. The interrupt mechanism can ensure effective communication between the network card device and the CPU, and ensure that the computing node can respond and process network events in time when communicating on the network. Referring to FIG. 1, in the transmission process of the memory object, since the number of interactions between the network card device and the CPU is large, the number of interrupt signals sent by the network card device to the CPU is also relatively frequent, which causes the CPU to need to process the interrupt signal frequently, which brings too much disturbance to the CPU and affects the processing performance of the CPU. This performance influence leads to a long transmission delay of the memory object.

[0042] In order to improve the transmission latency of the memory object, the inventor has made a series of researches and proposes a new memory object transmission scheme in the present application. In the memory object transmission scheme provided in the present application, the semantics in the aforementioned communication protocol is extended, and a new semantic for memory object transmission is designed. To this end, the program code in the network card device can be modified, and the network card device driver can be modified. After these modifications, the network card device can initiate fewer requests to the processing unit and actively undertake part of the control work according to the redesigned execution logic in the program code. The processing unit can call some new functions provided in the network card device driver (such as a function for issuing a subscription request) when using the network card device driver, so that the processing unit can understand the requests sent by the network card device according to the technical concept of the present embodiment.

[0043] Considering that the memory object transmission process usually needs to involve two ends: the request end and the response end, the request end is the end where the process that requests to obtain the memory object is located, and the response end is the end where the process that provides the memory object is located. In order to facilitate distinction and description, in the embodiments of the present application, the response end involved in the memory object transmission process is described as a first node, and the request end is described as a second node. It is worth noting that for a computing node, it can sometimes act as a request end and sometimes act as a response end. In addition, as mentioned earlier, inter-process communication can be cross-node or non-cross-node, so in the case of cross-node, the first node and the second node in the present application can be used to refer to two different computing nodes, and in the case of non-cross-node, the first node and the second node in the present application can be used to refer to the same computing node.

[0044] The network card device in the embodiments of the present application can be any device with network communication capability and computing capability, for example, it can be some cloud infrastructure processing units (CIPUs) integrated with network card modules, smart NICs, and network interface cards (NICs) or other chips or modules.

[0045] The processing unit in the embodiments of the present application can be various devices with computing capability and needing to manage memory objects on the computing node, for example, it can be a central processing unit (CPU), a data processing unit (DPU), and a graphics processing unit (GPU) or other chips or modules.

[0046] The technical solutions provided by the embodiments of the present application are described in detail below with reference to the drawings.

[0047] Fig. 2 is a flow diagram of a memory object transmission method provided by an exemplary embodiment of the present application. The method can be implemented by a first network card device installed on a first node (i.e., a response end). The first node is also installed with a first processing unit. Referring to Fig. 2, the method can include the following steps.

[0048] In step 200, a subscription request for a target memory object is sent to the first processing unit. The subscription request is used to request to listen to the ready state of the target memory object, and the target memory object is any memory object that needs to be transmitted.

[0049] In step 201, after receiving a request response sent by the first processing unit for the subscription request, a second node is determined. The request response is sent by the first processing unit after listening to the ready state of the target memory object.

[0050] In step 202, the target memory object is transmitted to the second node.

[0051] As mentioned above, in the embodiment, the semantics in the communication protocol between the network card device and the processor is extended. The new semantics include the subscription request and the subscription response. The subscription request is used to request to listen to the ready state of the memory object, and the request response is used to indicate that the memory object is ready.

[0052] In the embodiment, for the convenience of description, the target memory object is taken as an example to develop the technical solutions. It should be understood that the target memory object can be any memory object that needs to be transmitted.

[0053] Fig. 3a is an interaction logic diagram between the network device and the processing unit on the first node provided by an exemplary embodiment of the present application. Referring to Figs. 2 and 3a, in step 200, the first network card device can send a subscription request for a target memory object to the first processing unit. In the embodiment, the original communication channel between the first network card device and the first processing unit is not modified. The original communication channel between the first network card device and the first processing unit can be a bus (Peripheral Component Interconnect Express, PCIE) or the like, which is not limited herein and will not be described further.

[0054] Referring to FIG. 3a, after the subscription request is translated by the modified network card device driver in the embodiment, the subscription request can be converted into a work task that can be understood and processed by the first processing unit. The first processing unit can start a work thread for the work task, and the object of interest of the work thread is the target memory object. Since the memory object needs to be transmitted out in the memory object transmission scenario, in the embodiment, the ready event of interest of the work thread can be set as a readable event. It should be noted that in the embodiment, the main role of the converted work task is to add the target memory object to the event listening range of the first processing unit. In actual application, even if the relevant information of the request end is not described in the work task, it is ensured that the work thread corresponding to the work task can call the specified function in the network card device driver in the embodiment after listening to the readable target memory object.

[0055] FIG. 3b is a logic diagram of a work task processing mechanism on the first processing unit provided by an example embodiment of the present application. Referring to FIG. 3b, optionally, for the first processing unit, the work thread corresponding to the subscription request can be added to a queue pair (QP). The queue pair can include two queues: one queue is used to record the work threads to be processed, and the other queue is used to record the event completion on the objects of interest of the work threads. Moreover, the first processing unit is usually provided with an event listening mechanism, such as select, poll or epoll, etc. According to the event listening mechanism, the first processing unit can listen to whether a ready event occurs on the object of interest. If a ready event occurs on the object of interest, the first processing unit can wake up the work thread that is interested in the object.

[0056] Based on the example of the event listening mechanism in FIG. 3b, in the embodiment, for the first processing unit, the object of interest of the work thread corresponding to the subscription request in the QP is the target memory object. The ready event of interest on the target object is the readable event. Based on this, the first processing unit can listen to whether a readable event occurs on the target memory object. After listening to that a readable event occurs on the target memory object, the work thread corresponding to the subscription request can be woken up.

[0057] In addition, in FIG. 3b, if it is detected that the first network card device can send the subscription request to the first processing unit through the original communication channel between the first network card device and the first processing unit, and the target memory object is not ready, the pre-fetch request sent by the node is added to the waiting list maintained for the target memory object. In actual application, the waiting list can be maintained and stored by the first network card device.

[0058] It should be understood that the work task processing mechanism in the first processing unit shown in FIG. 3b is only exemplary, and in actual applications, the work task processing mechanism in the first processing unit is usually designed according to principles of a network protocol, memory semantics, an event listening mechanism, and the like, which are not limited by the present embodiment, and no intervention or more examples are made. The network protocol can include, but is not limited to, a Transmission Control Protocol (TCP), an Internet Protocol (IP), and a Remote Direct Memory Access (RDMA).

[0059] It can be known that in the present embodiment, after the subscription request is sent to the first processing unit in step 201, the first processing unit can be triggered to listen to the ready state of the target memory object. That is, the first processing unit is triggered to listen to whether the target memory object has been written into the memory space managed by the first processing unit.

[0060] Regardless of the event listening mechanism used by the first processing unit, after the first processing unit listens to that the target memory object is ready (i.e., has been readable), the work thread corresponding to the subscription request will be woken up and start working, and the work thread will make a function call (i.e., the callback mentioned above) in the network card device driver. Based on the design of the network card device driver in the present embodiment, the work process can call a specified function in the network card device driver, and through the specified function, the first network card device can send a request response to the subscription request.

[0061] In this way, the first network card device can receive the request response sent by the first processing unit to the subscription request. It should be understood that, as can be known from the above analysis, the request response is sent by the first processing unit after listening to that the target memory object is ready, and therefore, in the present embodiment, when the first network card device receives the request response to the subscription request, it can indicate that the target memory object is ready.

[0062] And based on the design of the program code in the network card device in the present embodiment, processing logic for the request response is added in the first network card device. Continuing to refer to FIGS. 2 and 3, in step 201, after receiving the request response to the subscription request, the first network card device can determine the second node that needs to be responded, that is, determine which node(s) the target memory object needs to be transmitted to.

[0063] Here, compared with the traditional memory object transmission scheme in FIG. 1, in the traditional scheme, the first processing unit needs to initiate the send operation to control the transmission timing and transmission destination of the memory object, but in the embodiment, the traditional concept is changed, and the work of the control plane is offloaded to the first network card device, and the first network card device interfaces or controls the demand for obtaining the target memory object in the network, which can effectively reduce the processing pressure of the first processing unit, and the first processing unit is responsible for simple event listening work, thus the interaction times caused by the control plane work can be avoided.

[0064] With reference to FIGS. 2 and 3a, in step 202, after the second node is determined, the target memory object is transmitted to the second node.

[0065] In the embodiment, the network protocol used by the first network card device in the process of transmitting the target memory object to the second node is not modified, and the original network protocol used by the first network card device can be used, for example, the TCP / IP protocol or the RDMA protocol. In the case of using the RDMA protocol, the first network card device can cooperate with the network card device on the second node to write the related data into the memory of the second node, without the participation of the processing unit on the second node, and more efficient transmission can be achieved. Here, the network protocol used by the first network card device in transmitting the target memory object is not limited, and no intervention or more examples are made.

[0066] In this way, based on the memory object transmission scheme provided in the embodiment, a subscription type memory object transmission mechanism can be implemented, the subscription request can be initiated in advance before the memory object is ready, and once the memory object is ready, the transmission of the memory object can be automatically started, which can effectively reduce the transmission delay of the memory object.

[0067] To sum up, in this embodiment, the semantics in the communication protocol between the processing unit and the network card device is extended to optimize the interaction logic between the network card device and the processing unit in the memory object transmission process. Based on this, the network card device and the processing unit can perform simplified interaction according to new semantics such as subscription request and request response, and realize the transmission of the memory object through the subscription mode. In this way, the transmission problem of the memory object is converted into the state monitoring problem of the memory object, and the processing unit and the network card device can deliver the monitoring result through the request response, so the processing unit and the network card device no longer need to perform complex interaction according to the traditional basic semantics such as receive and send. Accordingly, on the one hand, this can effectively reduce the number of interactions between the network card device and the processing unit in the memory object transmission process, thereby reducing the number of times that the processing unit receives the interrupt signal, that is, reducing the disturbance to the processing unit, and further more efficiently completing the memory object transmission and effectively reducing the transmission delay of the memory object; on the other hand, based on the behavior rules indicated by the new semantics, the control plane work such as determining the second node that needs to respond involved in the memory object transmission process can be offloaded to the network card device, which can effectively reduce the processing pressure of the processing unit, thereby further reducing the transmission delay of the memory object.

[0068] In the above or the following embodiments, various implementation manners can be used to implement the foregoing step 200. Two optional implementation manners are provided below as examples. FIG. 4 is a logic schematic diagram of an optional implementation manner provided by an example embodiment of the present application, and FIG. 5 is a logic schematic diagram of another optional implementation manner provided by an example embodiment of the present application.

[0069] Referring to FIG. 4, in the first optional implementation manner:

[0070] The first network card device can send, for the node, a subscription request for the target memory object to the first processing unit after receiving a pre-fetch request for the target memory object issued by any node, where the pre-fetch request is used to indicate that the target memory object is obtained from the first node.

[0071] The pre-fetch request is also a new semantics extended in this embodiment, and the first network card device can understand the pre-fetch request. Here, the specific logic of how the node issues the pre-fetch request can not be limited, as long as it can ensure that the pre-fetch request issued by the node conforms to the new semantics designed in this embodiment. In this embodiment, the parameters carried in the pre-fetch request can include but are not limited to:

[0072] 1. local information and peer information:

[0073] The peer information is used for the network card device at the local end to route the pre-fetch request to the peer (i.e., the first node in this embodiment);

[0074] Local information, used for the network card device of the opposite end to route when returning the target memory object;

[0075] Key value (KEY), used to indicate the target memory object required to be acquired;

[0076] Access permission representation (RKEY), used to indicate the access permission of the memory object;

[0077] 2. Information of the local reserved space:

[0078] Local address;

[0079] Local address length;

[0080] Local address access permission (LKEY).

[0081] It should be understood that the above parameters are only exemplary, and other parameters can also be carried in the prefetch request, and no more examples are given here. In actual application, the parameters carried in the prefetch request can be flexibly designed according to the needs.

[0082] Thus, in this optional implementation, for each prefetch request received by the first network card device, a dedicated subscription request will be sent to the first processing unit. That is, there is a one-to-one relationship between the prefetch request and the subscription request. Exemplarily, the first network card device can directly forward the received prefetch request to the first processing unit as a subscription request. It is emphasized that based on the design of the network card device driver in this embodiment, although the first network card device directly forwards the received prefetch request to the first processing unit, after translation by the network card device driver, the main role of the generated work task is still to add the target memory object to the event listening range of the first processing unit, so that the first processing unit can still timely listen to the ready state of the target memory object. The identification information of the node carried in the prefetch request (such as the local information in the foregoing example) can be retained in the work task converted for the subscription request, so as to distinguish the nodes pointed to by different subscription requests by the first processing unit.

[0083] As mentioned above, the first network card device can receive the request response issued by the first processing unit for the subscription request. Referring to FIG. 4, in this optional implementation, the first network card device sends a subscription request to the first processing unit for each prefetch request, so that the first network card device can receive the request responses returned by the first processing unit for different subscription requests respectively. Based on the design of the network card device driver in this embodiment, the identification information of the node can also be carried in the request response issued by the first processing unit in this optional implementation, so as to distinguish the nodes pointed to. Thus, the request response can point to a specific node.

[0084] Exemplarily, in the case that the first network card device directly forwards the received pre-fetch request to the first processing unit, the first network card device can receive a reply message issued by the first processing unit for the pre-fetch request as a request reply. As mentioned above, the local information carried in the pre-fetch request can be retained in the work task converted for the pre-fetch request, based on which the first processing unit can also carry the corresponding local information (for example, node identifier, etc.) in the reply message issued for the pre-fetch request, to indicate the node pointed by the different reply messages.

[0085] Accordingly, in the optional implementation, referring to FIG. 4, after receiving a pre-fetch request, the first network card device sends a subscription request to the first processing unit, and can receive a request reply returned by the first processing unit for the pre-fetch request. That is, for a pre-fetch request, one interaction (i.e., sending a subscription request and receiving a request reply) between the first network card device and the first processing unit can complete the transmission of one memory object. Compared with FIG. 1, it can be obviously perceived that the number of interactions between the first network card device and the first processing unit in the process of transmitting one memory object is significantly reduced.

[0086] Referring to FIG. 5, in the second optional implementation:

[0087] The first network card device can send a common subscription request to the first processing unit for the pre-fetch requests issued by multiple nodes for the target memory object.

[0088] The second optional implementation is different from the first optional implementation in that: instead of sending a dedicated subscription request to the first processing unit for each pre-fetch request, a common subscription request can be sent to the first processing unit for multiple pre-fetch requests for the same memory object. That is, the many-to-one relationship between the pre-fetch request and the subscription request.

[0089] For example, if there are 5 nodes sending pre-fetch requests for the target memory object to the first network card device, according to the first optional implementation, the first network card device can send 5 subscription requests to the first processing unit for the 5 pre-fetch requests; and according to the second optional implementation, the first network card device only needs to send 1 subscription request to the first processing unit for the 5 pre-fetch requests.

[0090] It can be known that in the second optional implementation, the pre-fetch requests for the same memory object are aggregated, compared with the first optional implementation, the number of subscription requests sent by the first network card device to the first processing unit can be further reduced, and accordingly, the number of request replies returned by the first processing unit to the first network card device is also reduced synchronously. Therefore, the number of interactions between the two can be further reduced.

[0091] In the second optional implementation, the sending timing of the subscription request is not limited. In an exemplary design scheme, the subscription request is sent when the first network card device receives a prefetch request from any node.

[0092] The first network card device can detect whether a subscription request for the target memory object has been sent to the first processing unit after receiving a prefetch request for the target memory object from any node, and send a subscription request for the target memory object to the first processing unit if not. Correspondingly, if a subscription request has been sent, no subscription request needs to be sent.

[0093] Since the subscription request is sent by the first network card device, it can detect whether a subscription request has been sent for a certain memory object without obstacles. The engineering implementation of supporting detection is not limited here, for example, a record table can be maintained, and detection can be performed by looking up the table, and no more examples are given here.

[0094] It should be understood that the sending timing described above is only exemplary, and in the second optional implementation, it is not limited thereto. For example, in some design schemes, the number of received prefetch requests for the target memory object can also be counted, and when the number of prefetch requests reaches a preset threshold, a subscription request for the target memory object can be sent to the first processing unit. No more examples of sending timing are given here.

[0095] Considering that in the second optional implementation, the prefetch request received by the first network card device can not be processed in a one-to-one and timely manner as in the first optional implementation, in the second optional implementation, as shown in FIG. 5, it is also proposed that:

[0096] After receiving a prefetch request for a target memory object from any node, if it is detected that a subscription request for the target memory object has been sent to the first processing unit and the target memory object is not ready, the prefetch request sent by the node is added to the waiting list maintained for the target memory object.

[0097] In actual application, the waiting list can be maintained and stored by the first network card device. The waiting list can be in a key-value format, in which the key is used to refer to the memory object, and the value is used to record the pending prefetch request. In addition, different memory objects can have different waiting lists, and of course, multiple memory objects can also have their pending prefetch requests recorded in one waiting list, which is not limited here.

[0098] In this way, the subscription relationship between the node and the memory object can be recorded by the waiting list, and the first network card device can implement centralized management of multiple prefetch requests associated with the same memory object based on the waiting list.

[0099] Here, in the process of maintaining the waiting list, it is mentioned that the operation of judging whether the target memory object is ready is added in the first network card device. In order to support this operation, it is proposed that a ready list for recording the ready memory objects can be maintained by the first processing unit or by the first network card device. If it is maintained by the first processing unit, based on the design of the network card device driver in this embodiment, the first processing unit will add the target memory object to the ready list in the case of sending a request response for the subscription request. If it is maintained by the first network card device, based on the design of the program code in the network card device in this embodiment, the first network card device can add the target memory object to the ready list after receiving the request response sent by the first processing unit for the subscription request.

[0100] Based on this, the first network card device can query the ready list; if the target memory object is not queried in the ready list, it is determined that the target memory object is not ready; if it is queried, it can be determined that the target memory object is ready. If the ready list is maintained by the first processing unit, the first processing unit can store the ready list in the memory space it manages, of course, it can also be stored in other storage locations, and the first network card device can query the ready list by sending a memory access request to the first processing unit, and more description is not made here.

[0101] In this second implementation, there is also a case that after receiving the pre-fetch request sent by any node for the target memory object, the first network card device detects that a subscription request has been sent for the target memory object, and it is queried that the target memory request is ready. For this case, the first network card device can directly transmit the target memory object to the node, without the need to add the pre-fetch request sent by the node to the waiting list described above, which can reduce the response delay of the pre-fetch request in this case, that is, reduce the transmission delay of the corresponding memory object.

[0102] It can be understood that the implementation details in the above two optional implementation manners are only exemplary and are not limited to the implementation details described above, for example, in the above first optional implementation manner, the first network card device can construct a subscription request for each pre-fetch request, instead of directly taking the pre-fetch request as a subscription request, and the like, and more examples are not made here. In addition, the above two optional implementation manners are only exemplary, and other implementation manners can also be used to implement the step 200 in this embodiment, and more examples are not made here.

[0103] To sum up, in the embodiment, the demand for obtaining the memory object can be delivered through the prefetch request, and the first network card device processes the prefetch request individually or in aggregation. Once interaction between the first network card device and the first processing unit can solve one prefetch request, or even multiple prefetch requests, so that the number of interactions between the first network card device and the first processing unit can be effectively reduced, and the transmission delay of the memory object can be reduced.

[0104] In the above or the following embodiments, as mentioned above, based on the design of the program code in the network card device in the embodiment, the processing logic for the request response is added in the first network card device: the first network card device can determine the second node that needs to be responded after receiving the request response.

[0105] In the embodiment, the implementation manner for determining the second node can be adaptively designed according to the implementation manner of sending the subscription request for the target memory object to the first processing unit. The following two implementation manners provided for step 200 in the foregoing embodiments are exemplarily described for the process of determining the second node in the first network card device.

[0106] In the first optional implementation manner provided for step 200 in the foregoing embodiments, the first network card device can determine the node pointed by the received request response as the second node; wherein the number of the second nodes determined according to a single request response is one. As mentioned above, the first processing unit carries the local information in the request response to point to the corresponding node. Based on this, the first network card device can parse the local information carried in the request response, thereby determining the node pointed by the request response.

[0107] In the second optional implementation manner provided for step 200 in the foregoing embodiments, since the subscription request does not point to a specific node, the request response issued by the first processing unit for the subscription request also does not point to a specific node. After receiving the request response, the first network card device can query the sending nodes corresponding to the prefetch requests recorded in the waiting list corresponding to the target memory object as the second nodes. Since the prefetch requests recorded in the waiting list corresponding to a single memory object can be multiple, the second nodes determined by the first network card device after receiving one request response can also be multiple. After determining the multiple second nodes, the first network card device can centrally respond to the prefetch requests for the target memory object issued by the multiple second nodes, which echoes the above-mentioned that the first network card device can centrally manage multiple prefetch requests.

[0108] In summary, in this embodiment, optional implementation manners are provided for the process in which the first network adapter sends a subscription request to the first processing unit. The number of subscription requests sent in these optional implementation manners can be different, and the timing of initiating the subscription request can also be different, but the timely triggering of the first processing unit to perform state monitoring on the target memory object through sending the subscription request is ensured. In this embodiment, optional implementation manners are also provided for the operation of the first network adapter to determine the second node. Based on these optional implementation manners, after receiving the request response from the first processing unit, the first network adapter can autonomously, accurately and comprehensively determine which node(s) the memory object corresponding to the request response should be transmitted to, and no longer needs to rely on the first processing unit for control, nor needs to send more interactions to the first processing unit for this purpose, thereby effectively ensuring the accuracy and timeliness of the memory object transmission.

[0109] In the above or the following embodiments, the first network adapter can use various implementation manners to transmit the target memory object to the second node. FIG. 6 is a logic diagram of an optional transmission manner provided by an example embodiment of the present application. Referring to FIG. 6, in this optional transmission manner:

[0110] The first network adapter can read the target memory object from the memory space managed by the first processing unit, and if the number of second nodes is multiple, the read target memory object can be transmitted to the multiple second nodes respectively. In actual application, the first network adapter can perform a copy operation on the read target memory object to obtain multiple data copies, and distribute the multiple data copies to the multiple second nodes.

[0111] As mentioned in the foregoing embodiments, after receiving one request response, the first network adapter can determine the number of second nodes to be one or multiple. If the number of second nodes is multiple, the first network adapter can collectively respond to the pre-fetch requests issued by these second nodes for the target memory object. In this optional transmission manner, the first network adapter can perform a memory access operation to read the target memory object from the memory space managed by the first processing unit, and on this basis, the first network adapter can perform a copy operation to obtain multiple data copies corresponding to the target memory object and distribute them to each second node. It can be seen that the first network adapter does not need to perform a memory access operation for each second node, which can effectively save the input / output bandwidth (I / O bandwidth) consumed by the first network adapter.

[0112] There is a case that the first network card device determines one second node after receiving a request response. In this case, the first network card device records the determined second node after receiving a request response corresponding to a target memory object, and temporarily does not transmit the target memory object to the second node; the second network card device can start to perform the operation of transmitting the target memory object after the number of the second nodes recorded for the target memory object accumulates to a specified number, or the accumulated time length reaches a specified time length. After the accumulation, the first network card device can generate the target memory object to multiple second nodes according to the optional transmission manner provided in the embodiment.

[0113] The inventor found in the research process that in the memory space managed by the first processing unit, the memory object can be transmitted after serialization or directly transmitted. Serialization refers to the process of converting an object into byte information that can be transmitted. Deserialization refers to the process of restoring byte information to an object. In this embodiment, transmission support schemes for the two cases are provided in the first network card device.

[0114] For the case that the memory object is transmitted after serialization:

[0115] The first network card device can transmit the serialization information corresponding to the target memory object to the second node;

[0116] After determining that the serialization information has been transmitted to the second node, a response message for the prefetch request is sent to the second node, and the response message carries attribute information of the serialization data corresponding to the target memory object;

[0117] The response message is sent to the second node to trigger the second node to obtain the serialization data and restore the target memory object through deserialization operation through the response message.

[0118] For the case that the memory object does not need to be transmitted after serialization (i.e., the memory object can be directly transmitted):

[0119] The first network card device can transmit the target memory object itself to the second node;

[0120] After determining that the target memory object has been transmitted to the second node, a response message for the prefetch request is sent to the second node;

[0121] The response message is sent to the second node.

[0122] With reference to FIG. 4 and FIG. 5, the first network card device can send a response message for each pre-fetch request, indicating that the pre-fetch request response is completed, whether the memory object needs to be serialized before transmission or not. In the embodiment, the response message can be generated in various ways. With reference to the first optional implementation of step 200 mentioned above, for the pre-fetch request sent by the second node to the target memory object, the first network card device has received the request response from the first processing device, which can point to the specific node. In this case, the first network card device can forward the request response to the second node as the response message. With reference to the second optional implementation of step 200 mentioned above, the request response returned by the first processing device does not indicate the node. In this case, the first network card device can construct a response message for each pre-fetch request sent by the second node to the target memory object, and send the response message to the second node. The generation of the response message is not limited, and no more examples are given.

[0123] In addition, in the embodiment, the parameters carried in the response message can include but are not limited to:

[0124] 1. Whether the target memory object is directly copied:

[0125] Yes, indicating that the target memory object does not need to be serialized before transmission;

[0126] No, indicating that the target memory object needs to be serialized before transmission;

[0127] 2. Custom parameter return value, which can be used to return to the upper caller, such as a process, which needs to obtain the target memory object, and can be used for callback purposes.

[0128] It should be understood that the above parameters are exemplary, and other parameters can also be carried in the response message, and no more examples are given. In actual application, the parameters carried in the response message can be flexibly designed according to the needs.

[0129] In summary, in this embodiment, the pre-fetch requests sent by the multiple second nodes for the same memory object can be responded collectively, without performing multiple memory access operations for the multiple pre-fetch requests, but performing one memory access operation for the multiple pre-fetch requests and automatically copying and distributing multiple copies of the data to the multiple second nodes. This mechanism of solving the multiple pre-fetch requests through one memory access operation can effectively reduce the I / O bandwidth occupied by the first network card device, thereby avoiding the influence of the transmission delay of the memory object due to insufficient I / O bandwidth. Moreover, the first network card device can also send a response message indicating that the pre-fetch request has been responded to the second node, and by carrying relevant parameters in the response message, it can prompt whether the target memory object is transmitted after serialization, thereby triggering the second node to continue to obtain the serialized data of the target memory object on demand in a timely manner. This enables the first network card device to support the transmission of various target memory objects.

[0130] FIG. 7 is a flowchart of a memory object transmission method provided by another example embodiment of the present application. The method can be implemented by the second network card device mounted on the second node (i.e., the request end) and the second processing unit mounted on the second node. Referring to FIG. 7, the method can include:

[0131] Step 700, receiving a pre-fetch request sent by the second processing unit, the pre-fetch request being used to indicate obtaining a target memory object from the first node;

[0132] Step 701, forwarding the pre-fetch request to the first node to trigger the first node to return the target memory object after listening that the target memory object is ready;

[0133] Step 702, writing the received target memory object into the memory reserved space set by the second processing unit for the subscription request.

[0134] FIG. 8 is a schematic diagram of the interaction logic between the network device and the processing unit on the second node provided by another example embodiment of the present application.

[0135] Referring to FIGS. 7 and 8, in the case that any process on the second node needs to obtain a target memory object, the second processing unit can send a pre-fetch request for the target memory object. Here, the pre-fetch request conforms to the new semantics extended by the communication protocol between the network card device and the processing unit in this embodiment. As to the parameters that can be carried in the pre-fetch request, reference can be made to the related description in the foregoing, which will not be repeated here.

[0136] In the embodiment, the pre-fetch request can carry the memory object obtaining requirement. Compared with FIG. 1, in the embodiment, the memory object obtaining requirement is transmitted through one pre-fetch request instead of multiple rounds of interaction through the send semantics. This can effectively reduce the number of interactions between the second network card device and the second processing unit in the memory object obtaining requirement transmission link.

[0137] With reference to FIGS. 7 and 8, in step 701, the second network card device can forward the pre-fetch request sent by the second processing unit to the first node. Specifically, the second network card device can forward the pre-fetch request to the first network card device installed on the first node. After the pre-fetch request is transmitted to the first network card device, the interaction logic between the first network card device and the first processing unit on the first node in the foregoing embodiments can be referred to, which is not repeated here. As can be known from the foregoing embodiments, after the pre-fetch request is transmitted to the first network card device, the target memory object returned by the first node after the target memory object is ready can be triggered.

[0138] As can be known, in the embodiment, after the second network card device sends the pre-fetch request to the first node, the second network card device does not need to interact with the second processing unit and the first node any more, and the first node can automatically return the target memory object.

[0139] With reference to FIG. 7, in step 702, the first network card device can write the received target memory object into the memory reserved space set by the second processing unit for the subscription request.

[0140] In the embodiment, the second network card device sets the memory reserved space for the pre-fetch request when initiating the pre-fetch request, to store the data returned by the first node for the pre-fetch request. As mentioned above, the target memory object can be transmitted after being serialized or without being serialized. Therefore, in the embodiment, the second network card device can provide transmission support solutions for the two kinds of requests.

[0141] For the case that the target memory object is transmitted without being serialized:

[0142] The second network card device can receive the response packet and the target memory object returned by the first node for the pre-fetch request;

[0143] The target memory object received from the first node is written into the memory reserved space set by the second processing unit for the corresponding subscription request.

[0144] In this case, after the writing is completed, the transmission process for the target memory object is completed.

[0145] For the case that the target memory object is transmitted after being serialized:

[0146] The second network card device can receive a response message returned by the first node for the prefetch request and the serialization information corresponding to the target memory object;

[0147] The second network card device writes the serialization information corresponding to the target memory object received from the first node into the memory reservation space set for the corresponding subscription request by the second processing unit;

[0148] The second network card device forwards the response message to the second processing unit to trigger the second processing unit to continue to request the serialization data corresponding to the target memory object.

[0149] As described above for the first node, the response message received from the first node in this request includes parameters such as "whether the target memory object is directly copied". Based on the design of the network card device driver in this embodiment, the second processing unit can learn from these parameters in the response message that the target memory object is transmitted after serialization. Accordingly, based on the design of the network card device driver in this embodiment, the second processing unit will continue to make a function call to continue to request the serialization data corresponding to the target memory object.

[0150] FIG. 9 is a schematic diagram of an interaction logic provided by another exemplary embodiment of the present application in the case of serialization before transmission. Referring to FIG. 9, in this exemplary scheme:

[0151] After forwarding the response message to the second processing unit, the second network card device can receive a read request initiated by the second processing unit for the serialization data corresponding to the target memory object;

[0152] According to the read request, the serialization data is read back from the first node;

[0153] After determining that the serialization data is read, a read response for the read request is sent to the second processing unit to trigger the second processing unit to deserialize the serialization data according to the serialization information to restore the target memory object.

[0154] The necessary information required to be included in the read request can be obtained from the aforementioned serialization information. These necessary information can include but are not limited to the address and length of the serialization data, etc.

[0155] In this embodiment, the reading method used by the second network card device to execute the read request is not limited. Alternatively, the second network card device can execute the read request according to the Remote Direct Memory Access (RDMA) protocol, and accordingly, the second processing unit can initiate an RDMA request according to the RDMA protocol when sending the read request, as the read request in this embodiment.

[0156] Referring to FIG. 9, the second network card device can read the serialized data corresponding to the target memory object from the first node according to the read request, and send a read response to the second processing unit after reading, to indicate that the read request response is completed. Based on the design of the network card device driver in the embodiment, the read response can include parameters for indicating that the deserialization operation needs to be performed, and the second processing unit can perform the deserialization operation by calling the corresponding function in the network card device driver after parsing such parameters from the read response, so as to obtain the target memory object.

[0157] Accordingly, in the embodiment, when the memory object needs to be obtained, in the transmission stage of the obtaining requirement, the network card device and the processing unit on the local node no longer need to perform multiple rounds of interaction according to the traditional basic semantics such as send and receive, but the obtaining requirement for the memory object is carried by the new semantics of the pre-fetch request extended in the embodiment, so that the transmission of the obtaining requirement is implemented by a one-way transmission chain, and the number of interactions between the network card device and the processing unit can be effectively reduced in this stage. In the return stage of the memory object, the network card device and the processing unit no longer need to perform the interaction on the control plane according to the traditional basic semantics such as send and receive, but based on the triggering of the pre-fetch request to the opposite node in the previous stage, the network card device on the local side can automatically perform the transmission work on the data plane with the network card device on the opposite side, and on the control plane, the network card on the local side only needs to timely forward the response message to the pre-fetch request to the processing unit, so that the processing unit can timely know the execution of the pre-fetch request, and the number of interactions between the network card device and the processing unit is further reduced in this stage.

[0158] It should be noted that the technical details and conceptual explanations in the above embodiments of the memory object transmission method on the second node side can be referred to the related description in the above embodiments on the first node side as needed, and will not be described here again in order to save space, but this should not cause any loss of the protection scope of the present application.

[0159] In addition, in some of the processes described in the above embodiments and the accompanying drawings, a plurality of operations appearing in a specific order are included, but it should be clearly understood that these operations can be executed or in parallel without following the order in which they appear in this text. The serial numbers of the operations, such as 201, 202, etc., are only used to distinguish different operations, and the serial numbers themselves do not represent any execution order. In addition, these processes can include more or fewer operations, and the operations can be executed in sequence or in parallel. It should be noted that the descriptions of "first", "second" and the like in this text are used to distinguish different nodes, network card devices and processing units, and do not represent the order of precedence. In addition, "first" and "second" are not of different types.

[0160] FIG. 10 is a structural schematic diagram of a memory transmission system according to another example embodiment of the present application. Referring to FIG. 10, the system can include a first node and a second node, the first node being equipped with a first network device and a first processing unit, and the second node being equipped with a second network device and a second processing unit; the first network device and the second network device can perform the memory object transmission method described in the foregoing method embodiments to transmit a target memory object between the first node and the second node.

[0161] As mentioned above, the memory object transmission process usually involves two ends: a request end and a response end, the request end being the end that requests to obtain a memory object, and the response end being the end that provides a memory object. In order to facilitate distinction and description, in this embodiment, the response end involved in the memory object transmission process is described as a first node, and the request end is described as a second node. It is worth noting that for a computing node, it can sometimes act as a request end and sometimes act as a response end. In addition, as mentioned above, inter-process communication can be cross-node or non-cross-node, therefore, in the case of cross-node, the first node and the second node in this application can be used to refer to two different computing nodes, and in the case of non-cross-node, the first node and the second node in this application can be used to refer to the same computing node.

[0162] In actual applications, the program codes in the network card device driver and the network card device in this embodiment can be modified, and these modifications can cover the processing logic required on both the request end and the response end. In this way, no matter whether the node to which the network card device belongs is a request end or a response end, the network card device can interact with the processing unit according to the memory transmission scheme provided in this embodiment.

[0163] As can be known from the related description in the foregoing method embodiments, after the memory object transmission scheme provided in this embodiment is executed on the first node side, the number of interactions between the network card device and the processing unit on the first node side can be effectively reduced; after the memory object transmission scheme provided in this embodiment is executed on the second node side, the number of interactions between the network card device and the processing unit on the second node side can be effectively reduced. In this way, if the first node side and the second node side both execute the memory object transmission scheme provided in this embodiment, the number of interactions between the network card device and the processing unit involved in the entire memory object transmission process can be more obviously reduced, thereby effectively reducing the memory object transmission delay in the memory transmission system. In addition, the control pressure on the processing units on both sides can also be reduced, which can further reduce the transmission delay of the memory object.

[0164] It is worth noting that the technical details of the memory object transmission system described above can refer to the related description in the foregoing method embodiments, and for the sake of brevity, will not be expanded here, but this should not cause loss of the scope of protection of the present application.

[0165] Fig. 11 is a structural schematic diagram of a node according to another example embodiment of the present application. As shown in Fig. 11, the node can include a processing unit 11 and a network card device 12.

[0166] The network card device 12 is configured to perform the aforementioned memory object transmission method to interact with the processing unit 11, and implement the memory object transmission.

[0167] It should be understood that the node shown in Fig. 10 can be used as the first node mentioned in the aforementioned embodiments, and can also be used as the second node mentioned in the aforementioned embodiments.

[0168] Further, as shown in Fig. 11, the node further includes a memory 13, a power supply component 14 and other components. Only some components are shown in Fig. 11, and it does not mean that the node only includes the components shown in Fig. 11.

[0169] It should be noted that the technical details of the node in the above embodiments can refer to the description of the method embodiments, and will not be repeated here to save space, but this should not cause the loss of the protection scope of the present application.

[0170] Accordingly, the embodiments of the present application also provide a computer readable storage medium storing a computer program, and the computer program is executed to implement each step of the method embodiments.

[0171] Accordingly, the embodiments of the present application also provide a computer program product, and the computer program included in the computer program product is executed to implement each step of the method embodiments.

[0172] The memory in FIG. 11 can be configured to store computer programs and can be configured to store other various data to support operations on the computing platform. Examples of such data include instructions for any applications or methods operating on the computing platform, contact data, phonebook data, messages, pictures, videos, and the like. The memory can be implemented by any type of volatile or non-volatile storage devices, or a combination thereof, such as static random-access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic or optical disks.

[0173] The network card component in FIG. 11 can be configured to facilitate wired or wireless communication between the device where the network card component is located and other devices. The device where the network card component is located can access wireless networks based on communication standards, such as Wireless Fidelity (WiFi), 2G, 3G, 4G / LTE, 5G, or the like mobile communication networks, or a combination thereof. In an example embodiment, the network card component receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In an example embodiment, the network card component further includes a Near Field Communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on Radio Frequency Identification (RFID) technology, Infrared Data Association (IrDA) technology, Ultra-Wideband (UWB) technology, Bluetooth technology (BT), and other technologies.

[0174] The power supply component in FIG. 11 provides power to various components of the device where the power supply component is located. The power supply component can include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device where the power supply component is located.

[0175] Those skilled in the art will appreciate that embodiments of the present application can be readily used as a method, apparatus, system, computer program product, and / or combination thereof. Accordingly, the present application can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application can take the form of a computer program product on one or more computer readable storage medium (s) having computer readable program code embodied in the medium.

[0176] The computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart and / or block diagram block or blocks.

[0177] These computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture including instructions which implement the function specified in the flowchart and / or block diagram block or blocks.

[0178] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart and / or block diagram block or blocks.

[0179] It is also noted that the aforementioned embodiments can be implemented as a method, apparatus, system, computer program product, and / or combination thereof. Accordingly, the present application can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application can take the form of a computer program product on one or more computer readable storage media (media) having computer readable program code embodied in the medium.

[0180] It should be noted that the user information (including but not limited to user equipment information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present application 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.

[0181] The above only describes the embodiments of the present application and is not intended to limit the present application. Various modifications and changes can be made to the present application by those skilled in the art. Any modification, equivalent replacement, improvement, etc. within the spirit and principles of the present application shall be included in the protection scope of the present application.

Claims

1. A method for transferring a memory object, applicable to a first network card device, the first network card device being installed on a first node, and a first processing unit also being installed on the first node, the method comprising: sending a subscription request for a target memory object to the first processing unit, the subscription request being used to request to monitor a ready state of the target memory object, the target memory object being any memory object that needs to be transferred; after receiving a request response sent by the first processing unit for the subscription request, determining a second node, the request response being sent by the first processing unit after monitoring that the ready state of the target memory object is ready; transferring the target memory object to the second node.

2. The method of claim 1, wherein, The transferring of the target memory object to the second node comprises: reading the target memory object from a memory space managed by the first processing unit; if the number of the second nodes is more than one, transferring the read target memory object to the second nodes respectively.

3. The method of claim 1, wherein, The sending of the subscription request for the target memory object to the first processing unit comprises: sending a common subscription request to the first processing unit for prefetch requests sent by multiple nodes for the target memory object.

4. The method of claim 3, wherein, The sending of the common subscription request to the first processing unit for the prefetch requests sent by multiple nodes for the target memory object comprises: after receiving a prefetch request sent by any node for the target memory object, detecting whether a subscription request for the target memory object has been sent to the first processing unit; if not, sending a subscription request for the target memory object to the first processing unit.

5. The method of claim 4, wherein, The method further comprises: if it is detected that a subscription request for the target memory object has been sent to the first processing unit, and the target memory object is not ready, adding a prefetch request sent by the second node to a waiting list maintained for the target memory object.

6. The method of claim 5, wherein, The determination of the second node comprises: inquiring from the waiting list recorded nodes corresponding to each prefetch request as the second node, the nodes being nodes sending the prefetch requests; wherein the number of the second nodes is one or more.

7. The method of claim 5, wherein, After receiving a prefetch request sent by any node for the target memory object, the method further comprises: inquiring a ready list used to record ready memory objects; if the target memory object is not inquired from the ready list, determining that the target memory object is not ready; wherein the ready list is maintained by the first processing unit or by the first network card device according to the received request response.

8. The method of claim 5, wherein, After receiving a prefetch request sent by any node for the target memory object, the method further comprises: if it is determined that the target memory object is ready, transferring the target memory object to the second node.

9. The method of claim 1, wherein, The sending of the subscription request for the target memory object to the first processing unit comprises: after receiving a pre-fetch request issued by any node for the target memory object, sending a subscription request for the target memory object to the first processing unit on behalf of the node, the pre-fetch request being used to indicate that the target memory object is to be obtained from the first node.

10. The method of claim 9, wherein, after receiving a pre-fetch request issued by any node for the target memory object, sending a subscription request for the target memory object to the first processing unit on behalf of the node, the pre-fetch request being used to indicate that the target memory object is to be obtained from the first node. after receiving a pre-fetch request issued by any node for the target memory object, forwarding the pre-fetch request to the first processing unit as the subscription request.

11. The method of claim 10, wherein, The memory object transmission method further includes: receiving a response message issued by the first processing unit for the pre-fetch request as the request response, the response message containing a node identifier corresponding to the node that issued the pre-fetch request; The determination of the second node includes: determining the node pointed to by the node identifier contained in the received response message as the second node; wherein the number of second nodes determined according to a single request response is one.

12. The method of claim 3 or 9, wherein, transmitting the target memory object to the second node includes: in the case where the target memory object needs to be serialized before transmission, transmitting serialization information corresponding to the target memory object to the second node; after determining that the serialization information has been transmitted to the second node, adding attribute information of the serialized data corresponding to the target memory object and identification information of the second node to a response message, the response message being used to represent that the pre-fetch request response issued by the second node is complete; sending the response message to the second node to trigger the second node to obtain the serialized data and perform a deserialization operation on the serialized data based on the serialization information, so as to restore the target memory object.

13. The method of claim 3 or 9, wherein, transmitting the target memory object to the second node includes: in the case where the target memory object does not need to be serialized before transmission, transmitting the target memory object to the second node; The method further includes: after determining that the target memory object has been transmitted to the second node, sending a response message to the second node, the response message being used to represent that the pre-fetch request response issued by the second node is complete.

14. A memory object transmission method, applicable to a second network card device, the second network card device being installed on a second node, and a second processing unit also being installed on the second node, the method including: receiving a pre-fetch request issued by the second processing unit, the pre-fetch request being used to indicate that a target memory object is to be obtained from a first node; forwarding the pre-fetch request to the first node to trigger the first node to return the target memory object after listening to a ready state of the target memory object being ready; writing the received target memory object into a memory reservation space set by the second processing unit for the pre-fetch request.

15. The method of claim 14, wherein, writing the received target memory object into a memory reservation space set by the second processing unit for the pre-fetch request includes: receiving a response message returned by the first node for the pre-fetch request and serialized information corresponding to the target memory object; writing the serialized information into a memory reserved space set by the second processing unit for the pre-fetch request; forwarding the response message to the second processing unit to trigger the second processing unit to continue to request the serialized data corresponding to the target memory object according to attribute information of the serialized data contained in the response message.

16. The method of claim 15, wherein, The method further comprises: after forwarding the response message to the second processing unit, receiving a read request initiated by the second processing unit for the serialized data corresponding to the target memory object; reading the serialized data from the first node according to the read request; after determining that the serialized data reading is completed, sending a read response for the read request to the second processing unit to trigger the second processing unit to deserialize the serialized data according to the serialized information to restore the target memory object.

17. A memory object transmission system comprising a first node and a second node, the first node being equipped with a first network device and a first processing unit, and the second node being equipped with a second network device and a second processing unit; the first network device is configured to perform the memory object transmission method according to any one of claims 1-13, and the second network device is configured to perform the memory object transmission method according to any one of claims 14-16, so as to transmit a target memory object between the first node and the second node.

18. A node comprising a processing unit and a network card device; the network card device is configured to interact with the processing unit according to the memory object transmission method of any one of claims 1-16 to perform memory object transmission.

19. A computer-readable storage medium storing a computer program, which when executed by one or more processors, causes the one or more processors to perform the memory object transmission method of any one of claims 1-16.

20. A computer program product comprising a computer program, which when executed by one or more processors, causes the one or more processors to perform the memory object transmission method of any one of claims 1-16.

Citation Information

Patent Citations

  • Data processing network with flow compaction for streaming data transfer

    CN112074822A

  • Data transmission method, device and system and storage medium

    CN116166198A

  • Subscription message transmission method and device, storage medium and electronic equipment

    CN118093225A

  • Network Management Interface

    US20180131745A1

  • Communication method and apparatuses

    WO2023134338A1