Cloud service system and data processing method based on cloud service system
By implementing a process-level heartbeat mechanism on the smart network interface card, the high computational overhead caused by the lack of a heartbeat mechanism in the RDMA protocol is solved, thereby improving the performance and communication efficiency of the cloud service system.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2025-08-01
- Publication Date
- 2026-07-23
AI Technical Summary
In cloud service systems, the lack of a heartbeat mechanism in the RDMA protocol leads to high computational overhead due to inter-process communication. This is especially true in large-scale compute and storage node clusters, where the heartbeat management overhead increases significantly as the number of processes increases.
By implementing a process-level heartbeat mechanism on the smart network interface card (NIC), heartbeat information can be managed at the process level using the smart NIC, reducing heartbeat management overhead. The smart NIC records the process identifier and timestamp to enable the interaction and inspection of heartbeat information.
It effectively reduces heartbeat management overhead, improves the performance of cloud service systems, reduces computing overhead, and enhances the efficiency of process communication.
Smart Images

Figure CN2025112152_23072026_PF_FP_ABST
Abstract
Description
A cloud service system and a data processing method based on the cloud service system.
[0001] This application claims priority to Chinese Patent Application No. 202510089431.8, filed on January 17, 2025, entitled “A cloud service system and a data processing method based on a cloud service system”, the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of computers, and more specifically, to a cloud service system and a data processing method based on the cloud service system. Background Technology
[0003] Driven by the rapid development of cloud technology, cloud vendors are adopting a compute-storage separation architecture to build cloud service systems. This architecture can include isolated compute node clusters and storage node clusters. Compute nodes are used to deploy tenant applications, while storage nodes are used to store the data of these applications. Currently, compute nodes are configured with a one-to-one correspondence with smart network interface cards (NICs), meaning that requests sent by a compute node are forwarded through its corresponding smart NIC. However, as the scale of compute node clusters and storage node clusters continues to expand, the number of processes requiring communication increases linearly with the number of servers and virtual machines.
[0004] In related technologies, to improve end-to-end application performance, multiple processes are interconnected in a full-mesh manner, resulting in hundreds of thousands of inter-process communication connections. However, when processes communicate via Remote Direct Memory Access (RDMA), the RDMA protocol itself lacks a heartbeat mechanism. Maintaining heartbeat information for each connection at the application layer incurs significant computational overhead.
[0005] Therefore, how to reduce computational overhead has become a pressing technical problem that needs to be solved. Summary of the Invention
[0006] This application provides a cloud service system and a data processing method based on the cloud service system. This application implements a heartbeat mechanism at the process level using a smart network interface card (NIC), which can reduce heartbeat management overhead. The technical solution provided by this application is as follows:
[0007] Firstly, this application provides a cloud service system. The cloud service system includes infrastructure for providing cloud services to tenants, comprising a compute node cluster and a smart NIC cluster. Multiple processes run on the compute node cluster and the smart NIC cluster. The compute node cluster includes a first compute node and a second compute node, and the smart NIC cluster includes a first smart NIC and a second smart NIC. The first smart NIC is inserted into the first compute node, and the second smart NIC is inserted into the second compute node. The first compute node runs a first process, and the first and second smart NICs establish a network connection channel. The first smart NIC is used to obtain the identifier of the first process running on the first compute node and send a first heartbeat request message containing the identifier of the first process to the second smart NIC. The second smart NIC is used to receive the first heartbeat request message sent by the first smart NIC, record the timestamp corresponding to the identifier of the first process (where the timestamp corresponds to the time the second smart NIC receives the first heartbeat request message), and send a first heartbeat response message to the first smart NIC.
[0008] As can be seen from the above method, after the second smart network interface card (NIC) receives the first heartbeat request message sent by the first smart NIC, it records the timestamp corresponding to the identifier of the first process. In this way, regardless of whether the two processes communicate through a single logical connection or multiple logical connections, the second smart NIC interacts with the first process running on the first smart NIC at the process level. Managing the heartbeat mechanism at the process level by the second smart NIC reduces the management overhead of the heartbeat mechanism, thereby improving the performance of the cloud service system. Therefore, this application can implement a heartbeat mechanism at the process level, reducing heartbeat management overhead.
[0009] In one possible implementation, the second smart network interface card (NIC) runs a second process. The first and second processes have a communication requirement. The first smart NIC, upon receiving a first heartbeat response message, also records a timestamp corresponding to the identifier of the second process. This timestamp is the time the first smart NIC received the first heartbeat response message, which carries the identifier of the second process. Therefore, the first heartbeat request message sent by the first smart NIC can be used not only by the second smart NIC to determine whether the first process has lost connection, but also by the first smart NIC to determine whether the second process communicating with the first process has lost connection based on the first heartbeat response message.
[0010] In one possible implementation, the second smart network interface card (NIC) is used to obtain the timestamp corresponding to the identifier of the first process; the second smart NIC is also used to determine whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold; the second smart NIC is further used to determine that the first process has lost connection if the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold. Therefore, the second smart NIC can be used to check heartbeat information, thereby reducing the overhead of heartbeat management.
[0011] In one possible implementation, the first process includes at least one logical connection for communication with the second process. The second smart network interface card (NIC) is further configured to determine the sequence number of the at least one logical connection belonging to the first process based on the identifier of the first process. The second smart NIC is also configured to disconnect at least one logical connection based on the sequence number of the at least one logical connection. This enables heartbeat mechanism management at the process level.
[0012] In one possible implementation, the second smart network interface card is also used to create a heartbeat table, which includes the identifier of the first process and the timestamp corresponding to the identifier of the first process.
[0013] In one possible implementation, the second computing node is used to obtain the timestamp corresponding to the identifier of the first process; the second computing node is also used to determine whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold; the second computing node is also used to determine that the first process has lost connection if the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold. Therefore, it can be seen that a general-purpose computing node can also perform heartbeat information checks to manage the heartbeat mechanism.
[0014] In one possible implementation, the compute node cluster further includes a third compute node, and the smart NIC cluster further includes a third smart NIC. The third smart NIC is inserted into the third compute node, and the third compute node runs a third process. The second smart NIC and the third smart NIC establish a network connection channel. The third smart NIC is used to obtain the identifier of the third process running on the third compute node and send a second heartbeat request message containing the identifier of the third process to the second smart NIC. The second smart NIC is used to receive the second heartbeat request message sent by the third smart NIC, record the timestamp corresponding to the identifier of the third process according to the identifier of the third process, wherein the timestamp corresponding to the identifier of the third process is the time when the second smart NIC receives the second heartbeat request message, and send a second heartbeat response message to the third smart NIC.
[0015] In one possible implementation, the second smart network interface card (NIC) is further configured to receive a connection establishment request sent by the first smart network interface card (NIC); the second smart network interface card is further configured to establish a network connection channel between the first smart network interface card and the second smart network interface card according to the connection establishment request.
[0016] Secondly, this application provides a data processing method based on a cloud service system. This method is applied to a cloud service system, which includes infrastructure providing cloud services to tenants. The infrastructure includes a cluster of computing nodes and a cluster of smart network interface cards (NICs). Multiple processes run on the computing node cluster and the smart NIC cluster. The computing node cluster includes a first computing node and a second computing node. The smart NIC cluster includes a first smart NIC and a second smart NIC. The first smart NIC is inserted on the first computing node, and the second smart NIC is inserted on the second computing node. The first computing node runs a first process. The first smart NIC and the second smart NIC establish a network connection channel. The method includes: the first smart NIC acquiring the identifier of the first process running on the first computing node and sending a first heartbeat request message containing the identifier of the first process to the second smart NIC; the second smart NIC receiving the first heartbeat request message sent by the first smart NIC; the second smart NIC recording a timestamp corresponding to the identifier of the first process, wherein the timestamp corresponding to the identifier of the first process is the time when the second smart NIC receives the first heartbeat request message; and the second smart NIC sending a first heartbeat response message to the first smart NIC.
[0017] In one possible implementation, the second smart network interface card (NIC) runs a second process, and there is a communication requirement between the first process and the second process. After the second smart NIC sends a first heartbeat response message to the first smart NIC, the method includes: the first smart NIC receiving the first heartbeat response message, the first heartbeat response message carrying an identifier of the second process; the first smart NIC recording a timestamp corresponding to the identifier of the second process, the timestamp corresponding to the identifier of the second process being the time when the first smart NIC received the first heartbeat response message.
[0018] In one possible implementation, the method further includes: the second smart network interface card (NIC) acquiring the timestamp corresponding to the identifier of the first process; the second smart network interface card determining whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold; and the second smart network interface card determining that the first process has lost connection if the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold.
[0019] In one possible implementation, the first process includes at least one logical connection for communicating with the second process, and the method further includes: a second smart network interface card (NIC) determining a serial number of the at least one logical connection belonging to the first process based on the identifier of the first process; and the second smart NIC disconnecting the at least one logical connection based on the serial number of the at least one logical connection.
[0020] In one possible implementation, the method further includes: the second smart network interface card creating a heartbeat table, wherein the heartbeat table includes an identifier of the first process and a timestamp corresponding to the identifier of the first process.
[0021] In one possible implementation, the method further includes: a second computing node obtaining a timestamp corresponding to the identifier of the first process; the second computing node determining whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold; and the second computing node determining that the first process has lost connection if the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold.
[0022] In one possible implementation, the computing node cluster further includes a third computing node, and the smart network interface card (NIC) cluster further includes a third smart NIC. The third smart NIC is inserted on the third computing node, and the third computing node runs a third process. A network connection channel is established between the second smart NIC and the third smart NIC. The method further includes: the third smart NIC acquiring the identifier of the third process running on the third computing node and sending a second heartbeat request message containing the identifier of the third process to the second smart NIC; the second smart NIC receiving the second heartbeat request message sent by the third smart NIC; the second smart NIC recording the timestamp corresponding to the identifier of the third process, wherein the timestamp corresponding to the identifier of the third process is the time when the second smart NIC receives the second heartbeat request message; and the second smart NIC sending a second heartbeat response message to the third smart NIC.
[0023] In one possible implementation, the method further includes: the second smart network interface card (NIC) receiving a connection establishment request sent by the first smart network interface card (NIC); and the second smart network interface card establishing a network connection channel between the first smart network interface card and the second smart network interface card according to the connection establishment request.
[0024] Thirdly, this application also provides a cloud service system, which includes infrastructure for providing cloud services to tenants. The infrastructure includes a smart network interface card (NIC) cluster, which runs multiple processes. The smart NIC cluster includes a first smart NIC and a second smart NIC. The first smart NIC runs a first process, and the second smart NIC runs a second process. The first smart NIC and the second smart NIC establish a connection channel. The first smart NIC is used to obtain the identifier of the first process running on the first smart NIC and send a first heartbeat request message including the identifier of the first process to the second smart NIC. The second smart NIC is used to receive the first heartbeat request message sent by the first smart NIC, record the timestamp corresponding to the identifier of the first process according to the identifier of the first process, wherein the timestamp corresponding to the identifier of the first process is the time when the second smart NIC receives the first heartbeat request message, and send a first heartbeat response message to the first smart NIC.
[0025] Fourthly, a computing device cluster is provided, the computing device cluster including at least one computing device, each computing device including a processor and a memory: the memory for storing instructions; the processor for causing the computing device cluster to perform the method described in the second aspect or any possible implementation of the second aspect, according to the instructions.
[0026] Fifthly, a computer storage medium is provided that stores one or more instructions, which, when executed by one or more computers, cause the one or more computers to perform the method described in the second aspect or any of the possible implementations of the second aspect.
[0027] In a sixth aspect, a computer program product is provided, the computer program product storing instructions that, when executed by a computer, cause the computer to perform the method described in the second aspect or any of the possible implementations of the second aspect. Attached Figure Description
[0028] Figure 1 is a schematic diagram of an implementation scenario involving a data processing method based on a cloud service system provided in an embodiment of this application;
[0029] Figure 2 is a schematic diagram of a cloud service system provided in an embodiment of this application;
[0030] Figure 3 is a flowchart of a data processing method based on a cloud service system provided in an embodiment of this application;
[0031] Figure 4 is a structural schematic diagram of a smart network card provided in an embodiment of this application;
[0032] Figure 5 is a structural schematic diagram of another smart network card provided in an embodiment of this application;
[0033] Figure 6 is a flowchart of another data processing method based on a cloud service system provided in an embodiment of this application;
[0034] Figure 7 is a schematic diagram of the structure of a computing device provided in an embodiment of this application;
[0035] Figure 8 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of this application;
[0036] Figure 9 is a schematic diagram of computing devices in a computing cluster provided in an embodiment of this application being connected via a network. Detailed Implementation
[0037] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.
[0038] To facilitate understanding, the technologies and background involved in the embodiments of this application will be introduced below.
[0039] Cloud computing is a type of distributed computing that refers to a network that centrally manages and schedules a large number of computing and storage resources to provide on-demand services to users. These computing and storage resources are provided through clusters of computing devices located in data centers. Furthermore, cloud computing can provide users with various types of services, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Infrastructure as a Service provides virtual machines or other resources as a service to tenants. Platform as a Service provides a development platform as a service to tenants. Software as a Service provides applications (Apps) as a service to customers.
[0040] An Internet Data Center (IDC) is a facility and related service system that provides operation and maintenance for equipment that centrally collects, stores, processes, and transmits data, based on the Internet. Conceptually, it can be understood as a public, commercial Internet "server room," and it is also a professional IT service and a crucial infrastructure for the IT industry. IDC is not only a service concept but also a network concept; it constitutes part of the network infrastructure resources, like backbone networks and access networks, providing high-end data delivery and high-speed access services. Generally, a tenant's on-premises IDC can be understood as their physical server room, where the tenant utilizes existing Internet communication lines and bandwidth resources to establish a standardized, telecommunications-grade server room environment to provide comprehensive services such as server hosting, leasing, and related value-added services. A cloud data center is an Internet data center deployed using the infrastructure resources owned by cloud vendors.
[0041] A resource pool is a collection of various hardware and software resources involved in a cloud data center. Typically, resources in a resource pool can be categorized by type, such as computing resources, storage resources, and network resources.
[0042] Resource pooling refers to integrating various computing and storage resources into a unified resource pool for unified dynamic allocation and management. Resource pooling enables high resource sharing, improves resource utilization, simplifies resource management, and provides users with flexible on-demand allocation services.
[0043] A physical machine (PM) is the physical resource used to host virtualization technology. It is also called a physical server. Typically, a physical machine is used to deploy virtual instances. A physical machine has multiple physical devices. For example, a physical server has physical devices such as processors and memory. Multiple virtual instances can be deployed on a single physical machine, sharing the machine's physical resources. Depending on the use case, multiple virtual instances deployed on a single physical machine can belong to the same tenant or to different tenants.
[0044] Virtualization is a resource management technology. Virtualization abstracts and transforms various physical resources of a host, such as computing, network, and storage resources, breaking down the indivisible barriers between the host's physical structures. This allows tenants to utilize these resources in a better way than the original configuration. Resources obtained through virtualization are called virtualized resources, and virtualized resources are not limited by the existing physical resource deployment methods, geographical location, or physical configuration.
[0045] Virtualized resources are typically provided to tenants in the form of virtual instances. Virtual instances utilize the host's hardware resources and run on the host's operating system. Applications run within virtual instances to implement the tenant's business logic. The host's hardware resources can be allocated to one or more tenants at the virtual instance level. Different virtual instances are isolated from each other, allowing tenants to use physical resources conveniently and flexibly while maintaining security and isolation, significantly improving the utilization of physical resources. Typically, virtual instances can be virtual machines, containers, or independent processes (such as functions). Virtual instances can also be called Elastic Compute Service (ECS) or Elastic Instances (different cloud service providers may use different names).
[0046] A virtual machine (VM) is a complete computer system with full hardware system functionality, simulated using virtualization technology and running in a completely isolated environment. A subset of the instructions in a VM can be processed on the host machine, while other instructions can be executed in a simulated manner. A VM is also called a virtual server. A VM can be viewed as a collection of virtual devices, which possess full hardware system functionality and run in a completely isolated environment. Virtual devices are created by virtualizing physical devices that can share resources. For example, a virtual processor, created by virtualizing a processor, is a virtual device. Similarly, a training card, created by virtualizing a field-programmable gate array (FPGA), is also a virtual device. For instance, the VM in this application can be a kernel-based virtual machine (KVM). Any task that can be performed on a server can also be performed in a VM. When creating a virtual machine on a server, a portion of the physical machine's hard drive and memory capacity is used as the virtual machine's hard drive and memory capacity. Each virtual machine has its own independent hard drive and operating system, and virtual machine tenants can operate the virtual machine as if it were a server. The runtime environments (such as virtual machine applications, operating systems, and virtual hardware) in different virtual machines are completely isolated, and communication between different virtual machines requires the virtual machine manager to forward network packets.
[0047] Containers utilize the namespace and cgroup technologies supported by the Linux kernel to isolate application processes and their dependencies (the runtime environment's bins / libs, specifically all files required to run the application) within an independent runtime environment. Containers provide a lightweight virtual runtime environment. Containers are created by packaging all the code, libraries, and dependencies of a tenant's application into an image. When the image is executed, it runs in a virtual runtime environment. At this point, the container is a runtime instance of the image, similar to a lightweight sandbox, which can be started, stopped, and deleted. The infrastructure for containers can be server hardware or virtual machines in the cloud (i.e., containers can also be deployed within virtual machines). The operating system uses the Linux kernel and supports namespaces and cgroups. Namespaces are used to isolate processes, while cgroups are used to allocate process resources, specifically virtual processors and memory allocated to the process. The container engine, similar to a virtual machine manager, runs within the operating system and is used to manage containers. Compared to virtual machines, which come with their own operating system, containers do not have an operating system. Instead, containers run as processes within the host machine's operating system. As a result, containers start up faster than virtual machines, making them particularly suitable for lightweight applications. Furthermore, a single host machine can run thousands of containers (processes) simultaneously.
[0048] Network interface card (NIC): also known as network interface controller, network adapter, or local area network receiver, is a type of computer hardware designed to allow hosts or computing devices to communicate over a network.
[0049] Memory (RAM): Also known as internal memory or main memory, its function is to temporarily store the data processed by the CPU, as well as the data exchanged with external storage devices such as hard drives.
[0050] Heartbeat mechanism: In computer science, this refers to a periodic signal, transmitted through hardware or software, to detect whether behavior is normal or consistent with a computer system. Typically, machines send heartbeat packets every few seconds. If the receiving terminal does not receive a heartbeat packet within a specified time (usually within the time interval of several heartbeat packets), the sending terminal will consider the transmission to have failed.
[0051] Heartbeat packet: It is called a heartbeat packet because it is sent at fixed intervals like a heartbeat to tell the server that the client is still alive. As for the content of this packet, there are no special rules, but it is usually a very small packet or an empty packet containing only a header.
[0052] As an example, this application can be applied to cloud scenarios. For ease of description, the cloud scenario used in the embodiments of this application will be described in detail below with reference to Figure 1.
[0053] As exemplified in Figure 1, this cloud scenario may include: the Internet, a client, and a data center providing cloud services. The data center and the client can establish a communication connection via the network. Optionally, this network can be the Internet, or other networks; this embodiment does not limit the scope. Tenants can interact with the data center through the client. For example, a tenant can send cloud service requests and other information to the data center through the client. The data center responds based on the information sent by the client.
[0054] Data centers deploy a large amount of infrastructure owned by cloud service providers, such as computing resources, storage resources, and network resources. For example, computing resources can be computing devices (such as servers) capable of providing computing power. As shown in Figure 1, a data center includes a cloud management platform and infrastructure (not shown in Figure 1). The cloud management platform and infrastructure are connected through an internal network within the data center. The cloud management platform is used to manage the infrastructure. The infrastructure is used to provide public cloud services. In this application, the infrastructure includes servers, smart network interface cards (NICs), and storage. The servers in the infrastructure are used to implement the computing node cluster in the cloud service system of this application, and the smart NICs in the infrastructure are used to implement the smart NIC cluster in the cloud service system of the application. Virtual instances used to implement tenant services are optionally deployed in the computing nodes of the computing node cluster. Tenants can send cloud service requests and related information to the computing nodes (also referred to as hosts) through their clients. The computing nodes can process the cloud service requests and related information and provide cloud services to the tenants based on the processed cloud service requests and related information.
[0055] The cloud management platform can be logically divided into: tenant console, compute management service, network management service, storage management service, authentication service, and image management service. The tenant console provides a user interface or application programming interface (API) for interaction with tenants. The compute management service manages servers running virtual instances and bare metal servers (BMS). The network management service manages network services (such as gateways and firewalls). The storage management service manages storage services (such as data bucket services). The authentication service manages tenant accounts and passwords. The image management service manages virtual instance images.
[0056] In the implementation scenario shown in Figure 1, a data center has multiple servers. The servers consist of a hardware layer and a software layer. The hardware layer comprises the standard server configuration, including hardware devices such as processors, memory, network interface cards (NICs), disks, and buses. The software layer includes the secure operating system running on the server. The operating system relative to the virtual machine can be called the host operating system. The host operating system runs a virtual machine manager (VMM, also known as a hypervisor). The VMM's role is to implement compute virtualization, network virtualization, and storage virtualization for the virtual machines and to manage the virtual machines.
[0057] The virtualization manager runs a cloud management platform client. This client receives control plane commands from the cloud management platform, creates virtual instances on the server based on these commands, and manages these virtual instances throughout their lifecycle. For example, the client can monitor the hardware resource usage of the server in real time and report it to the cloud management platform. When the cloud management platform confirms the need to create a virtual instance on a specific server, it sends a virtual instance creation command to the client on that server. Upon receiving the command, the client creates the virtual instance on that server. In this way, tenants can create, manage, log in to, and operate virtual instances within the data center through the cloud management platform.
[0058] Servers can run virtual machines of different specifications. Virtual machine specifications are categorized as general-purpose computing, memory-optimized, and ultra-large memory, with specific specifications within each category. After a tenant selects a virtual machine specification, the cloud management platform selects a server of that specification in the data center, ensures sufficient idle hardware resources on that server, and then creates a virtual machine of that specification on that server. Configuring servers through the cloud management platform allows for the analysis and planning of server hardware resources. Based on the server's hardware performance, it can plan the corresponding computing products for the physical hardware, such as planning virtual machines of different specifications, to meet the diverse needs of different tenants. Furthermore, differentiated pricing strategies can be implemented based on the performance differences of virtual machines of different specifications. For example, high-performance virtual instances can be sold at a higher price, while ordinary performance virtual instances can be sold at a lower price, allowing tenants to purchase virtual instances as needed.
[0059] It should be understood that the above content is an exemplary description of the implementation scenarios of the data processing method based on a cloud service system provided in the embodiments of this application, and does not constitute a limitation on the implementation scenarios of the data processing method based on a cloud service system. As those skilled in the art will know, the implementation scenarios can be adjusted according to application requirements as business needs change, and the embodiments of this application do not specifically limit them. For example, this application is also applicable to the process of sending and receiving network data in a pooled scenario of a virtual network.
[0060] Driven by the rapid development of cloud technology, cloud vendors are adopting a compute-storage separation architecture to build cloud service systems. This architecture can include isolated compute node clusters and storage node clusters. Compute nodes are used to deploy tenant applications, while storage nodes are used to store the data of these applications. Currently, compute nodes are configured with a one-to-one correspondence with smart network interface cards (NICs), meaning that requests sent by a compute node are forwarded through its corresponding smart NIC. However, as the scale of compute node clusters and storage node clusters continues to expand, the number of processes requiring communication increases linearly with the number of servers and virtual machines.
[0061] In related technologies, to improve end-to-end application performance, multiple processes employ a full-mesh interconnection approach, resulting in hundreds of thousands of inter-process communication connections. However, when communicating between processes via RDMA, the RDMA protocol itself lacks a heartbeat mechanism. Maintaining heartbeat information for each connection at the application layer incurs significant computational overhead.
[0062] To address the aforementioned problems, this application provides a cloud service system and a data processing method based on the cloud service system. This method can be implemented through the cloud service system. Figure 2 is a schematic diagram of the structure of a cloud service system provided in this application embodiment. As shown in Figure 2, the cloud service system includes a computing node cluster and a smart network interface card (NIC) cluster. Multiple processes run on the computing node cluster and the smart NIC cluster. The computing node cluster includes multiple computing nodes, such as a first computing node, a second computing node, and a third computing node, etc., which provide computing resources to the cloud service system. The smart NIC cluster includes multiple smart NICs, such as a first smart NIC, a second smart NIC, and a third smart NIC, etc., which provide network resources to the cloud service. The first smart network card is inserted on the first computing node, the second smart network card is inserted on the second computing node, and the third smart network card is inserted on the third computing node. A first process runs on the first computing node, a second process runs on the second smart network card, and a third process runs on the third computing node. A network connection channel is established between the first smart network card, the second smart network card, and the third smart network card. The first process and the second process have communication requirements, and the second process and the third process have communication requirements.
[0063] In this cloud service system, the first smart network interface card (NIC) is used to obtain the identifier of the first process running on the first computing node and send a first heartbeat request message containing the identifier of the first process to the second smart NIC.
[0064] The second smart network interface card (NIC) is used to receive the first heartbeat request message sent by the first smart network interface card (NIC). Based on the identifier of the first process, it records the timestamp corresponding to the identifier of the first process, wherein the timestamp corresponding to the identifier of the first process is the time when the second smart network interface card receives the first heartbeat request message, and sends a first heartbeat response message to the first smart network interface card.
[0065] After receiving the first heartbeat response message, the first smart network card records the timestamp corresponding to the identifier of the second process. The timestamp corresponding to the identifier of the second process is the time when the first smart network card receives the first heartbeat response message, and the first heartbeat response message carries the identifier of the second process.
[0066] The third smart NIC is used to obtain the identifier of the third process running on the third computing node and send a second heartbeat request message containing the identifier of the third process to the second smart NIC.
[0067] The second smart network interface card (NIC) is used to receive the second heartbeat request message sent by the third smart network interface card (NIC). Based on the identifier of the third process, it records the timestamp corresponding to the identifier of the third process, where the timestamp corresponding to the identifier of the third process is the time when the second smart network interface card receives the second heartbeat request message, and sends a second heartbeat response message to the third smart network interface card.
[0068] It should be noted that compute nodes in a compute node cluster can connect to high-speed interconnect devices via their local interconnect devices (e.g., network interfaces in the compute node's physical network resources) to communicate with smart network interface cards (NICs) through the high-speed interconnect devices. Smart NICs in a smart NIC cluster can communicate with compute nodes in the compute node cluster via one or more high-speed interconnect devices (e.g., various types of switches, etc.; the high-speed interconnect device can provide two sets of ports: one set of ports allows multiple compute nodes to access the high-speed interconnect device, and the other set of ports allows multiple smart NICs to access the high-speed interconnect device). In other words, the high-speed interconnect device can constitute the physical link between the smart NIC cluster and the compute node cluster. It is worth noting that smart NIC clusters can also be connected without a high-speed interconnect device. For example, the multiple computing nodes in a computing node cluster correspond one-to-one with the multiple smart NICs in a smart NIC cluster. That is, each computing node has one smart NIC installed, and any computing node can use not only its own smart NIC but also those installed on other computing nodes. This means the computing node can communicate with other computing nodes or with the smart NICs installed on other computing nodes. Alternatively, smart NICs can also be installed independently of computing nodes, providing both computing and network resources, and communicating with each other. Furthermore, the cloud service system also includes offload card bearer nodes, which have at least one smart NIC installed in the smart NIC cluster. This smart NIC can be shared by multiple computing nodes in the computing node cluster. In other words, the offload card bearer node acts as a channel between the computing node cluster and the smart NIC cluster, allowing the computing node cluster to share the smart NICs in the smart NIC cluster through the offload card bearer node.
[0069] Furthermore, compute nodes in a compute node cluster typically refer to physical instances within the infrastructure. For example, a compute node could be a physical server selected by a cloud management platform, or a bare-metal server selected by the cloud management platform, and so on.
[0070] Furthermore, multiple user-space processes run on the compute node, communicating with each other. To improve end-to-end application performance, a full-mesh interconnection approach is typically used, with processes interconnected pairwise. Additionally, to fully utilize the bandwidth of the smart NIC, multiple logical connections are usually included between two processes. Moreover, user processes can also be deployed on the smart NIC, and these processes require communication with each other.
[0071] Furthermore, for tenant's compute node clusters and smart NIC clusters, these resource pools can be deployed in the same site or different sites. Sites can be presented in various forms, such as a region in the infrastructure, an availability zone in the infrastructure, a data center (DC) in the infrastructure, a room in the infrastructure, a rack in the infrastructure, and so on.
[0072] Furthermore, the communication between the high-speed interconnect device and the computing node, as well as the communication between the high-speed interconnect device and the smart network card, both use proprietary communication protocols, which will not be elaborated here.
[0073] Furthermore, communication between the smart network card and the computing node can use standard communication protocols such as Transmission Control Protocol (TCP) or RDMA.
[0074] Based on the aforementioned cloud service system, it is known that any computing node in the computing node cluster has a smart network interface card (NIC) installed. These smart NICs on each computing node establish communication connections with each other. Each computing node and smart NIC runs multiple processes. A first computing node has a first smart NIC installed, and a second computing node has a second smart NIC installed. A first process runs on the first computing node. The first smart NIC obtains the identifier of the first process running on the first computing node and sends a first heartbeat request message containing the identifier of the first process to the remote second smart NIC. Upon receiving the first heartbeat request message from the first smart NIC, the second smart NIC records the timestamp corresponding to the identifier of the first process, where the timestamp corresponds to the time the second smart NIC received the first heartbeat request message. Subsequently, the second smart NIC sends a first heartbeat response message to the first smart NIC. Therefore, even if there are multiple logical connections between processes, the second smart network card can create only one heartbeat management channel at the process level and the first smart network card. The second smart network card can manage the heartbeat mechanism at the process level, which can reduce the management overhead of the heartbeat mechanism and improve the performance of the cloud service system.
[0075] To further understand the workflow of the aforementioned cloud service system, the data processing method based on the cloud service system is further elaborated below. This method includes two processes: heartbeat information interaction and heartbeat information checking. The heartbeat information interaction process refers to the heartbeat sender periodically sending heartbeat request messages to the heartbeat receiver. Upon receiving the heartbeat request message, the heartbeat receiver returns a heartbeat response message to the heartbeat sender. That is, the first smart network card sends a first heartbeat request message to the second smart network card, and the second smart network card, upon receiving the first heartbeat request message, returns a first heartbeat response message to the first smart network card. The heartbeat information checking process refers to the heartbeat receiver periodically checking the timestamp of the heartbeat request message sent by the heartbeat sender. If no heartbeat request message is received from the heartbeat sender within a preset time, it can be assumed that the connection has been broken or the heartbeat sender has crashed. That is, the second smart network card periodically checks the timestamp of the heartbeat request message sent by the first smart network card. If no heartbeat request message is received from the first smart network card within a preset time, it can be determined that the connection between the first and second smart network cards has been lost.
[0076] The workflow of heartbeat information interaction will be further described below with reference to Figure 3. Figure 3 is a schematic diagram of a data processing method based on a cloud service system provided in this application embodiment. As shown in Figure 3, this method can be implemented through the cloud service system shown in Figure 2. The cloud service system includes infrastructure that provides cloud services to tenants. The infrastructure includes a computing node cluster and a smart network card cluster. The computing node cluster and the smart network card cluster run multiple processes. The computing node cluster includes a first computing node and a second computing node. The smart network card cluster includes a first smart network card and a second smart network card. The first smart network card is inserted on the first computing node, and the second smart network card is inserted on the second computing node. The first computing node runs a first process, and the first smart network card and the second smart network card establish a network connection channel. Since the computing node cluster includes multiple computing nodes, the operations performed on each of these multiple computing nodes are similar. The following description uses the first computing node and the second computing node (the first computing node or the second computing node can be any one of these multiple computing nodes, and similarly, the third computing node can be any one of these multiple computing nodes other than the first computing node and the second computing node) as an example for illustrative purposes, and will not be elaborated further. The method includes:
[0077] In step S301, the first smart network card obtains the identifier of the first process running on the first computing node and sends a first heartbeat request message containing the identifier of the first process to the second smart network card.
[0078] In this embodiment, when the second smart network interface card (NIC) needs to determine whether the first process running on the first computing node is still connected to the second computing node, it can confirm whether the first process running on the first computing node frequently sends messages to the second computing node. If messages from the first process running on the first computing node are frequently received, it can be determined that the first process running on the first computing node is still connected to the second computing node and has not lost connection. However, if the first process running on the first computing node does not frequently send messages to the second computing node, a heartbeat mechanism is needed to determine whether the first process running on the first computing node is still connected to the second computing node. When the first process running on the first computing node does not frequently send messages to the second computing node, it can periodically or at regular intervals send a message for the heartbeat mechanism to the second computing node; this message can also be called a heartbeat request message.
[0079] Specifically, the identifier of the first process running on the first computing node is obtained by the first smart network card inserted on the first computing node. The process identifier (ID) can be a numerical value used by the operating system kernel to uniquely identify the process, and can also be called the process ID or PID.
[0080] After obtaining the identifier of the first process, the first smart network interface card (NIC) can send a first heartbeat request message containing the identifier of the first process to the second smart network interface card (NIC). It should be noted that the first heartbeat request message may also include information associated with the first process. For example, if the identifier of the first process cannot uniquely identify the request, the first heartbeat request message may also include the identifier of the first computing node to uniquely identify the first process running on the first computing node. It should also be noted that the first heartbeat request message can be periodically and proactively sent by the first smart network interface card to the second smart network interface card.
[0081] The purpose of the first heartbeat request message is to inform the second computing node that the first process running on the first computing node is still online and has not lost connection with the second computing node.
[0082] In step S302, the second smart network card receives the first heartbeat request message sent by the first smart network card.
[0083] Step S303: The second smart network card records the timestamp corresponding to the identifier of the first process according to the identifier of the first process, wherein the timestamp corresponding to the identifier of the first process is the time when the second smart network card receives the first heartbeat request message.
[0084] In this embodiment, after receiving the first heartbeat request message, the second smart network interface card (NIC) first parses the first heartbeat request message for the first process to obtain the identifier of the first process. Then, based on the identifier of the first process, the second smart NIC records the timestamp corresponding to the identifier of the first process, wherein the timestamp corresponding to the identifier of the first process is the time when the second smart NIC received the first heartbeat request message.
[0085] In step S304, the second smart network card sends a first heartbeat response message to the first smart network card.
[0086] In this embodiment, when the second smart network card receives the first heartbeat request message, it will send a first heartbeat response message to the first smart network card in response to the first heartbeat request message.
[0087] Specifically, since there is a communication requirement between the first process and the second process, the first heartbeat response message may include the identifier of the second process communicating with the first process. The first smart network interface card (NIC) can record the timestamp corresponding to the identifier of the second process based on the identifier included in the first heartbeat response message. The timestamp corresponding to the identifier of the second process is the time when the first smart network interface card receives the first heartbeat response message. If the first computing node does not receive the second heartbeat response information from the second smart network interface card within a preset time threshold after sending the first heartbeat request message, it can be determined that the connection between the second process running on the second smart network interface card and the first computing node has been lost.
[0088] Therefore, the first heartbeat request message sent by the first smart network card can be used not only by the second smart network card to determine whether the first process has lost connection, but also by the first smart network card to determine whether the second process communicating with the first process has lost connection based on the first heartbeat response message.
[0089] In one possible implementation, as shown in Figure 4, which is a schematic diagram of a smart network interface card (NIC) provided in an embodiment of this application, the smart NIC can be inserted into a computing node or not. For a smart NIC inserted into a computing node, the computing node includes memory, which can be dynamic random-access memory (DRAM). Specifically, the DRAM can be double data rate synchronous dynamic random-access memory (DDR SDRAM or DDR), with a memory capacity of tens of GB and a relatively slow read speed. This memory can also be implemented using other types of memory, which is not specifically limited in this embodiment. For a smart NIC not inserted into a computing node, the memory can be an external memory module, which can be DRAM, DDR, or other types of memory, which is not specifically limited in this embodiment.
[0090] As shown in Figure 4, the smart network interface card (NIC) mainly comprises two processor units: a service process unit (SPU) and a network process unit (NPU). The SPU provides general-purpose computing power, possessing computing and storage resources, upon which service components such as storage, networking, and virtualization can be deployed. The NPU provides network communication resources and has hardware programmability, enabling feature expansion such as storage and network service offloading, and can programmatically process network packet messages. A connection channel is established between the NPU and the SPU. This connection channel can be implemented through bus technology, a high-speed interconnect network, or other communication methods; this embodiment does not specifically limit the specific implementation.
[0091] For example, the aforementioned smart network interface cards may also include, but are not limited to: data processing unit (DPU), smart network interface card (smartNIC), intelligent processing unit (IPU), and smart network interface cards.
[0092] The smart network card also includes memory, which can be static random-access memory (SRAM) with a capacity of tens of MB and a fast read speed. The memory of the smart network card can also be implemented through other memory, but this application embodiment does not specifically limit it.
[0093] It should be understood that the connection channel between the smart network interface card (NIC) and the computing node can be implemented through bus technology, high-speed interconnect networks, or other communication methods. This application does not specifically limit this. As an example, the bus technology may include, but is not limited to: Extended Peripheral Component Interconnect Express (PCIE) bus, Compute Express Link (CXL), Unified Bus (UB), RDMA, etc.
[0094] The functions of each component in the smart network card shown in Figure 4 will be described in detail below.
[0095] The aforementioned SPU includes business logic processing, network middleware, TCP / IP, and OS & Driver. The business logic processing is responsible for handling communication requests; for example, when application software, storage software, and third-party application software need to communicate with remote devices, the business logic processing is responsible for reading and writing data. The network middleware is responsible for encapsulating the underlying communication resource processes. TCP / IP is the protocol stack built into the operating system. The OS & Driver is the driver for the operating system and the smart network interface card.
[0096] The aforementioned NPU includes business logic processing, network middleware, and the transport layer. The business logic processing layer handles some business layer information processing after the communication connection is established; the network middleware encapsulates and connects business logic and communication protocols; and the transport layer is responsible for implementing the network protocol (RDMA protocol).
[0097] In one possible implementation, as shown in Figure 5, which is a schematic diagram of another smart network interface card (NIC) provided in an embodiment of this application, the smart NIC is inserted into a computing node. The computing node includes memory, which can be DRAM. Specifically, the RDMA can be DDR, and the memory can also be implemented using other types of memory; this embodiment of the application does not specifically limit this.
[0098] As shown in Figure 5, the computing node includes business logic processing, network middleware, TCP / IP, and OS & Driver. The business logic processing is responsible for handling communication needs; for example, when application software, storage software, and third-party application software need to communicate with remote devices, the business logic processing is responsible for reading and writing data. The network middleware is responsible for encapsulating the underlying communication resource processes. TCP / IP is the protocol stack built into the operating system. The OS & Driver is the driver for the operating system and the smart network interface card.
[0099] A smart network interface card (NIC) mainly comprises business logic processing, network middleware, and a transport layer. The business logic processing is responsible for processing some business layer information after the communication connection is established; the network middleware is responsible for encapsulating and connecting business logic and communication protocols; and the transport layer network protocol (RDMA protocol) is implemented. The smart NIC also includes memory, which can be static random-access memory (SRAM) with a capacity of tens of MB and a fast read speed. The memory of the smart NIC can also be implemented using other storage devices; this application does not specifically limit this approach.
[0100] It should be understood that the connection channel between the smart network interface card (NIC) and the computing node can be implemented through bus technology, high-speed interconnect networks, or other communication methods. This application does not specifically limit this. As an example, the bus technology may include, but is not limited to: PCIe bus, CXL, Lingqu bus, RDMA, etc.
[0101] In one possible implementation, the second smart network interface card (NIC) is also used to receive a connection establishment request sent by the first smart network interface card (NIC), and to establish a network connection channel between the first and second smart network interface cards based on the connection establishment request.
[0102] Specifically, the network connection channel can be implemented based on the RDMA protocol. At least one logical connection between processes can be established before data exchange can be performed via the RDMA protocol. Therefore, establishing the network connection channel between the first smart network card and the second smart network card is a preparatory work before formal RDMA communication. During the process of establishing the network connection channel, the first process and the second process will exchange some parameters required for subsequent RDMA communication in some way and create at least one logical connection for subsequent communication.
[0103] Optionally, in some embodiments, the network connection channel can be established by the SPU included in the second smart network interface card (NIC). The SPU receives a connection establishment request sent by the first smart NIC and establishes a network connection channel between the first and second smart NICs according to the connection establishment request. Alternatively, the network channel can be established by a second computing node. The second computing node receives a connection establishment request sent by the first smart NIC and establishes a network connection channel between the first and second smart NICs according to the connection establishment request.
[0104] In some possible implementations, the second smart network interface card is also used to create a heartbeat table, which includes an identifier of the first process and a timestamp corresponding to the identifier of the first process.
[0105] Specifically, after the first smart network interface card (NIC) and the second smart NIC establish a network connection channel, the second smart NIC can create a heartbeat table. This heartbeat table records the identifiers of processes running on other smart NICs communicating with the second smart NIC, along with their corresponding timestamps, or the identifiers of processes running on other computing nodes, along with their corresponding timestamps. The heartbeat table may also include the identifiers of computing nodes to which other smart NICs are plugged, or the identifiers of other computing nodes themselves, used to uniquely identify the processes running on those nodes. After receiving a first heartbeat request message from the first smart NIC, the second smart NIC can record the timestamp corresponding to the identifier of the first process in the heartbeat table, i.e., update the timestamp corresponding to the identifier of the first process in the heartbeat table. This heartbeat table is used for subsequent heartbeat information checks, i.e., the second smart NIC uses the process identifiers and their corresponding timestamps recorded in the heartbeat table to determine whether each process maintains a connection with the second smart NIC.
[0106] Optionally, in some embodiments, the SPU included in the second smart network interface card (NIC) is responsible for creating the heartbeat table. After the heartbeat table is created, the SPU can notify the NPU included in the second smart NIC to read the heartbeat table. Alternatively, the second compute node is responsible for creating the heartbeat table. After the heartbeat table is created, the second compute node can notify the second smart NIC to read the heartbeat table.
[0107] In some possible implementations, the computing cluster further includes a third computing node, and the smart NIC cluster further includes a third smart NIC, as shown in Figure 2. The third smart NIC is inserted into the third computing node, and a third process runs on the third computing node. The second and third smart NICs establish a network connection channel. The third smart NIC obtains the identifier of the third process running on the third computing node and sends a second heartbeat request message containing the identifier of the third process to the second smart NIC. The second smart NIC receives the second heartbeat request message sent by the third smart NIC and records the timestamp corresponding to the identifier of the third process, where the timestamp corresponding to the identifier of the third process is the time when the second smart NIC received the second heartbeat request message. Then, the second smart NIC sends a second heartbeat response message to the third smart NIC.
[0108] The workflow of heartbeat information checking will be further described below with reference to Figure 6. Figure 6 is another schematic diagram of the data processing method based on a cloud service system provided in an embodiment of this application.
[0109] Step S601: The second smart network card obtains the timestamp corresponding to the identifier of the first process.
[0110] In this embodiment, the second smart network interface card (NIC) periodically acquires the timestamp corresponding to the identifier of the first process. Since the heartbeat request message is sent periodically or at regular intervals by the first smart NIC, if the first computing node stops sending the first heartbeat request message containing the identifier of the first process, it can be determined that the first process running on the first computing node and the second smart NIC have lost connection.
[0111] In step S602, the second smart network card determines whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold.
[0112] Specifically, in this embodiment, the second smart network card determines whether the difference between the current time and the timestamp corresponding to the identifier of the recorded first process is greater than or equal to a preset threshold. This preset threshold can be set according to communication requirements, and this embodiment does not impose specific limitations on it.
[0113] In step S603, if the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold, the second smart network card determines that the first process has lost connection.
[0114] In this embodiment, if the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold, the second smart network card determines that the first process has lost connection.
[0115] Specifically, the first process includes at least one logical connection for communicating with the second process running on the second smart network interface card (NIC). Upon determining that the first process has lost a connection, the second smart NIC determines the sequence number of the at least one logical connection belonging to the first process based on the identifier of the first process. Then, the second smart NIC disconnects and repairs the at least one logical connection based on its sequence number. In the RDMA protocol, the logical connection can be a queue pair (QP), and the communication between the first and second processes is communication between at least one QP pair.
[0116] This allows for the management of the heartbeat mechanism at the process level.
[0117] In this embodiment, the flowchart of heartbeat information checking shown in Figure 6 can also be implemented in a variety of ways.
[0118] (1) The SPU included in the second smart network card obtains the timestamp corresponding to the identifier of the first process. The SPU determines whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold. If the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold, the SPU determines that the first process has lost connection. The heartbeat table includes the first process and the timestamp corresponding to the identifier of the first process. The heartbeat table is stored in the memory of the second computing node with the second smart network card inserted, that is, the heartbeat table is stored in the DRAM shown in Figure 4.
[0119] In the case of a partially offloaded heartbeat mechanism, the SPU included in the second smart network interface card (NIC) is responsible for checking heartbeat information. The SPU periodically reads the timestamp corresponding to the identifier of each process in the heartbeat table in the memory of the second compute node, checking whether the timestamp corresponding to the identifier of each process has been updated within a preset time. If the difference between the timestamp corresponding to the identifier of the first process and the current time is greater than or equal to a preset threshold, it is determined that the first process has lost its connection, also known as the first process losing its heartbeat information. After determining that the first process has lost its connection, the SPU deletes the identifier of the first process and the timestamp corresponding to the identifier of the first process from the heartbeat table, disconnects at least one logical connection belonging to the first process, and repairs or re-initiates the connection.
[0120] (2) The NPU included in the second smart network interface card (NIC) acquires the timestamp corresponding to the identifier of the first process. The NPU determines whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold. If the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold, the NPU sends a notification message to the SPU included in the second smart NIC. This communication message is used to indicate that the first process has lost connection. The heartbeat table includes the first process and the timestamp corresponding to the identifier of the first process. The heartbeat table is stored in the memory of the second smart NIC, that is, it is stored in the SRAM as shown in Figure 4.
[0121] With the heartbeat mechanism fully offloaded, the NPU included in the second smart network interface card (NIC) is responsible for checking heartbeat information. The NPU periodically reads the timestamp corresponding to each process in the heartbeat table in the memory of the second smart NIC, checking whether the timestamp corresponding to each process's identifier has been updated within a preset time. If the difference between the timestamp corresponding to the identifier of the first process and the current time is greater than or equal to a preset threshold, it is determined that the first process has lost its connection, also known as the first process losing its heartbeat information. After determining that the first process has lost its connection, the NPU notifies the SPU included in the second smart NIC via an event notification, that is, writes the notification information of the first process losing its connection into the Completion Queue (CQ). The NPU then notifies the SPU to read this communication information from the CQ queue via an interrupt mechanism. After reading this notification information, the SPU deletes the identifier of the first process and the timestamp corresponding to the identifier of the first process from the heartbeat table, disconnects at least one logical connection belonging to the first process, and repairs or re-initiates the connection.
[0122] (3) The second computing node obtains the timestamp corresponding to the identifier of the first process. The second computing node determines whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold. If the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold, the second computing node determines that the first process has lost connection. The heartbeat table includes the first process and the timestamp corresponding to the identifier of the first process. The heartbeat table is stored in the memory of the second computing node, that is, it is stored in the DRAM shown in Figure 5.
[0123] In the case of a partially offloaded heartbeat mechanism, the second compute node can also be responsible for checking heartbeat information. The second compute node periodically reads the timestamp corresponding to each process in its memory's heartbeat table, checking whether the timestamp corresponding to each process's identifier has been updated within a preset time. If the difference between the timestamp corresponding to the first process's identifier and the current time is greater than or equal to a preset threshold, it is determined that the first process has lost its connection, also known as the first process losing its heartbeat information. After determining that the first process has lost its connection, the second compute node deletes the first process's identifier and its corresponding timestamp from the heartbeat table, disconnects at least one logical connection belonging to the first process, and repairs or re-initiates the connection.
[0124] It should be noted that the above steps can be referred to in the relevant sections of steps 601 to 603, and will not be repeated here.
[0125] This demonstrates that, since each computing node in the computing node cluster has a smart network interface card (NIC), and these NICs establish communication connections with each other, and each computing node and NIC runs at least one process, the following applies: a first computing node has a first smart NIC, a second computing node has a second smart NIC, and a first process runs on the first computing node. The first smart NIC obtains the identifier of the first process running on the first computing node and sends a first heartbeat request message containing the identifier of the first process to the remote second smart NIC. Upon receiving the first heartbeat request message from the first smart NIC, the second smart NIC records the timestamp corresponding to the identifier of the first process, and then sends a first heartbeat response message to the first smart NIC. In this way, regardless of whether the processes communicate through a single logical connection or multiple logical connections, the second smart NIC interacts with the first process running on the first smart NIC at the process level. Managing the heartbeat mechanism at the process level by the second smart NIC reduces the management overhead of the heartbeat mechanism, thereby improving the performance of the cloud service system. Therefore, the embodiments of this application can implement the heartbeat mechanism at the process level, reducing the overhead of heartbeat management.
[0126] The above describes the cloud service system and data processing method based on the cloud service system according to embodiments of this application. Embodiments of this application also provide a cloud service system, which includes infrastructure providing cloud services to tenants. The infrastructure includes a smart network interface card (NIC) cluster, which runs multiple processes. The smart NIC cluster includes a first smart NIC and a second smart NIC. The first smart NIC runs a first process, and the second smart NIC runs a second process. The first and second smart NICs establish a connection channel. The first smart NIC is used to obtain the identifier of the first process running on the first smart NIC and send a first heartbeat request message including the identifier of the first process to the second smart NIC. The second smart NIC is used to receive the first heartbeat request message sent by the first smart NIC, record the timestamp corresponding to the identifier of the first process (where the timestamp corresponding to the identifier of the first process is the time when the second smart NIC receives the first heartbeat request message), and send a first heartbeat response message to the first smart NIC.
[0127] In one possible implementation, the second smart network card runs a second process, and there is a communication requirement between the first process and the second process. The first smart network card is also used to record the timestamp corresponding to the identifier of the second process after receiving the first heartbeat response message. The timestamp corresponding to the identifier of the second process is the time when the first smart network card receives the first heartbeat response message, and the first heartbeat response message carries the identifier of the second process.
[0128] In one possible implementation, the second smart network interface card (NIC) is used to obtain the timestamp corresponding to the identifier of the first process; the second smart NIC is also used to determine whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold; the second smart NIC is also used to determine that the first process has lost connection if the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold.
[0129] In one possible implementation, the first process includes at least one logical connection for communicating with the second process; the second smart network interface card (NIC) is further configured to determine the serial number of the at least one logical connection belonging to the first process based on the identifier of the first process; the second smart NIC is further configured to disconnect at least one logical connection based on the serial number of the at least one logical connection.
[0130] In one possible implementation, the second smart network interface card is also used to create a heartbeat table, which includes the identifier of the first process and the timestamp corresponding to the identifier of the first process.
[0131] In one possible implementation, the smart NIC cluster further includes a third smart NIC running a third process. A network connection channel is established between the second and third smart NICs. The third smart NIC is used to obtain the identifier of the third process running on it and send a second heartbeat request message containing the identifier of the third process to the second smart NIC. The second smart NIC is used to receive the second heartbeat request message sent by the third smart NIC, record the timestamp corresponding to the identifier of the third process (where the timestamp corresponds to the time the second smart NIC receives the second heartbeat request message), and send a second heartbeat response message to the third smart NIC.
[0132] In one possible implementation, the second smart network interface card (NIC) is further configured to receive a connection establishment request sent by the first smart network interface card (NIC); the second smart network interface card is further configured to establish a network connection channel between the first smart network interface card and the second smart network interface card according to the connection establishment request.
[0133] The cloud service system and data processing method based on the cloud service system of this application have been described above. This application also provides a smart network interface card (NIC) based on the cloud service system. Taking a second smart NIC as an example, the second smart NIC includes a transceiver module and a processing module.
[0134] The transceiver module is used to receive the first heartbeat request message sent by the first smart network card and send the first heartbeat response message to the first smart network card; the processing module is used to record the timestamp corresponding to the identifier of the first process according to the identifier of the first process, wherein the timestamp corresponding to the identifier of the first process is the time when the second smart network card receives the first heartbeat request message.
[0135] In one possible implementation, the processing module is further configured to obtain the timestamp corresponding to the identifier of the first process, determine whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold, and determine that the first process has lost connection if the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold.
[0136] In one possible implementation, the processing module is further configured to determine the sequence number of at least one logical connection belonging to the first process based on the identifier of the first process, and disconnect at least one logical connection based on the sequence number of the at least one logical connection.
[0137] In one possible implementation, the processing module is also used to create a heartbeat table, which includes an identifier of the first process and a timestamp corresponding to the identifier of the first process.
[0138] The functions of both the computing node and the smart network interface card (NIC) can be implemented through software or hardware. For example, the implementation of a computing node will be described below. Similarly, the implementation of a smart NIC can be referenced from that of the computing node.
[0139] As an example of a software functional unit, a compute node may include code running on a compute instance. A compute instance may include at least one of a physical host (compute device), a virtual machine, or a container. Furthermore, the aforementioned compute instance may be one or more. For example, a compute node may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed within the same region or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code may be distributed within the same availability zone (AZ) or in different AZs, each AZ comprising one cloud data center or multiple geographically proximate cloud data centers. Typically, a region may include multiple AZs.
[0140] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.
[0141] As an example of a hardware functional unit, a computing node may include at least one computing device, such as a server. Alternatively, a computing node may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The aforementioned PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.
[0142] A compute node comprises multiple compute devices that can be distributed within the same region or across different regions. Similarly, these compute devices can be distributed within the same Availability Zone (AZ) or across different AZs. Likewise, they can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. These compute devices can be any combination of compute devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0143] It should be noted that, in other embodiments, the steps implemented by the computing node and the smart network card can be specified as needed, and the computing node and the smart network card can respectively implement different functions in the cloud service system to achieve all the functions of the cloud service system.
[0144] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the various components described above can be found in the corresponding content of the aforementioned cloud service system embodiments, and will not be repeated here.
[0145] The following provides examples illustrating the basic hardware structures involved in the embodiments of this application.
[0146] This application also provides a computing device 700. As shown in FIG7, the computing device 700 includes: a bus 702, a processor 704, a memory 706, and a communication interface 708. The processor 704, the memory 706, and the communication interface 708 communicate with each other via the bus 702. The computing device 700 may be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 700.
[0147] Bus 702 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, only one line is used in Figure 7, but this does not imply that there is only one bus or one type of bus. Bus 702 can include pathways for transmitting information between various components of computing device 700 (e.g., memory 706, processor 704, communication interface 708).
[0148] Processor 704 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0149] The memory 706 may include volatile memory, such as random access memory (RAM). The processor 704 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).
[0150] The memory 706 stores executable program code, which the processor 704 executes to implement the functions of the aforementioned computing node and smart network card, thereby realizing the data processing method based on the cloud service system. In other words, the memory 706 stores instructions for executing the data processing method based on the cloud service system.
[0151] The communication interface 708 uses transceiver modules, such as, but not limited to, network interface cards and transceivers, to enable communication between the computing device 700 and other devices or communication networks.
[0152] This application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.
[0153] As shown in Figure 8, the computing device cluster includes at least one computing device 700. The memory 706 of one or more computing devices 700 in the computing device cluster may store the same instructions for executing data processing methods based on cloud service systems.
[0154] In some possible implementations, the memory 706 of one or more computing devices 700 in the computing device cluster may also store partial instructions for executing data processing methods based on the cloud service system. In other words, a combination of one or more computing devices 700 can jointly execute instructions for executing data processing methods based on the cloud service system.
[0155] It should be noted that the memory 706 in different computing devices 700 within the computing device cluster can store different instructions, each used to execute a portion of the cloud service system's functions. That is, the instructions stored in the memory 706 of different computing devices 700 can implement the functions of one or more modules in the computing nodes and smart network interface cards.
[0156] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 9 illustrates one possible implementation. As shown in Figure 9, two computing devices 700A and 700B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this type of possible implementation, the memory 706 in computing device 700A stores instructions for performing the functions of the computing node. Simultaneously, the memory 706 in computing device 700B stores instructions for performing the functions of a smart network interface card (NIC).
[0157] The connection method between the computing device clusters shown in Figure 9 can be considered as follows: taking into account that the data processing method based on the cloud service system provided in this application requires a large amount of data storage, the function implemented by the smart network card is to be performed by the computing device 700B.
[0158] It should be understood that the functions of computing device 700A shown in Figure 9 can also be performed by multiple computing devices 700. Similarly, the functions of computing device 700B can also be performed by multiple computing devices 700.
[0159] This application also provides another computing device cluster. The connection relationship between the computing devices in this computing device cluster can be similarly referred to the connection methods of the computing device clusters in Figures 8 and 9. The difference is that the memory 706 of one or more computing devices 700 in this computing device cluster can store the same instructions for executing data processing methods based on cloud service systems.
[0160] In some possible implementations, the memory 706 of one or more computing devices 700 in the computing device cluster may also store partial instructions for executing data processing methods based on the cloud service system. In other words, a combination of one or more computing devices 700 can jointly execute instructions for executing data processing methods based on the cloud service system.
[0161] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product runs on at least one computing device, it causes the at least one computing device to perform a data processing method based on a cloud service system.
[0162] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center that includes one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to perform a data processing method based on a cloud service system, or instruct the computing device to perform a data processing method based on a cloud service system.
[0163] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.
[0164] It should be noted that all information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in this application have been authorized by the user or fully authorized by all parties, and the collection, use, and processing of related data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the raw data and executable code involved in this application were obtained with full authorization.
[0165] In the embodiments of this application, the terms "first," "second," and "third" are used for descriptive purposes only and should not be construed as indicating or implying relative importance. The term "at least one" refers to one or more, and the term "multiple" refers to two or more, unless otherwise expressly defined.
[0166] In this application, the term "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. Additionally, the character " / " in this document generally indicates that the preceding and following related objects have an "or" relationship.
[0167] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.
Claims
1. A cloud service system, characterized in that, The cloud service system includes infrastructure providing cloud services to tenants. This infrastructure includes a cluster of compute nodes and a cluster of smart network interface cards (NICs). Multiple processes run on the compute node cluster and the smart NIC cluster. The compute node cluster includes a first compute node and a second compute node. The smart NIC cluster includes a first smart NIC and a second smart NIC. The first smart NIC is inserted into the first compute node, and the second smart NIC is inserted into the second compute node. The first compute node runs a first process. The first smart NIC and the second smart NIC establish a network connection channel. The first smart network interface card is used to obtain the identifier of the first process running on the first computing node and send a first heartbeat request message including the identifier of the first process to the second smart network interface card. The second smart network interface card (NIC) is used to receive the first heartbeat request message sent by the first smart network interface card (NIC), record the timestamp corresponding to the identifier of the first process according to the identifier of the first process, wherein the timestamp corresponding to the identifier of the first process is the time when the second smart network interface card receives the first heartbeat request message, and send a first heartbeat response message to the first smart network interface card.
2. The cloud service system according to claim 1, characterized in that, The second smart network card runs a second process, and there is a communication requirement between the first process and the second process. The first smart network interface card (NIC) is further configured to, after receiving the first heartbeat response message, record a timestamp corresponding to the identifier of the second process, wherein the timestamp corresponding to the identifier of the second process is the time when the first smart NIC receives the first heartbeat response message, and the first heartbeat response message carries the identifier of the second process.
3. The cloud service system according to claim 1, characterized in that, The second smart network interface card is used to obtain the timestamp corresponding to the identifier of the first process; The second smart network interface card is also used to determine whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold. The second smart network interface card is further configured to determine that the first process has lost connection if the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold.
4. The cloud service system according to claim 3, characterized in that, The first process includes at least one logical connection for communicating with the second process. The second smart network interface card is further configured to determine the sequence number of at least one logical connection belonging to the first process based on the identifier of the first process; The second smart network interface card is further configured to disconnect the at least one logical connection based on the serial number of the at least one logical connection.
5. The cloud service system according to any one of claims 1 to 4, characterized in that, The second smart network interface card is also used to create a heartbeat table, which includes the identifier of the first process and the timestamp corresponding to the identifier of the first process.
6. The cloud service system according to claim 1, characterized in that, The second computing node is used to obtain the timestamp corresponding to the identifier of the first process; The second computing node is also used to determine whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold. The second computing node is further configured to determine that the first process has lost connection if the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold.
7. The cloud service system according to any one of claims 1 to 6, characterized in that, The computing node cluster also includes a third computing node, and the smart network interface card (NIC) cluster also includes a third smart NIC. The third smart NIC is inserted into the third computing node, and the third computing node runs a third process. A network connection channel is established between the second smart NIC and the third smart NIC. The third smart network interface card is used to obtain the identifier of the third process running on the third computing node, and send a second heartbeat request message including the identifier of the third process to the second smart network interface card. The second smart network interface card (NIC) is used to receive the second heartbeat request message sent by the third smart network interface card (NIC), record the timestamp corresponding to the identifier of the third process according to the identifier of the third process, wherein the timestamp corresponding to the identifier of the third process is the time when the second smart network interface card receives the second heartbeat request message, and send a second heartbeat response message to the third smart network interface card.
8. The cloud service system according to claim 1, characterized in that, The second smart network interface card is also used to receive a connection establishment request sent by the first smart network interface card; The second smart network interface card is further configured to establish the network connection channel between the first smart network interface card and the second smart network interface card according to the connection establishment request.
9. A data processing method based on a cloud service system, characterized in that, The method is applied to a cloud service system, which includes infrastructure providing cloud services to tenants. The infrastructure includes a cluster of compute nodes and a cluster of smart network interface cards (NICs). Multiple processes run on the compute node cluster and the smart NIC cluster. The compute node cluster includes a first compute node and a second compute node. The smart NIC cluster includes a first smart NIC and a second smart NIC. The first smart NIC is inserted into the first compute node, and the second smart NIC is inserted into the second compute node. The first compute node runs a first process, and the first smart NIC and the second smart NIC establish a network connection channel. The method includes: The first smart network card obtains the identifier of the first process running on the first computing node and sends a first heartbeat request message containing the identifier of the first process to the second smart network card; The second smart network card receives the first heartbeat request message sent by the first smart network card; The second smart network card records the timestamp corresponding to the identifier of the first process based on the identifier of the first process, wherein the timestamp corresponding to the identifier of the first process is the time when the second smart network card receives the first heartbeat request message; The second smart network card sends a first heartbeat response message to the first smart network card.
10. The data processing method according to claim 9, characterized in that, The second smart network interface card (NIC) runs a second process. There is a communication requirement between the first and second processes. After the second smart NIC sends a first heartbeat response message to the first smart NIC, it includes: The first smart network card receives the first heartbeat response message, which carries the identifier of the second process; The first smart network card records the timestamp corresponding to the identifier of the second process, and the timestamp corresponding to the identifier of the second process is the time when the first smart network card receives the first heartbeat response message.
11. The data processing method according to claim 9, characterized in that, The method further includes: The second smart network interface card obtains the timestamp corresponding to the identifier of the first process; The second smart network card determines whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold. If the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold, the second smart network card determines that the first process has lost connection.
12. The data processing method according to claim 11, characterized in that, The first process includes at least one logical connection for communicating with the second process, and the method further includes: The second smart network interface card determines the sequence number of at least one logical connection belonging to the first process based on the identifier of the first process; The second smart network card disconnects the at least one logical connection based on the serial number of the at least one logical connection.
13. The data processing method according to any one of claims 9 to 12, characterized in that, The method further includes: The second smart network card creates a heartbeat table, wherein the heartbeat table includes the identifier of the first process and the timestamp corresponding to the identifier of the first process.
14. The data processing method according to claim 9, characterized in that, The method further includes: The second computing node obtains the timestamp corresponding to the identifier of the first process; The second computing node is used to determine whether the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to a preset threshold. If the difference between the current time and the timestamp corresponding to the identifier of the first process is greater than or equal to the preset threshold, the second computing node determines that the first process has lost connection.
15. The data processing method according to any one of claims 9 to 14, characterized in that, The computing node cluster further includes a third computing node, and the smart network interface card (NIC) cluster further includes a third smart NIC. The third smart NIC is inserted into the third computing node, and the third computing node runs a third process. A network connection channel is established between the second smart NIC and the third smart NIC. The method further includes: The third smart network interface card (NIC) obtains the identifier of the third process running on the third computing node and sends a second heartbeat request message containing the identifier of the third process to the second smart NIC. The second smart network card receives the second heartbeat request message sent by the third smart network card; The second smart network card records the timestamp corresponding to the identifier of the third process according to the identifier of the third process, wherein the timestamp corresponding to the identifier of the third process is the time when the second smart network card receives the second heartbeat request message; The second smart network card sends a second heartbeat response message to the third smart network card.
16. The data processing method according to claim 9, characterized in that, The method further includes: The second smart network card receives the connection establishment request sent by the first smart network card; The second smart network interface card (NIC) establishes the network connection channel between the first smart NIC and the second smart NIC based on the connection establishment request.
17. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in any one of claims 9 to 16.
18. A computer program product containing instructions, characterized in that, When the instruction is executed by the computing device cluster, the computing device cluster causes the computing device cluster to perform the method as described in any one of claims 9 to 16.
19. A computer-readable storage medium, characterized in that, Includes computer program instructions, which, when executed by a cluster of computing devices, perform the method as described in any one of claims 9 to 16.