Request processing method and related device

WO2026166435A1PCT designated stage Publication Date: 2026-08-13HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

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

Smart Images

  • Figure CN2026076733_13082026_PF_FP_ABST
    Figure CN2026076733_13082026_PF_FP_ABST
Patent Text Reader

Abstract

A request processing method and a related device. The method is applied to infrastructure managed by a cloud management platform. The method comprises: receiving a first request to be processed (310); on the basis of the type of the first request, determining a target resource subsystem matching the type of the first request (320); on the basis of an identifier of the first request, determining, from a reserved resource pool, a target resource matching the identifier of the first request (330); and on the basis of the target resource, processing the first request (340). In the method, during request processing, a request is processed in a target resource subsystem in a computing node on the basis of the type of the request, and whether a reserved resource pool comprises a reserved resource matching an identifier of the request is determined, so as to process the request on the basis of the reserved resource.
Need to check novelty before this filing date? Find Prior Art

Description

A request processing method and related equipment

[0001] This application claims priority to Chinese Patent Application No. 202510142360.3, filed on February 8, 2025, entitled "A Request Processing Method and Related Equipment", the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of cloud computing, and more specifically, to a request processing method, a request processing apparatus, a cluster of computing devices, a computer program product, and a computer-readable storage medium. Background Technology

[0003] As computing device hardware performance continues to improve, a single computing device can simultaneously execute high-bandwidth and heavy-computation services. High-bandwidth services require significant bandwidth for data transmission, while heavy-computation services require substantial computing resources for computation. Because high-bandwidth and heavy-computation services can interfere with each other, requests from tenants with high latency requirements may be difficult to process in a timely manner, thus failing to meet the latency requirements of those services. Furthermore, the processing path for a request is typically long, usually involving multiple nodes, such as clients, load balancers, application programming interface (API) gateways, business protocol layer nodes, and persistence layer nodes. Processing the request at each node requires frequent resource allocation and release, leading to intense resource contention when multiple requests are processed concurrently. This results in unstable latency for each request, making it difficult to meet the latency requirements of the corresponding service.

[0004] Therefore, how to reduce the latency of request processing to meet the latency requirements of tenants' business has become an urgent problem to be solved. Summary of the Invention

[0005] This application provides a request processing method, a request processing apparatus, a computing device cluster, a computer program product, and a computer-readable storage medium, which can reduce the latency of request processing, thereby meeting the latency requirements of tenants' business.

[0006] Firstly, a request processing method is provided. This method is applied to infrastructure managed by a cloud management platform, which provides cloud services to tenants. This infrastructure includes at least one data center, and each data center has multiple servers. The method includes: receiving a first request from a tenant, the first request including first indication information indicating the type and identifier of the first request; determining a target resource subsystem matching the type of the first request based on the type of the first request, wherein the target resource subsystem includes a reserved resource pool, the reserved resource pool including resources of at least one tenant, and each tenant's resources including at least one of the following: computing resources, storage resources, network resources, and input / output (IO) resources; determining a target resource matching the identifier of the first request from the reserved resource pool based on the identifier of the first request; and processing the first request based on the target resource.

[0007] In this embodiment, when processing a request, the computing node can process the request in the target resource subsystem within the computing node according to the request type, and can determine whether the reserved resource pool includes reserved resources that match the identifier of the request, thereby processing the request based on the reserved resources. Since the computing node can process the request based on the reserved resources, the latency caused by waiting for resource allocation while processing the request can be shortened, thereby reducing the latency of processing the request and meeting the latency requirements of the tenant's business.

[0008] In conjunction with the first aspect, in some implementations, after processing the first request based on the target resource, a second request from the tenant is received. The second request includes second indication information, which is used to indicate the identifier of the second request. The identifier of the second request is the same as the identifier of the first request. The second request is then processed based on the target resource.

[0009] In some embodiments, the identifier of the first request is used to indicate the tenant and / or service to which the first request belongs. The identifier of the second request is used to indicate the tenant and / or service to which the second request belongs.

[0010] In this embodiment of the application, after processing the first request, the computing node does not need to release the target resource, but can keep the target resource in the reserved resource pool, thereby facilitating the processing of the second request. The identifier of the second request is the same as the identifier of the first request, thereby shortening the latency caused by waiting for resource allocation when processing the second request.

[0011] In conjunction with the first aspect, in some implementations, based on the identifier of the first request, it is determined that the reserved resource pool does not contain a target resource that matches the identifier of the first request; and the target resource is allocated to the first request.

[0012] In this embodiment of the application, when the reserved resource pool does not include the target resource, the computing node allocates the target resource to the request to be processed, so as to process the request based on the target resource.

[0013] In conjunction with the first aspect, in some implementations, after allocating the target resource for the first request, the target resource is added to the reserved resource pool.

[0014] In this embodiment of the application, if there is no reserved resource in the reserved resource pool that matches the identifier of the first request, after the first request is processed, the resource used to process the first request is reserved in the reserved resource pool so as to process other requests with the same identifier as the first request.

[0015] In conjunction with the first aspect, in some implementation methods, the resource utilization rate of the reserved resource pool is obtained; if the resource utilization rate is less than or equal to a first preset threshold, the resources in the reserved resource pool are reduced; or, if the resource utilization rate is greater than or equal to a second preset threshold, the resources in the reserved resource pool are increased.

[0016] In conjunction with the first aspect, in some implementations, after reducing the resources in the reserved resource pool, the resource utilization rate in the reserved resource pool is greater than or equal to a third preset threshold, and the third preset threshold is greater than a first preset threshold; or, after increasing the resources in the reserved resource pool, the resource utilization rate in the reserved resource pool is less than or equal to a fourth preset threshold, and the fourth preset threshold is less than a second preset threshold.

[0017] In this embodiment of the application, the computing node can manage the resources in the reserved resource pool, thereby avoiding the waste of resources in the reserved resource pool or the problem of insufficient resources in the reserved resource pool.

[0018] In conjunction with the first aspect, in some implementations, based on the first request, at least one resource group required to process the first request and the number of each type of resource group in the at least one resource group are determined, wherein the at least one resource group includes at least one of the following: a first resource group, a second resource group, and a third resource group, wherein the resources in the first resource group are used to parse and calculate the parameters of the protocol corresponding to the request to be processed, the resources in the second resource group are used to access a set of metadata, and the resources in the third resource group are used to access a set of data; and the resource quantity of the target resource is determined based on the at least one resource group required to process the first request and the number of each type of resource group in the at least one resource group.

[0019] In conjunction with the first aspect, in some implementations, the first request is used to access the target data, and the first resource includes a first resource group, N second resource groups and M third resource groups, wherein N is determined based on the data volume of the first metadata corresponding to the target data and the data volume of the group of metadata, and M is determined based on the data volume of the target data and the data volume of the group of data, and N and M are positive integers.

[0020] In conjunction with the first aspect, in some implementations, the first request is used to access the second metadata. The first resource includes a first resource group and H second resource groups, where H is determined based on the data volume of the second metadata and the data volume of the group of metadata, and H is a positive integer.

[0021] In this embodiment of the application, the computing node determines the type of resource group and the number of each type of resource group required to process the first request based on the function of the first request, thereby determining the resource type and the resource quantity of each type of resource in the target resource, which facilitates the allocation of target resources to the first request to process the first request.

[0022] Secondly, a request processing apparatus is provided. This request processing apparatus is applied to infrastructure managed by a cloud management platform, which provides cloud services to tenants. The infrastructure includes at least one data center, and each data center has multiple servers. The request processing apparatus includes: a transceiver module for receiving a first request from a tenant, the first request including first indication information indicating the type and identifier of the first request; a processing module for determining a target resource subsystem matching the type of the first request based on the type of the first request, wherein the target resource subsystem includes a reserved resource pool, the reserved resource pool including resources of at least one tenant, and each tenant's resources including at least one of the following: computing resources, storage resources, network resources, and I / O resources; the processing module is further configured to determine a target resource matching the identifier of the first request from the reserved resource pool based on the identifier of the first request; and the processing module is further configured to process the first request based on the target resource.

[0023] In conjunction with the second aspect, in some implementations, after processing the first request based on the target resource, the transceiver module is also used to receive a second request from the tenant to be processed. The second request includes second indication information, which is used to indicate the identifier of the second request. The identifier of the second request is the same as the identifier of the first request. The processing module is also used to process the second request based on the target resource.

[0024] In conjunction with the second aspect, in some implementations, the processing module is also used to: determine, based on the identifier of the first request, that the reserved resource pool does not contain a target resource that matches the identifier of the first request; and allocate the target resource to the first request.

[0025] In conjunction with the second aspect, in some implementations, after allocating the target resource for the first request, the processing module is also used to add the target resource to the reserved resource pool.

[0026] In conjunction with the second aspect, in some implementations, the processing module is also used to: obtain the resource utilization rate of the reserved resource pool; determine that the resource utilization rate is less than or equal to a first preset threshold, and reduce the resources in the reserved resource pool; determine that the resource utilization rate is greater than or equal to a second preset threshold, and increase the resources in the reserved resource pool.

[0027] In conjunction with the second aspect, in some implementations, the processing module is further configured to: determine, based on the first request, at least one resource group required for processing the first request and the number of each type of resource group in the at least one resource group, wherein the at least one resource group includes at least one of the following: a first resource group, a second resource group, and a third resource group, wherein the resources in the first resource group are used to parse and calculate the parameters of the protocol corresponding to the request to be processed, the resources in the second resource group are used to access a set of metadata, and the resources in the third resource group are used to access a set of data; and determine the resource type and the resource quantity of each resource in the target resources based on the at least one resource group required for processing the first request and the number of each type of resource group in the at least one resource group.

[0028] In conjunction with the second aspect, in some implementations, the first request is used to access the target data. The first resource includes a first resource group, N second resource groups, and M third resource groups. N is determined based on the data volume of the first metadata corresponding to the target data and the data volume of a set of metadata. M is determined based on the data volume of the target data and the data volume of a set of data. N and M are positive integers.

[0029] In conjunction with the second aspect, in some implementations, the first request is used to access the second metadata. The first resource includes a first resource group and H second resource groups, where H is determined based on the data volume of the second metadata and the data volume of a group of metadata, and H is a positive integer.

[0030] It should be understood that the technical effects achieved by the second aspect or some implementations of the second aspect are similar to those achieved by the first aspect or some implementations of the first aspect, and will not be elaborated here.

[0031] Thirdly, this application provides a computing device cluster, including at least one computing device, each computing device including a processor and a memory; the processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster performs the method in the first aspect or any possible implementation of the first aspect.

[0032] Fourthly, this application provides a computer program product containing instructions that, when executed by a cluster of computer devices, cause the cluster of computer devices to perform the method described in the first aspect or any possible implementation thereof.

[0033] Fifthly, this application provides a computer-readable storage medium including computer program instructions that, when executed by a cluster of computing devices, perform the method described in the first aspect or any possible implementation thereof.

[0034] In a sixth aspect, a chip system is provided, the chip system including logic circuitry for coupling with an input / output interface, through which data is transmitted to perform the method described in the first aspect or any possible implementation thereof. Attached Figure Description

[0035] Figure 1 is a schematic structural diagram of a cloud scenario according to an embodiment of this application.

[0036] Figure 2 is a schematic diagram of the processing path of a request to be processed according to an embodiment of this application.

[0037] Figure 3 is a schematic flowchart of a request processing method according to an embodiment of this application.

[0038] Figure 4 is a schematic structural diagram of a first computing node according to an embodiment of this application.

[0039] Figure 5 is a schematic flowchart of a method for determining a target resource according to an embodiment of this application.

[0040] Figure 6 is a schematic flowchart of a method for managing resources in a reserved resource pool according to an embodiment of this application.

[0041] Figure 7 is a schematic structural diagram of a request processing apparatus according to an embodiment of the present application.

[0042] Figure 8 is a schematic structural diagram of a computing device according to an embodiment of the present application.

[0043] Figure 9 is a schematic structural diagram of a computing device cluster according to an embodiment of the present application.

[0044] Figure 10 is a schematic diagram of a network connection between computing devices 800A and 800B according to an embodiment of this application. Detailed Implementation

[0045] The technical solutions in this application will now be described with reference to the accompanying drawings.

[0046] This application will present various aspects, embodiments, or features relating to a system comprising multiple devices, components, modules, etc. It should be understood and appreciated that individual systems may include additional devices, components, modules, etc., and / or may not include all the devices, components, modules, etc. discussed in conjunction with the accompanying drawings. Furthermore, combinations of these approaches are also possible.

[0047] Furthermore, in the embodiments of this application, the words "exemplary," "for example," etc., are used to indicate that they are examples, illustrations, or descriptions. Any embodiment or design scheme described as "exemplary" in the embodiments of this application should not be construed as being better or more advantageous than other embodiments or design schemes. Specifically, the use of the term "exemplary" is intended to present the concept in a concrete manner.

[0048] The business scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. As those skilled in the art will know, with the evolution of technology and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.

[0049] References to "one embodiment" or "some embodiments" as described in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless otherwise specifically emphasized.

[0050] In this application embodiment, "at least one" refers to one or more, and "more than one" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, and B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0051] The method in this embodiment can be applied to various computing nodes that belong to the infrastructure managed by the cloud management platform and are used to provide cloud services. Specifically, the cloud management platform manages the infrastructure that provides cloud services, which includes at least one cloud data center. Each cloud data center includes at least one computing node, such as a server or computing device. Each computing node includes cloud service resources to provide corresponding cloud services to tenants.

[0052] Figure 1 is a schematic diagram of a cloud service scenario used in this application. As shown in Figure 1, this cloud scenario may include: a cloud management platform 110, the Internet 120, and a client 130. As shown in Figure 1, the cloud management platform 110 is used to manage the infrastructure providing multiple cloud services. The infrastructure includes multiple cloud data centers, each cloud data center includes multiple servers, and each server includes cloud service resources to provide corresponding cloud services to tenants. For example, the cloud service resources may be cloud databases.

[0053] The cloud management platform 110 can be located in a cloud data center. The cloud management platform 110 provides an access interface (such as a user interface or application program interface, API). Tenants can use client 130 to remotely access the access interface to register a cloud account and password on the cloud management platform 110 and log in. After successful authentication of the cloud account and password, the tenant can further select and purchase compute nodes (such as containers, virtual machines, servers, computing devices, etc.) with specific specifications (such as processors, memory, and disks) on the cloud management platform 110. After successful purchase, the cloud management platform 110 provides a remote login account and password for the purchased compute node. The tenant can remotely log in to the compute node through client 130 and install and run the tenant's applications on the compute node. Therefore, tenants can create, manage, log in to, and operate compute nodes in the cloud data center through the cloud management platform 110. The compute node can also be called a cloud server (Elastic Compute Service, ECS) or elastic instance (different cloud service providers may use different names).

[0054] It should be understood that cloud service tenants can be individuals, businesses, schools, hospitals, government agencies, etc.

[0055] The cloud management platform 110 includes, but is not limited to, a user console, compute management services, network management services, storage management services, authentication services, and image management services. The user console provides an interface or API for interaction with tenants. The compute management services manage servers running virtual machines and containers, as well as bare metal servers. The network management services manage network services (such as gateways and firewalls). The storage management services manage storage services (such as data bucket services). The authentication services manage tenant account passwords. The image management services manage virtual machine images. Tenants can log in to the cloud management platform 110 via client 130 and the internet 120 to manage their rented cloud services.

[0056] Cloud servers are one of the most popular forms of computing resource services today, especially in the era of cloud computing, where they are widely used to host websites, applications, databases, and various other applications. When using cloud servers, it is sometimes necessary to configure multiple Internet Protocol (IP) addresses to extend the services offered by applications. For example, building a cluster of web servers, providing services with different network characteristics, or having different clients access the internet all require configuring multiple IP addresses on the cloud server.

[0057] In some embodiments, the computing nodes managed by the cloud management platform 110 receive a first request to be processed from a tenant. This first request is, for example, used to perform a first operation on a first object. The first object is, for example, data or metadata stored in a storage system, and the first operation includes, for example, at least one of the following: reading data, writing data, deleting data, etc. The processing path of the request to be processed is shown in Figure 2. Figure 2 is a schematic diagram of the processing path of the request to be processed. As shown in Figure 2, the user equipment 210 sends the request to be processed to the load balancer 220. The load balancer 220 distributes the received request and sends it to the API gateway 230 based on a load balancing strategy. The API gateway 230 sends the request to the corresponding business protocol layer node 240 according to the API corresponding to the request. The business protocol layer node 240 parses the request according to the protocol corresponding to the request and sends the parsed request to the persistence layer node 250. The persistence layer node 250 accesses data according to the parsed request. This data access includes: reading data or writing data.

[0058] For example, the user equipment 210 belongs to a tenant. For instance, a client is deployed on the user equipment 210, and the tenant generates requests to be processed by calling the corresponding API in the client of the user equipment 210.

[0059] For example, the load balancer 220, API gateway 230, business layer protocol node 240, and persistent layer node 240 belong to the infrastructure managed by the cloud management platform. The load balancer 220 may include, for example, a Linux virtual server (LVS) or an endpoint (EP). The persistent layer node 250 may include, for example, storage devices such as solid-state disks (SSDs) and / or hard disk drives (HDDs). The persistent layer node 250 is used to store data. For example, the persistent layer node 250 is a storage node in a storage system, such as a centralized storage system or a distributed storage system, or a file storage system or an object storage system.

[0060] For example, in an object storage system, the protocol corresponding to the request to be processed includes at least one of the following: Hypertext Transfer Protocol (HTTP), Hypertext Transfer Protocol Secure (HTTPS), Simple Storage Service Protocol (S3), etc. In a file storage system, the protocol corresponding to the request to be processed includes at least one of the following: Network File System (NFS) protocol, Server Message Block (SMB) protocol, Common Internet File System (CIFS) protocol, File Transfer Protocol (FTP), etc.

[0061] For example, after processing a request, the persistence layer node 250 can also send a response message to the service protocol layer 240. When the request is for writing data to the persistence layer node 250, the response message indicates successful data writing. When the request is for reading data from the persistence layer node 250, the response message includes the read data. The service protocol layer 240 can also encapsulate the response message according to the protocol and send it to the API gateway 230. The API gateway 230 can then send the encapsulated response message to the load balancer 230, which in turn can send it to the user equipment 210.

[0062] In the request processing process shown in Figure 2, each node (e.g., any one of the load balancer 220, API gateway 230, business protocol layer node 240, and persistence layer node 250) requires at least one of the following resources for processing the request: computing resources, storage resources, network resources, and IO resources. Since each node needs to request resources for the process handling the request and release the corresponding resources after processing the request, resource contention within each node is intense. Furthermore, when each node is under medium to high load, i.e., when resource utilization within each node is high, the process handling the request may need to queue and wait for resource allocation, resulting in significant queuing latency and consequently, a large overall latency for request processing, making it difficult to meet the tenant's business requirements. Therefore, this application embodiment provides a request processing method that can reduce the latency of request processing, thereby meeting the tenant's business latency requirements.

[0063] Figure 3 is a schematic flowchart of the request processing method provided in an embodiment of this application. The method in Figure 3 can be applied to infrastructure managed by a cloud management platform, such as cloud management platform 110 in Figure 1. The method in Figure 3 can be executed by a first computing node, which belongs to the infrastructure managed by the cloud management platform, and this infrastructure is used to provide cloud services. The first computing node is, for example, any computing node managed by cloud management platform 110 in Figure 1, or any node in Figure 2 (e.g., any one of load balancer 220, API gateway 230, business protocol layer node 240, and persistence layer node 250). The method in Figure 3 includes the following steps.

[0064] 310, Receive the tenant's first pending request.

[0065] The first computing node receives a first request from a tenant, which includes first indication information. This first indication information indicates the type and identifier of the first request.

[0066] In some embodiments, the type of the first request includes whether the service to which the first request belongs has latency requirements.

[0067] In some embodiments, the first indication information used to indicate the type of the first request includes: the first indication information including at least one character, and / or, the first indication information including third indication information. Wherein, the at least one character is used to indicate whether the service to which the first request belongs has latency requirements. The at least one character includes at least one of the following: letters, symbols, numbers, characters, etc. The third indication information is used to indicate that the first request is transmitted based on a target connection. The target connection is provided with first tag information, which is used to indicate whether the service to which the pending request transmitted through the target connection has latency requirements. The first tag information includes at least one character. The at least one character includes at least one of the following: letters, symbols, numbers, characters, etc.

[0068] For example, when the first indication information includes a first string, the first indication information is used to indicate that the service to which the first request belongs has latency requirements. When the first indication information includes a second string, the first indication information is used to indicate that the service to which the first request belongs does not have latency requirements. The first string and the second string are different. This application embodiment does not limit the characters included in the first string and the second string.

[0069] For example, when the first tag information includes a first string, the first tag information is used to indicate that the service to which the pending request transmitted through the target connection belongs has latency requirements. When the first tag information includes a second string, the first tag information is used to indicate that the service to which the pending request transmitted through the target connection belongs does not have latency requirements.

[0070] For example, the third indication information includes at least one of the following: target source address, target destination address, target service port number, target differentiated services code point (DSCP), etc. The target source address is the source address of the target connection, the target destination address is the destination address of the target connection, the target service port number is the service port number of the target connection, and the target DSCP is the DSCP of the target connection.

[0071] For example, when the first indication information includes the third indication information, the first computing node determines, through the third indication information, that the first request is a request transmitted based on the target connection, and thereby determines, based on the first tag information of the target connection, whether the service to which the first request belongs has latency requirements.

[0072] For example, the target connection is a network connection between a tenant's device and a first compute node, the tenant's device being used to run the service to which the first request belongs. This target connection is, for example, an end-to-end connection based on the Transmission Control Protocol (TCP).

[0073] For example, prior to step 310, the tenant's device establishes a target connection with the first computing node. In other words, the tenant's device sends a connection establishment request to the first computing node. This connection establishment request requests the establishment of a target connection for the tenant's service. The connection establishment request includes first tag information. In response to the connection establishment request, the first computing node establishes a target connection for the service. For example, the first computing node determines at least one of the following: source address, destination address, protocol type, service port number, and DSCP corresponding to the target connection. After establishing the target connection, the first computing node stores the first tag information of the target connection so as to determine, based on the first tag information, whether the service to which the request transmitted through the target connection belongs has latency requirements.

[0074] For example, when the connection establishment request is a TCP connection establishment request, the first tag information is located in the option field of the TCP connection establishment request. That is, the option field of the TCP connection establishment request includes the first tag information.

[0075] For example, prior to step 310, the cloud management platform receives first configuration information from the tenant, which is used to configure whether each of the tenant's at least one service has latency requirements. The first indication information is determined based on the first configuration information.

[0076] For example, when the first request is a request of type 99th percentile (P99), the first indication information is used to indicate that the service to which the first request belongs has latency requirements. When the first request is a request of type bits per second (bps) or type transactions per second (tps), the first indication information is used to indicate that the service to which the first request belongs has no latency requirements.

[0077] For example, a P99 type request is typically a small to medium-sized object request, meaning the data volume of the request is relatively small, for example, the data volume of the request is less than or equal to a fifth preset threshold. A P99 type request requires a processing latency less than the P99 latency. The P99 latency is the 99th percentile latency of the processing latency of requests within a time period, sorted in ascending order.

[0078] For example, this type of bps request is generally a request for large object data transfer, meaning the data volume of the request is large, for example, the data volume of the request is greater than a fifth preset threshold. This type of bps request has low or no latency requirements for processing the request. This type of bps request generally has throughput requirements for processing the request, for example, requiring the throughput to be greater than a sixth preset threshold. Processing this type of bps request requires computing nodes to perform calculations such as verification and encryption / decryption, thus requiring significant computing resources. Furthermore, due to the large data volume of this type of bps request, processing it requires substantial memory and NIC resources.

[0079] For example, this type of TPS request is typically a small to medium-sized object request, meaning the data volume of the request is relatively small, for example, the data volume of the request is less than or equal to a fifth preset threshold. This type of TPS request has low or no latency requirements for processing the request. This type of TPS request generally has a requirement on the number of requests processed within a unit of time period, for example, requiring the number of requests processed within a unit of time period to be greater than or equal to a seventh preset threshold. When processing this type of TPS request, each request goes through the entire software stack, thus requiring significant computing resources.

[0080] In some embodiments, the identifier of the first request is used to indicate the tenant and / or business to which the first request belongs.

[0081] In some embodiments, the first indication information used to indicate the identifier of the first request includes: the first indication information includes the identifier information of the tenant to which the first request belongs and / or the identifier information of the service to which the first request belongs, and / or, the first indication information includes third indication information. Wherein, the identifier information of the tenant to which the first request belongs and / or the identifier information of the service to which the first request belongs includes at least one character, the at least one character including at least one of the following: letters, symbols, numbers, characters, etc. The third indication information is used to indicate that the first request is transmitted based on a target connection. The target connection is provided with second tag information, the second tag information being used to indicate the tenant and / or service to which the request to be processed belongs, transmitted through the target connection. For example, the second tag information includes the identifier information of the tenant to which the first request belongs and / or the identifier information of the service to which the first request belongs.

[0082] For example, when the first indication information includes the third indication information, the first computing node determines that the first request is a request transmitted based on the target connection through the third indication information, and then determines the tenant and / or service to which the first request belongs based on the second tag information of the target connection.

[0083] For example, when a tenant's device sends a connection establishment request to a first computing node to establish a target connection, the connection establishment request also includes second tag information.

[0084] In some embodiments, the first request is used to request the performance of a first operation on a first object. Exemplarily, the first object is data or metadata in a target storage system. This application embodiment does not limit the type of the target storage system; for example, the target storage system may be a distributed storage system or a centralized storage system, or it may be a file storage system or an object storage system. When the target storage system is a file storage system, the metadata in the target storage system includes at least one of the following: file identification information, directory identification information, file and directory hierarchy, file size, file creation time, file last access time, file access permissions, file storage location, etc. When the target storage system is an object storage system, the metadata in the target storage system includes at least one of the following: file identification information, file type, file access permissions, file size, file last modification time, object storage location, etc.

[0085] For example, performing a first operation on a first object includes: reading the first object, writing to the first object, deleting the first object, etc.

[0086] In some embodiments, the first compute node stores some data or metadata of the target storage system, meaning the first compute node is a storage node of the target storage system. Alternatively, the first compute node is connected to a second compute node, which is also a storage node of the target storage system.

[0087] 320. Based on the type of the first request, determine the target resource subsystem that matches the type of the first request.

[0088] After receiving the first request, the first computing node determines whether the service to which the first request belongs has latency requirements based on the type of the first request indicated by the first instruction information, thereby determining the target resource subsystem that matches the type of the first request so that the first request can be processed in the target resource subsystem.

[0089] In some embodiments, the first computing node includes a first resource subsystem and a second resource subsystem. The first resource subsystem is used to process requests from services with latency requirements, and the second resource subsystem is used to process requests from services without latency requirements. The first and second resource subsystems include at least one of the following resources: computing resources, storage resources, network resources, and I / O resources. The resources included in the first and second resource subsystems are different.

[0090] For example, the resources in the first resource subsystem are independent of the resources in the second resource subsystem. That is, when processing a request in the first resource subsystem, only the resources in the first resource subsystem can be used, and the resources in the second resource subsystem cannot be used. When processing a request in the second resource subsystem, only the resources in the second resource subsystem can be used, and the resources in the first resource subsystem cannot be used.

[0091] For example, the first computing node includes at least one of the following: multiple processing units, multiple non-uniform memory access (NUMA) nodes, multiple network interface controllers (NICs), and at least one memory. Each of the multiple processing units has computing capabilities, meaning each processing unit includes computing resources. Each of the multiple NUMA nodes includes memory resources, which are part of storage resources. Each of the multiple NICs includes network resources. Each of the at least one memory includes external storage resources, which are part of storage resources. The memory includes, for example, SSDs and / or HDDs. The memory resources are used to store data needed and / or generated by the processing units during computation, and the processing units directly access the memory resources to obtain the required data. The external storage resources are used to store data that the computing node needs to store, and the processing units cannot directly access the external storage resources to obtain the required data.

[0092] For example, processing units in the first computing node that correspond to the same level 3 (L3) cache belong to the same resource subsystem. Since processing units sharing the same L3 cache belong to the same resource subsystem, this resource subsystem processes requests faster, resulting in shorter latency. This application embodiment does not limit the type of processing unit; for example, a processing unit may include one or more cores of a central processing unit (CPU) or a graphics processing unit (GPU).

[0093] For example, memory resources belonging to the same NUMA node in the first computing node belong to the same resource subsystem. Because memory resources belonging to the same NUMA node belong to the same resource subsystem, the data read and write speed of this resource subsystem is faster when processing requests, resulting in shorter latency in processing requests.

[0094] For example, the interrupt request queue of each NIC in the first computing node belongs to the resource subsystem to which the processing unit closest to that NIC belongs. That is, based on the physical distance between each NIC and each processing unit in the first computing node, the processing unit closest to each NIC is determined, and the interrupt request queue of that NIC is assigned to the resource subsystem to which that processing unit belongs. Since the interrupt request queue of each NIC belongs to the resource subsystem to which the processing unit closest to that NIC belongs, the request processing speed is faster in that resource subsystem, resulting in shorter processing latency.

[0095] For example, some or all of the external storage resources of each memory in at least one memory in the first computing node belong to a resource subsystem. The first computing node allocates corresponding external storage resources to each resource subsystem according to the quantity requirements of external storage resources and / or the read / write speed requirements of external storage resources of each resource subsystem.

[0096] For example, the first computing node includes multiple resource subsystems as shown in Figure 4. Figure 4 is a schematic diagram of the first computing node provided in an embodiment of this application. The first computing node 400 in Figure 4 includes a first resource subsystem 410 and a second resource subsystem 420. The first resource subsystem 410 includes multiple processing units 411, multiple level 2 (L2) caches 412, an L3 cache 413, and a NUMA node 414. Among the multiple processing units 411, two processing units 411 share one L2 cache 412, and the other two processing units 411 share another L2 cache 412. The four processing units 411 share one L3 cache 413. The second resource subsystem 420 includes multiple processing units 421, multiple L2 caches 422, an L3 cache 423, and a NUMA node 424. Among the multiple processing units 421, two processing units 421 share one L2 cache 422, and the other two processing units 421 share another L2 cache 422. The four processing units 421 share an L3 cache 423. NUMA node 414 and NUMA node 424 are different NUMA nodes. The first compute node 400 also includes NIC 430 and NIC 440. NIC 430 corresponds to multiple interrupt request queues 415; that is, when NIC 430 receives request information, it generates an interrupt request, which is transmitted to the interrupt request queue 415 to await processing by the processing unit. NIC 440 corresponds to multiple interrupt request queues 425; that is, when NIC 440 receives request information, it generates an interrupt request, which is transmitted to the interrupt request queue 425 to await processing by the processing unit. The shortest physical distance between NIC 430 and each processing unit 411 is less than the shortest physical distance between NIC 430 and each processing unit 421; therefore, the multiple interrupt request queues 415 corresponding to NIC 430 belong to the first resource subsystem 410. The shortest physical distance between NIC 440 and each processing unit 421 is less than the shortest physical distance between NIC 440 and each processing unit 411. Therefore, the multiple interrupt request queues 425 corresponding to NIC 440 belong to the second resource subsystem 420.

[0097] For example, in the case of the first resource subsystem and the second resource subsystem in the first computing node as shown in FIG4, after receiving the first request, the NIC 430 or NIC 440 of the first computing node determines whether the service to which the first request belongs has latency requirements based on the first indication information in the first request. If the service to which the first request belongs has latency requirements, the NIC 430 or NIC 440 transmits the first request to the interrupt request queue 415 in the first resource subsystem 410, thereby processing the first request in the first resource subsystem 410. That is, the first computing node determines the target resource subsystem matching the type of the first request as the first resource subsystem 410. If the service to which the first request belongs does not have latency requirements, the NIC 430 or NIC 440 transmits the first request to the interrupt request queue 425 in the second resource subsystem 420, thereby processing the first request in the second resource subsystem 420. That is, the first computing node determines the target resource subsystem matching the type of the first request as the second resource subsystem 420.

[0098] In some embodiments, when a tenant's device sends a connection establishment request to a first computing node, the first computing node determines a target resource subsystem based on first tag information in the connection establishment request and processes the connection establishment request within the target resource subsystem. When the first tag information indicates that the service to which the pending request transmitted through the target connection belongs has latency requirements, the first computing node determines the first resource subsystem as the target resource subsystem. When the first tag information indicates that the service to which the pending request transmitted through the target connection belongs does not have latency requirements, the first computing node determines the second resource subsystem as the target resource subsystem.

[0099] For example, after receiving a connection establishment request, the NIC of the first computing node parses the connection establishment request and determines the first tag information in the connection establishment request. Based on the first tag information, the NIC of the first computing node routes the connection establishment request to the interrupt request queue in the target resource subsystem, thereby processing the connection establishment request in the target resource subsystem.

[0100] In some embodiments, the first resource subsystem and / or the second resource subsystem include a reserved resource pool, which includes resources of at least one tenant, and the resources of each tenant include at least one of the following: computing resources, storage resources, network resources, and I / O resources.

[0101] 330. Based on the identifier of the first request, determine the target resource that matches the identifier of the first request from the reserved resource pool.

[0102] In some embodiments, after determining a target resource subsystem that matches the type of the first request, the first computing node determines a reserved resource pool within that target resource subsystem. The first computing node determines whether the reserved resource pool includes a target resource that matches the identifier of the first request. The target resource includes at least one of the following resources: computing resources, storage resources, network resources, and I / O resources.

[0103] For example, where the identifier of the first request is used to indicate the tenant and / or business to which the first request belongs, the target resources matching the identifier of the first request include resources reserved for the tenant and / or business to which the first request belongs.

[0104] In some embodiments, the first computing node determines the identifier information of the tenant to which the first request belongs and / or the identifier information of the service to which the first request belongs, based on the first indication information. The first computing node determines whether the target database includes the identifier information of the tenant to which the first request belongs and / or the identifier information of the service to which the first request belongs. The target database includes the identifier information of at least one tenant and / or the identifier information of at least one service corresponding to resources in the reserved resource pool. The at least one service belongs to at least one tenant. When the target database includes the identifier information of the tenant to which the first request belongs and / or the identifier information of the service to which the first request belongs, the first computing node determines that the reserved resource pool includes target resources matching the identifier of the first request. When the target database does not include the identifier information of the tenant to which the first request belongs and / or the identifier information of the service to which the first request belongs, the first computing node determines that the reserved resource pool does not include target resources matching the identifier of the first request.

[0105] For example, the specific form of the target database is not limited in the embodiments of this application. For example, the target database may be represented as a list, matrix, array, database, etc.

[0106] 340. Based on the target resource, process the first request.

[0107] When the reserved resource pool includes the target resource, the first computing node processes the first request based on the target resource.

[0108] In some embodiments, when the first computing node is a storage node of the storage system, processing the first request information by the first computing node includes performing a first operation on a first object in the first computing node. When the second computing node is a storage node of the storage system, and the first computing node is connected to the second computing node, processing the first request information by the first computing node includes parsing the first request information, determining the next-hop node of the first request information, and sending the first request information to the next-hop node. The next-hop node is used to process the first request.

[0109] For example, the next-hop node and the first computing node are deployed on different computing devices.

[0110] For example, when the first computing node belongs to user equipment 210 in FIG2, the next-hop node is, for example, load balancer 220. When the first computing node is load balancer 220, the next-hop node is, for example, API mesh 230. When the first computing node is API gateway 230, the next-hop node is, for example, service protocol layer node 240. When the first computing node is service protocol layer node 240, the next-hop node is, for example, persistence layer node 250. The second computing node is, for example, persistence layer node 250.

[0111] In some embodiments, the first computing node allocates target resources for the first request from a reserved resource pool, thereby processing the first request based on the target resources.

[0112] In some embodiments, after the first computing node processes the first request, the target resource is retained in the reserved resource pool. In other words, after the first computing node processes the first request based on the target resource, it does not release the target resource, but instead retains it in the reserved resource pool.

[0113] Optionally, if the target resource is not included in the reserved resource pool, the first computing node allocates the target resource to the first request and processes the first request based on the target resource. The implementation method of the first computing node processing the first request based on the target resource is described above and will not be repeated here.

[0114] Optionally, the first computing node determines, based on the first request, at least one resource group required to process the first request and the number of each type of resource group within that group. The at least one resource group includes at least one of the following: a first resource group, a second resource group, and a third resource group. Resources in the first resource group are used to parse and compute the parameters of the protocol corresponding to the request to be processed. Resources in the second resource group are used to access a set of metadata, which includes reading or writing a set of metadata. Resources in the third resource group are used to access a set of data, which includes reading or writing a set of data. Based on the at least one resource group required to process the first request and the number of each type of resource group within that group, the first computing node determines the resource type and the resource quantity of each resource in the target resource. The first computing node also determines the resource type and the resource quantity of each resource included in the target resource based on the at least one resource group required to process the first request and the number of each type of resource group. See Figure 5 for a detailed description.

[0115] In some embodiments, prior to step 330, the first computing node determines the resource types and resource quantities included in each resource group. For example, the first computing node determines the resource types and resource quantities in each resource group independently, or the first computing node receives third indication information from other devices connected to the first computing node, which indicates the resource types and resource quantities included in each resource group. These other devices connected to the first computing node may include computing nodes or storage devices, etc.

[0116] For example, the first computing node determines the resource types and resource quantities of each resource group in the first resource group, the second resource group, and the third resource group based on the performance of the hardware in the first computing node. See the description in step 510 for details.

[0117] In some embodiments, when the target resource is not included in the reserved resource pool, the target resource is added to the reserved resource pool after the first computing node processes the first request. In other words, after the first computing node processes the first request based on the target resource, it does not release the target resource, but instead adds it to the reserved resource pool for preservation.

[0118] Optionally, the first computing node determines the resource utilization rate in the reserved resource pool, and then manages the resources in the reserved resource pool based on the resource utilization rate. See Figure 6 for details.

[0119] Optionally, after processing the first request, the first computing node receives a second request from the tenant, which includes second indication information. This second indication information indicates the identifier of the second request, which is the same as the identifier of the first request. The first computing node processes the second request based on the target resource. In other words, after processing the first request, the first computing node does not need to release the resources used to process the first request, but can directly utilize those resources to continue processing the second request with the same identifier as the first request.

[0120] In some embodiments, the first computing node processing the second request based on target resources includes: the first computing node processing the second request based on some or all of the resources in the target resources. For example, when the type of resources required to process the second request is different from the type of resources in the target resources, and / or when the amount of at least one resource required to process the second request is different from the amount of that resource in the target resources, the first computing node processes the second request based on some or all of the resources in the target resources. In other words, the first computing node allocates resources for the second request from a reserved resource pool according to the type of resources required to process the second request and the amount of each type of resource. The resources allocated for the second request may include some or all of the resources in the target resources.

[0121] In some embodiments, the specific implementation of the second indication information indicating the identifier of the second request is similar to the implementation of the first indication information indicating the identifier of the first request, and will not be repeated here.

[0122] In some embodiments, the second indication information is further used to indicate the type of a second request, which is the same as the type of the first request. The specific implementation of the second indication information indicating the type of the second request is similar to the implementation of the first indication information indicating the type of the first request, and will not be repeated here.

[0123] In the method shown in Figure 3, when processing a request, the compute node can process the request in the target resource subsystem within the compute node according to the request type, and can determine whether the reserved resource pool includes reserved resources that match the identifier of the request. Based on these reserved resources, the request is processed. Since the compute node can process requests based on reserved resources, the latency caused by waiting for resource allocation while processing requests can be reduced, thereby lowering the processing latency and meeting the latency requirements of tenant services.

[0124] In some embodiments, one possible implementation of the first computing node in FIG3 determining the target resource is shown in FIG5. FIG5 is a schematic flowchart of the method for determining the target resource provided in the embodiments of this application. The first computing node in FIG5 is similar to the first computing node in FIG3. FIG5 includes the following steps.

[0125] 510. Based on the performance of the hardware in the first computing node, determine the resource types and resource quantities of each resource group in the first resource group, the second resource group, and the third resource group.

[0126] In some embodiments, the performance of the hardware in the first computing node includes at least one of the following: the computing power of the processing unit, the read / write speed and storage capacity of memory resources, the bandwidth of network resources, the read / write speed and storage capacity of external storage resources, etc.

[0127] In some embodiments, the first computing node determines the protocol parsing and computation process required to be performed when processing pending requests generated by each API, based on the function of each API in at least one API. This allows the first computing node to determine, based on the hardware performance of its hardware, the type and quantity of resources required to parse and compute the protocol parameters corresponding to the pending request generated by each API. The at least one API includes at least one API that a tenant's business may invoke. The first computing node determines the resource types and quantities of each resource included in a first resource group based on the resource types and quantities required to parse and compute the protocol parameters corresponding to the pending request generated by each API. For example, the resource types included in the first resource group may include the types of resources required to parse and compute the protocol parameters corresponding to the pending request generated by each API in at least one API, or the types of resources that are used in all of the resources required to parse and compute the protocol parameters corresponding to the pending request generated by each API in at least one API. The resource quantity of each resource included in the first resource group is the maximum of the resource quantities of each resource required to parse and calculate the parameters of the protocol corresponding to the pending request when processing a pending request generated by each API in at least one API, or any one of the mean, median, mode, etc. of the resource quantities of each resource required to parse and calculate the parameters of the protocol corresponding to the pending request when processing a pending request generated by each API in at least one API.

[0128] For example, when processing a pending request generated by the first API, protocol parsing and data integrity verification are required. The first computing node, based on its hardware performance, determines the type and quantity of resources needed for protocol parsing and data integrity verification of the pending request, and thus determines the resource quantity of a first resource group based on the resource type and the quantity of each resource. The first API belongs to at least one of the at least one API.

[0129] In some embodiments, the first computing node determines the amount of resources required to access a set of metadata or data based on the performance of the hardware in the first computing node, thereby determining the amount of resources included in a second resource group or a third resource group. This application embodiment does not limit the amount of data in a set of metadata or data; for example, the amount of data in the set of metadata or data is determined based on the maximum amount of data that the first computing node writes or reads from memory resources or secondary storage resources each time. This maximum amount of data is, for example, 512 kilobytes (KB).

[0130] 520, Based on the first request, determine at least one resource group and the number of each resource group required to process the first request.

[0131] In some embodiments, the first computing node determines, based on the function of the first request, at least one resource group and the number of each resource group required to process the first request.

[0132] For example, when a first request is made to access target data, at least one resource group required to process the first request includes: a first resource group, a second resource group, and a third resource group. The number of first resource groups is 1, the number of second resource groups is N, and the number of third resource groups is M. N is determined based on the data volume of the first metadata corresponding to the target data and the data volume of a set of metadata, where the data volume of the set of metadata is the data volume of a resource in the second resource group accessing a set of metadata. M is determined based on the data volume of the target data and the data volume of a set of data, where the data volume of the set of data is the data volume of a resource in the third resource group accessing a set of data. Accessing the target data includes: reading the target data or writing the target data.

[0133] For example, Where x1 represents the data size of the first metadata, and x represents the data size of a set of metadata. This indicates rounding up to the nearest integer.

[0134] For example, Where y2 represents the amount of data in the target data set, and y represents the amount of data in a set of data.

[0135] For example, when a first request is made to request access to second metadata, at least one resource group required to process the first request includes: a target resource group and a second resource group. The number of target resource groups is 1, and the number of second resource groups is H. The number H is determined based on the data volume of the second metadata and the data volume of a set of metadata. For example, In this context, x2 represents the amount of data in the second metadata. Accessing the second metadata includes either reading or writing the second metadata.

[0136] For example, when a first request is made to request the deletion of target data or second metadata, at least one resource group required to process the first request includes: a target resource group and a second resource group. The number of target resource groups is one, and the number of second resource groups is one.

[0137] 530. Based on at least one resource group required to process the first request and the number of each resource group, determine the resource type and the resource quantity of each resource in the target resource.

[0138] In some embodiments, the resource types in the target resource include: the types of resources included in each of at least one resource group required to process the first request.

[0139] In some embodiments, the resource quantity of each resource in the target resources includes the sum of the resource quantities of each resource in each resource group included in at least one resource group required to process the first request.

[0140] In the method shown in Figure 5, the computing node determines the resource group required to process each pending request generated by the API based on its own hardware performance. This facilitates the determination of the resource type and amount required to process the pending request, thus avoiding resource waste caused by allocating too much resource to the pending request, or avoiding long latency caused by queuing for resource allocation due to allocating too little resource to the pending request.

[0141] In some embodiments, one possible implementation of the first computing node in FIG3 managing resources in the reserved resource pool is shown in FIG6. FIG6 is a schematic flowchart of a method for managing resources in a reserved resource pool provided in an embodiment of this application. The first computing node in FIG6 is similar to the first computing node in FIG3. FIG6 includes the following steps.

[0142] 610. Determine the resource utilization rate in the first resource pool.

[0143] The first computing node determines the resource utilization rate of the first resource pool based on the ratio of the resources currently in use in the first resource pool to the total resources in the first resource pool.

[0144] For example, the first resource pool is a reserved resource pool. Alternatively, the first resource pool is a first sub-resource pool within the reserved resource pool. The reserved resource pool is described in Figure 3.

[0145] For example, the reserved resource pool includes three sub-resource pools: a resource pool including at least one first resource group, a resource pool including at least one second resource group, and a resource pool including at least one third resource group. The first, second, and third resource groups are described in Figure 3 or Figure 5. In other words, the first computing node determines a sub-resource pool based on at least one first resource group corresponding to at least one tenant. The first computing node determines a sub-resource pool based on at least one second resource group corresponding to at least one tenant. The first computing node determines a sub-resource pool based on at least one third resource group corresponding to at least one tenant. The first computing node determines the reserved resource pool based on these three sub-resource pools. The first sub-resource pool is any one of the three sub-resource pools.

[0146] For example, the reserved resource pool includes at least one sub-resource pool, each of which belongs to a tenant, meaning that different sub-resource pools belong to different tenants. The first sub-resource pool belongs to the at least one sub-resource pool.

[0147] For example, the reserved resource pool includes at least one sub-resource pool, each of which belongs to a different service. Different sub-resource pools may belong to the same or different tenants. The first sub-resource pool belongs to the at least one sub-resource pool.

[0148] 620. When the resource utilization rate in the first resource pool is less than or equal to the first preset threshold, reduce the resources in the first resource pool.

[0149] When the resource utilization rate in the first resource pool is less than or equal to the first preset threshold, the first computing node releases part of the resources in the first resource pool and calculates the resource utilization rate in the first resource pool after releasing the part of the resources, so that the resource utilization rate in the first resource pool after releasing the part of the resources is greater than the first preset threshold.

[0150] In some embodiments, after releasing some resources, if the resource utilization rate in the first resource pool is less than a third preset threshold, the first computing node continues to release resources from the first resource pool until the resources in the first resource pool are greater than or equal to the third preset threshold. This application embodiment does not limit the amount of resources released by the first computing node each time. This application embodiment does not limit the specific values ​​of the first preset threshold and the third preset threshold. The third preset threshold is greater than the first preset threshold.

[0151] 630. When the resource utilization rate in the first resource pool is greater than or equal to the second preset threshold, increase the resources in the first resource pool.

[0152] When the resource utilization rate in the first resource pool is greater than or equal to the second preset threshold, the first computing node allocates resources to the first resource pool and calculates the resource utilization rate in the first resource pool after the addition of resources, so that the resource utilization rate in the first resource pool after the addition of resources is less than the second preset threshold.

[0153] In some embodiments, after adding resources, if the resource utilization rate in the first resource pool is greater than a fourth preset threshold, the first computing node continues to allocate resources to the first resource pool until the resources in the first resource pool are less than or equal to the fourth preset threshold. This application embodiment does not limit the amount of resources added by the first computing node each time. This application embodiment does not limit the specific values ​​of the second and fourth preset thresholds. The second preset threshold is greater than the fourth preset threshold.

[0154] For example, the third preset threshold may be the same as or different from the fourth preset threshold, but this application embodiment does not limit this.

[0155] For example, the first preset threshold is 0.3, the second preset threshold is 0.8, the third preset threshold is 0.5, and the fourth preset threshold is 0.5.

[0156] In the method shown in Figure 6, the first computing node can manage the resources in the first resource pool, thereby avoiding the waste of resources in the first resource pool, or avoiding the problem that the resources in the first resource pool are insufficient, which would cause the processing of requests to wait for resource allocation and result in a long delay in processing requests.

[0157] Figure 7 is a schematic structural diagram of a request processing apparatus provided in an embodiment of this application. The request processing apparatus 700 in Figure 7 includes a transceiver module 710 and a processing module 720. The request processing apparatus 700 in Figure 7 can be used to execute the methods provided in the embodiments of this application, such as the methods in Figures 3 to 6. The request processing apparatus 700 in Figure 7 can be applied to the infrastructure managed by the cloud management platform in Figure 1.

[0158] When the request processing device 700 executes the method in FIG3, the transceiver module 710 receives a first request from a tenant and executes step 310 in FIG3. The processing module 720 is used to: determine a target resource subsystem matching the type of the first request based on the type of the first request; determine a target resource matching the identifier of the first request from the reserved resource pool based on the identifier of the first request; and process the first request based on the target resource. The processing module 720 executes steps 320, 330, and 340 in FIG3.

[0159] When the request processing device 700 performs the method in FIG5, the processing module 720 performs steps 510-530 in FIG5.

[0160] When the request processing device 700 performs the method in FIG6, the processing module 720 performs steps 610-630 in FIG6.

[0161] Both the transceiver module 710 and the processing module 720 can be implemented in software or in hardware. For example, the implementation of the processing module 720 will be described below. Similarly, the implementation of the transceiver module 710 can be referenced from the implementation of the processing module 720.

[0162] As an example of a software functional unit, the processing module 720 may include code running on a computing instance. The computing instance may include at least one of a physical host (computing device), a virtual machine, or a container. Further, the aforementioned computing instance may be one or more. For example, the processing module 720 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 including one or more geographically proximate data centers. Typically, a region may include multiple AZs.

[0163] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same 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.

[0164] As an example of a hardware functional unit, the processing module 720 may include at least one computing device, such as a server. Alternatively, the processing module 720 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The 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.

[0165] The processing module 720 includes multiple computing devices that can be distributed within the same region or in different regions. Similarly, the processing module 720 can be distributed within the same Availability Zone (AZ) or in different AZs. Likewise, the processing module 720 can be distributed within the same Virtual Private Cloud (VPC) or in multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0166] Therefore, the modules of the various examples described in the embodiments of this application can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0167] It should be noted that the above embodiments of the device, when executing the above methods, are only illustrative examples of the division of functional modules. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. For example, the transceiver module 710 can be used to execute any step in the above methods, and the processing module 720 can be used to execute any step in the above methods. The steps implemented by the transceiver module 710 and the processing module 720 can be specified as needed, and the above devices can achieve all functions by implementing different steps in the above methods through the transceiver module 710 and the processing module 720 respectively.

[0168] Furthermore, the apparatus and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process can be found in the method embodiments above, which will not be repeated here.

[0169] The method provided in this application can be executed by a computing device, which can also be referred to as a computer system. It includes a hardware layer, an operating system layer running on top of the hardware layer, and an application layer running on the operating system layer. The hardware layer includes hardware such as processing units, memory, and memory control units; the functions and structure of this hardware will be described in detail later. The operating system can be any one or more computer operating systems that implement business processing through processes, such as Linux, Unix, Android, iOS, or Windows. The application layer includes applications such as browsers, address books, word processing software, and instant messaging software. Optionally, the computer system can be a handheld device such as a smartphone, or a terminal device such as a personal computer; this application does not particularly limit this, as long as the method provided in this application can be used. The executing entity of the method provided in this application can be a computing device, or a functional module within the computing device capable of calling and executing programs.

[0170] Figure 8 is a schematic structural block diagram of a computing device 800 provided in an embodiment of this application. The computing device 800 can be a server, a computer, or other device with computing capabilities. The computing device 800 shown in Figure 8 includes at least one processor 810 and a memory 820.

[0171] It should be understood that this application does not limit the number of processors and memories in the computing device 800.

[0172] The processor 810 executes instructions in the memory 820, causing the computing device 800 to implement the method provided in this application. Alternatively, the processor 810 executes instructions in the memory 820, causing the computing device 800 to implement the various functional modules provided in this application, thereby implementing the method provided in this application.

[0173] Optionally, the computing device 800 also includes a communication interface 830. The communication interface 830 uses a transceiver module, such as, but not limited to, a network interface card or a transceiver, to enable communication between the computing device 800 and other devices or communication networks.

[0174] Optionally, the computing device 800 also includes a system bus 840, wherein the processor 810, memory 820, and communication interface 830 are respectively connected to the system bus 840. The processor 810 can access the memory 820 through the system bus 840; for example, the processor 810 can perform data read / write or code execution in the memory 820 through the system bus 840. The system bus 840 is a peripheral component interconnect express (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The system bus 840 is divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is used to represent it in Figure 8, but this does not mean that there is only one bus or one type of bus.

[0175] In one possible implementation, the processor 810 primarily functions to interpret the instructions (or code) of a computer program and process data within the computer software. The instructions of the computer program and the data within the computer software can be stored in the memory 820 or the cache of the processor 810.

[0176] Optionally, the processor 810 may be an integrated circuit chip with signal processing capabilities. By way of example and not limitation, the processor 810 may be a general-purpose processor, a digital signal processor (DSP), an ASIC, an FPGA, or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. Among these, a general-purpose processor is a microprocessor, etc. For example, the processor 810 may be a central processing unit (CPU).

[0177] The memory 820 provides runtime space for processes in the computing device 800. For example, the memory 820 stores the computer program (specifically, the program code) used to generate the process. After the computer program is run by the processor to generate a process, the processor allocates corresponding storage space for the process in the memory 820. Furthermore, the aforementioned storage space further includes text segments, initialized data segments, bit initialized data segments, stack segments, heap segments, etc. The memory 820 stores data generated during the process's execution, such as intermediate data or process data, in the aforementioned process-specific storage space.

[0178] Optionally, the memory, also known as RAM, is used to temporarily store the data processed by the processor 810, as well as data exchanged with external storage devices such as hard disks. As long as the computer is running, the processor 810 will load the data required for processing into RAM for computation, and then transfer the result back out after the computation is complete.

[0179] By way of example and not limitation, memory 820 may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile storage medium may be, for example, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory is random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus DRAM (DRDRAM). It should be noted that the memory 820 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0180] The structures of the computing device 800 listed above are merely illustrative and are not limited thereto. The computing device 800 in this application includes various hardware components in existing computer systems. For example, the computing device 800 also includes other memories besides the memory 820, such as disk storage. Those skilled in the art should understand that the computing device 800 may also include other devices necessary for normal operation. Furthermore, depending on specific needs, those skilled in the art should understand that the computing device 800 may also include hardware devices for implementing other additional functions. In addition, those skilled in the art should understand that the computing device 800 may only include the devices necessary for implementing the embodiments of this application, and not necessarily all the devices shown in FIG8.

[0181] This application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device may be a server. In some embodiments, the computing device may also be a desktop computer, a laptop computer, or a smartphone, or other terminal device.

[0182] As shown in Figure 9, the computing device cluster includes at least one computing device 800. The memory 820 of one or more computing devices 800 in the computing device cluster may store the same instructions for performing the above-described methods.

[0183] In some possible implementations, the memory 820 of one or more computing devices 800 in the computing device cluster may also each store a portion of the instructions for executing the above-described method. In other words, a combination of one or more computing devices 800 can jointly execute the instructions of the above-described method.

[0184] It should be noted that the memories 820 in different computing devices 800 within the computing device cluster can store different instructions, each used to execute a portion of the functions of the aforementioned device. That is, the instructions stored in the memories 820 of different computing devices 800 can implement the functions of one or more modules within the aforementioned device.

[0185] 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 10 illustrates one possible implementation. As shown in Figure 10, two computing devices, 800A and 800B, are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device.

[0186] It should be understood that the functions of computing device 800A shown in Figure 10 can also be performed by multiple computing devices 800. Similarly, the functions of computing device 800B can also be performed by multiple computing devices 800.

[0187] In this embodiment of the application, a computer program product containing instructions is also provided. The computer program product may be software or a program product containing instructions that can run on a computing device cluster or be stored on any available medium. When run by the computing device cluster, it causes the computing device cluster to perform the methods provided above, or causes the computing device cluster to perform the functions of the apparatus provided above.

[0188] This application embodiment 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 containing 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., high-density digital video disc (DVD)), or a semiconductor medium (e.g., a solid-state drive). The computer-readable storage medium includes instructions that, when executed by a cluster of computing devices, cause the cluster of computing devices to perform the method provided above.

[0189] In this application embodiment, a chip system is also provided. The chip system includes logic circuitry for coupling with an input / output interface to transmit data via the input / output interface, thereby executing the methods provided above.

[0190] In this embodiment of the application, a request processing system is also provided. The system includes multiple of the aforementioned first computing nodes.

[0191] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0192] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0193] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0194] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0195] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0196] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0197] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A request processing method, characterized in that, The method is applied to infrastructure managed by a cloud management platform, the infrastructure being used to provide cloud services to tenants, the infrastructure including at least one data center, each data center having multiple servers, and the method comprising: Receive a first request to be processed from the tenant, the first request including first indication information, the first indication information being used to indicate the type of the first request and the identifier of the first request; Based on the type of the first request, a target resource subsystem matching the type of the first request is determined, wherein the target resource subsystem includes a reserved resource pool, the reserved resource pool includes resources of at least one tenant, and the resources of each tenant include at least one of the following resources: computing resources, storage resources, network resources, and input / output I / O resources; Based on the identifier of the first request, a target resource matching the identifier of the first request is determined from the reserved resource pool; Based on the target resource, process the first request.

2. The method according to claim 1, characterized in that, After processing the first request based on the target resource, the method further includes: Receive a second request from the tenant to be processed, the second request including second indication information, the second indication information being used to indicate the identifier of the second request, the identifier of the second request being the same as the identifier of the first request; Based on the target resource, process the second request.

3. The method according to claim 1 or 2, characterized in that, The step of determining the target resource matching the identifier of the first request from the reserved resource pool based on the identifier of the first request includes: Based on the identifier of the first request, it is determined that the reserved resource pool does not contain a target resource that matches the identifier of the first request; Allocate the target resource for the first request.

4. The method according to claim 3, characterized in that, After allocating the target resource for the first request, the process includes: Add the target resource to the reserved resource pool.

5. The method according to any one of claims 1 to 4, characterized in that, The method further includes: Obtain the resource utilization rate of the reserved resource pool; If the resource utilization rate is determined to be less than or equal to a first preset threshold, the resources in the reserved resource pool are reduced. If the resource utilization rate is determined to be greater than or equal to a second preset threshold, the resources in the reserved resource pool are increased.

6. The method according to any one of claims 1 to 5, characterized in that, The method further includes: Based on the first request, determine at least one resource group required to process the first request and the number of each type of resource group in the at least one resource group, wherein the at least one resource group includes at least one of the following: a first resource group, a second resource group, and a third resource group, wherein the resources in the first resource group are used to parse and calculate the parameters of the protocol corresponding to the request to be processed, the resources in the second resource group are used to access a set of metadata, and the resources in the third resource group are used to access a set of data; Based on at least one resource group required to process the first request and the number of each resource group in the at least one resource group, the resource type and the resource quantity of each resource in the target resource are determined.

7. The method according to claim 6, characterized in that, The first request is used to access target data. The first resource includes a first resource group, N second resource groups and M third resource groups, wherein N is determined based on the data volume of the first metadata corresponding to the target data and the data volume of the group of metadata, and M is determined based on the data volume of the target data and the data volume of the group of data. Both N and M are positive integers.

8. The method according to claim 6, characterized in that, The first request is used to access the second metadata. The first resource includes a first resource group and H second resource groups, wherein H is determined based on the data volume of the second metadata and the data volume of the group of metadata, and H is a positive integer.

9. A request processing apparatus, characterized in that, The request processing device is applied to infrastructure managed by a cloud management platform. This infrastructure provides cloud services to tenants and includes at least one data center, each data center having multiple servers. The request processing device includes: The transceiver module is used to receive a first request to be processed from the tenant. The first request includes first indication information, which is used to indicate the type of the first request and the identifier of the first request. The processing module is configured to determine a target resource subsystem that matches the type of the first request based on the type of the first request, wherein the target resource subsystem includes a reserved resource pool, the reserved resource pool includes resources of at least one tenant, and the resources of each tenant include at least one of the following resources: computing resources, storage resources, network resources, and input / output I / O resources; The processing module is further configured to determine, based on the identifier of the first request, a target resource matching the identifier of the first request from the reserved resource pool; The processing module is further configured to process the first request based on the target resource.

10. The request processing apparatus according to claim 9, characterized in that, After processing the first request based on the target resource, the transceiver module is further configured to receive a second request to be processed from the tenant. The second request includes second indication information, which is used to indicate the identifier of the second request. The identifier of the second request is the same as the identifier of the first request. The processing module is also configured to process the second request based on the target resource.

11. The request processing apparatus according to claim 9 or 10, characterized in that, The processing module is further configured to: Based on the identifier of the first request, it is determined that the reserved resource pool does not contain a target resource that matches the identifier of the first request; Allocate the target resource for the first request.

12. The request processing apparatus according to any one of claims 9 to 11, characterized in that, After allocating the target resource to the first request, the processing module is further configured to add the target resource to the reserved resource pool.

13. The request processing apparatus according to any one of claims 9 to 12, characterized in that, The processing module is also used for: Obtain the resource utilization rate of the reserved resource pool; If the resource utilization rate is determined to be less than or equal to a first preset threshold, the resources in the reserved resource pool are reduced. If the resource utilization rate is determined to be greater than or equal to a second preset threshold, the resources in the reserved resource pool are increased.

14. The request processing apparatus according to any one of claims 9 to 13, characterized in that, The processing module is further configured to: Based on the first request, determine at least one resource group required to process the first request and the number of each type of resource group in the at least one resource group, wherein the at least one resource group includes at least one of the following: a first resource group, a second resource group, and a third resource group, wherein the resources in the first resource group are used to parse and calculate the parameters of the protocol corresponding to the request to be processed, the resources in the second resource group are used to access a set of metadata, and the resources in the third resource group are used to access a set of data; Based on at least one resource group required to process the first request and the number of each resource group in the at least one resource group, the resource type and the resource quantity of each resource in the target resource are determined.

15. The request processing apparatus according to claim 14, characterized in that, The first request is used to access target data. The first resource includes a first resource group, N second resource groups and M third resource groups, wherein N is determined based on the data volume of the first metadata corresponding to the target data and the data volume of the group of metadata, M is determined based on the data volume of the target data and the data volume of the group of data, and N and M are positive integers.

16. The request processing apparatus according to claim 14, characterized in that, The first request is used to access the second metadata. The first resource includes a first resource group and H second resource groups, wherein H is determined based on the data volume of the second metadata and the data volume of the group of metadata, and H is a positive integer.

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 1 to 8.

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 1 to 8.

19. A computer-readable storage medium, characterized in that, It includes computer program instructions, which, when executed by a cluster of computing devices, perform the method as described in any one of claims 1 to 8.