A resource scheduling method, device, electronic device and medium in a CDN network

The described method enhances CDN networks by dynamically adjusting resource allocation based on user request consumption and available resources, addressing inefficiencies in existing systems by optimizing scheduling to meet varying business demands and traffic patterns.

CN115766870BActive Publication Date: 2025-07-15ALIBABA (CHINA) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211402992.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-09
Publication Date
2025-07-15
Estimated Expiration
2042-11-09

AI Technical Summary

Technical Problem

The existing CDN network cannot adapt to the needs of different business types in resource scheduling, and cannot flexibly make dynamic adjustments, resulting in unreasonable resource allocation and inability to meet real-time business changes.

Method used

By deploying the user-submitted execution programs and execution engines on the CDN edge node, the ratio of resources to be consumed and resources that can be provided is calculated, the scheduling target is determined, and user requests are combined and scheduled based on the scheduling target, multiple sets to be dispatched are constructed to achieve dynamic adaptive adjustment.

Benefits of technology

It realizes dynamic adaptive adjustment of resource scheduling, meets real-time business changes, ensures reasonable allocation of resources, and improves resource access speed and load balancing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115766870B_ABST
    Figure CN115766870B_ABST
Patent Text Reader

Abstract

An embodiment of this specification provides a resource scheduling method in a CDN network, which is applied to any CDN edge node in the CDN network, and includes: in response to a set of user requests for triggering the execution of a program, calculating the resources to be consumed by executing the execution programs corresponding to the user requests in the set of user requests; calculating the ratio of the resources to be consumed to the resources that the CDN edge node can provide for the execution programs, and determining a scheduling target for the set of user requests based on the calculated ratio; based on the scheduling target, combining the user requests in the set of user requests to construct multiple sets to be scheduled, and scheduling the multiple sets to be scheduled to different execution engines respectively, so that the execution engines execute the execution programs corresponding to the user requests in the sets to be scheduled deployed on the CDN edge node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This specification relates to the field of computer technology, and particularly to a resource scheduling method, apparatus, electronic device, and medium in a CDN network. Background Art

[0002] A CDN (Content Delivery Network) refers to a distributed network established and covering the bearer network, consisting of edge node server groups distributed in different regions. The basic principle of a CDN is to widely use various cache servers, distribute these cache servers to regions or networks where user access is relatively concentrated. When a user accesses a website, the global load technology is used to direct the user's access to the nearest normally working cache server, and the cache server directly responds to the user's request.

[0003] For example, assume that the server of a certain website is in Beijing. Then, when a user in Hangzhou wants to obtain data on the server, due to the need to span a long distance, the access speed will be very slow. However, if multiple servers located in different regions are established through CDN technology, such as servers located in Shanghai, Wuhan, and Guangzhou respectively, and the data of the website's server is cached on these servers, then the user in Hangzhou can access the server in Shanghai, which is the nearest to Hangzhou, to obtain relevant content, greatly improving the user's access speed.

[0004] Among them, in order to reduce network congestion and improve the response speed during user access, load balancing can be achieved through resource scheduling. For example, through the proportional fairness algorithm and the round-robin algorithm, a large number of user requests can be evenly distributed to each machine associated with the CDN node to ensure that the resource pressure on each machine is as consistent as possible. Summary of the Invention

[0005] In view of this, one or more embodiments of this specification provide a resource scheduling method, apparatus, electronic device, and medium in a CDN network to solve the problems existing in the related art.

[0006] To achieve the above object, one or more embodiments of this specification provide the following technical solutions:

[0007] According to the first aspect of the embodiments of this specification, a resource scheduling method in a CDN network is provided. At least part of the CDN edge nodes in the CDN network are deployed with an execution program submitted by a user; wherein, at least one execution engine for executing the execution program is also running on at least part of the CDN edge nodes; the method is applied to any CDN edge node in the CDN network; and includes:

[0008] In response to the obtained set of user requests for triggering the execution of the execution program, calculate the resources to be consumed by the execution program corresponding to the user requests in the set of user requests;

[0009] Calculate the ratio of the resources to be consumed to the resources that the CDN edge node can provide to the execution program, and determine the scheduling target for the set of user requests based on the calculated ratio;

[0010] Based on the scheduling target, combine the user requests in the set of user requests to construct multiple sets to be scheduled, and schedule the multiple sets to be scheduled to different execution engines respectively, so that the execution engines execute the execution programs corresponding to the user requests in the sets to be scheduled deployed on the CDN edge node.

[0011] According to the second aspect of the embodiments of the present specification, there is provided a resource scheduling device in a CDN network, where at least some CDN edge nodes in the CDN network deploy execution programs submitted by users; wherein, at least one execution engine for executing the execution programs is also running on at least some of the CDN edge nodes; the device is applied to any CDN edge node in the CDN network; including:

[0012] A first calculation module, in response to the obtained set of user requests for triggering the execution of the execution program, calculates the resources to be consumed by the execution program corresponding to the user requests in the set of user requests;

[0013] A second calculation module, calculates the ratio of the resources to be consumed to the resources that the CDN edge node can provide to the execution program, and determines the scheduling target for the set of user requests based on the calculated ratio;

[0014] A first scheduling module, based on the scheduling target, combines the user requests in the set of user requests to construct multiple sets to be scheduled, and schedules the multiple sets to be scheduled to different execution engines respectively, so that the execution engines execute the execution programs corresponding to the user requests in the sets to be scheduled deployed on the CDN edge node.

[0015] According to the third aspect of the embodiments of the present specification, there is provided an electronic device, including a communication interface, a processor, a memory, and a bus, and the communication interface, the processor, and the memory are interconnected through the bus;

[0016] Machine-readable instructions are stored in the memory, and the processor executes the above method by calling the machine-readable instructions.

[0017] According to a fourth aspect of the embodiments of the present specification, a machine-readable storage medium is provided. The machine-readable storage medium stores machine-readable instructions, and when the machine-readable instructions are called and executed by a processor, the above method is implemented.

[0018] The technical solutions provided by the embodiments of the present specification may include the following beneficial effects:

[0019] Through the above technical solutions, on the one hand, by obtaining the set of user requests to calculate the resources to be consumed and obtaining the resources that can be provided by the CDN edge nodes, the current real-time resource status can be determined, and the scheduling target can be determined by the ratio of the resources to be consumed to the resources that can be provided. Different resource statuses correspond to different scheduling targets, so that the resource scheduling can better meet the real-time business changes; on the other hand, by combining user requests based on the scheduling target to construct multiple sets to be scheduled, scheduling schemes that meet different scheduling targets can be obtained, realizing the dynamic adaptive adjustment of scheduling and ensuring the reasonable allocation of resources. Description of the Drawings

[0020] Figure 1 It is a schematic diagram of a CDN processing flow provided by an exemplary embodiment of the present specification;

[0021] Figure 2 It is a flowchart of a resource scheduling method in a CDN network provided by an exemplary embodiment of the present specification;

[0022] Figure 3 It is a schematic diagram of a resource scheduling method in a CDN network provided by an exemplary embodiment of the present specification;

[0023] Figure 4 It is a schematic diagram of the structure of an electronic device where a resource scheduling device in a CDN network provided by an exemplary embodiment of the present specification is located;

[0024] Figure 5 It is a block diagram of a resource scheduling device in a CDN network provided by an exemplary embodiment of the present specification. Detailed Embodiments

[0025] Here, the exemplary embodiments will be described in detail, and the examples are shown in the drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with one or more embodiments of the present specification. On the contrary, they are only examples of devices and methods that are consistent with some aspects of one or more embodiments of the present specification as detailed in the appended claims.

[0026] It should be noted that: in other embodiments, the steps of the corresponding method are not necessarily executed in the order shown and described in this specification. In some other embodiments, the steps included in the method may be more or less than those described in this specification. In addition, a single step described in this specification may be decomposed into multiple steps for description in other embodiments; and multiple steps described in this specification may also be combined into a single step for description in other embodiments.

[0027] The resource scheduling method in the CDN network of this specification will be described in detail below with reference to the accompanying drawings.

[0028] Please refer to Figure 1 , Figure 1 which is a schematic diagram of a CDN processing flow provided by an exemplary embodiment of this specification. As Figure 1 shown, the traditional processing flow for user requests is indicated by the dotted arrow. After the CDN edge gateway receives a request from the client, it reads the data in the CDN edge cache and returns it to the client. If the data in the CDN edge cache is not read, it will request the origin server, cache it in the CDN edge cache, and then return it to the client.

[0029] In this specification, after a code execution environment is run in the CDN edge node, in addition to caching and distribution, the CDN edge node also has the ability to perform in-place distributed computing. There is no need to hand over the computing logic to the origin server for execution, reducing server consumption. By deploying the execution programs submitted by different users in the code execution environment and using the execution engine in the code execution environment to respond to user requests, the ability to perform computing directly in the CDN edge node can be provided. Computing can be performed by executing the user's execution program and returned to the client through the CDN edge gateway. The computing results can also be stored in the CDN edge cache for subsequent reuse, and the computing results can be directly read from the CDN edge cache later.

[0030] It can be understood that, on the one hand, since the traditional CDN service only provides caching and distribution services and lacks the ability to provide computing, the computing logic needs to be executed by the server, resulting in a relatively long time-consuming for user requests; on the other hand, since the traditional resource scheduling method is applicable to scenarios where the resource consumption of user requests is relatively fixed, and there are significant differences in the logic and business types of the execution programs submitted by different users, the resources consumed by different user requests may vary greatly. Obviously, the traditional resource scheduling method cannot meet the needs of adapting to different business types, cannot be flexibly adjusted dynamically, and the scheduling scheme obtained based on the traditional resource scheduling method cannot adapt to actual business changes.

[0031] In view of this, this specification provides a technical solution that determines different scheduling objectives according to the ratio of resources to be consumed and resources that can be provided in different business scenarios, and reasonably allocates user requests based on the scheduling objectives to construct a set of requests to be scheduled that are respectively scheduled to different execution engines.

[0032] When implemented, at least some CDN edge nodes in the CDN network can deploy the execution programs submitted by users, and at least one execution engine for executing the execution programs submitted by users can also run.

[0033] For example, the above-mentioned at least one execution engine can specifically run in the code execution environment of the above-mentioned at least some CDN edge nodes; for example, the above-mentioned execution program can be an Edge Routine (edge program) deployed on the CDN edge node; the above-mentioned code execution environment can specifically be EdgeRout ine; the above-mentioned execution engine can specifically be an EdgeWorker (edge execution engine). In EdgeRout ine, the execution program submitted by the user can be executed by an EdgeWorker corresponding to the execution program submitted by the user.

[0034] After any CDN edge node obtains a set of user requests for triggering the execution of the execution program, it can calculate the resources to be consumed by executing the execution program corresponding to the user requests in the set of user requests in response to the set of user requests.

[0035] For example, the execution program corresponding to the user requests in the set of user requests for triggering the execution of the execution program can be determined according to the obtained set of user requests, and the resources to be consumed by the execution program can be calculated according to the resource consumption characteristics of the execution program.

[0036] The ratio of the resources to be consumed to the resources that the CDN edge node can provide to the execution program can also be calculated, and the scheduling objective for the set of user requests can be determined based on the calculated ratio.

[0037] For example, the ratio of the resources to be consumed to the resources that the CDN edge node can provide to the execution program can be calculated. If the ratio reaches a preset threshold, the scheduling objective is determined as the first scheduling objective corresponding to the low-traffic mode; otherwise, the scheduling objective is determined as the second scheduling objective corresponding to the high-traffic mode.

[0038] Then, based on the scheduling objective, the user requests in the user request set can be combined to construct multiple sets to be scheduled, and the multiple sets to be scheduled are respectively scheduled to different execution engines, so that the execution engines execute the execution programs corresponding to the user requests in the sets to be scheduled deployed on the CDN edge nodes.

[0039] For example, the scheduling objective can be used as the optimization objective, and the user requests in the user request set are iteratively combined and calculated based on the heuristic optimization algorithm to solve multiple sets to be scheduled, and the multiple sets to be scheduled are respectively scheduled to different execution engines.

[0040] Through the above technical solutions, on the one hand, by obtaining the user request set to calculate the resources to be consumed and the resources that can be provided by the CDN edge nodes, the current real-time resource status can be determined, and the scheduling objective is determined by the ratio of the resources to be consumed to the resources that can be provided. Different resource statuses correspond to different scheduling objectives, enabling the resource scheduling to better meet the real-time business changes; on the other hand, by combining the user requests based on the scheduling objective to construct multiple sets to be scheduled, scheduling schemes that meet different scheduling objectives can be obtained, realizing the dynamic adaptive adjustment of scheduling and ensuring the reasonable allocation of resources.

[0041] Please refer to Figure 2 , Figure 2 which is a flowchart of a resource scheduling method in a CDN network provided by an exemplary embodiment of this specification, and is applied to any CDN edge node in the CDN network. As Figure 2 shown, the method includes the following execution steps:

[0042] Step 201, in response to the user request set obtained for triggering the execution of the execution program, calculate the resources to be consumed for executing the execution programs corresponding to the user requests in the user request set;

[0043] Step 202, calculate the ratio of the resources to be consumed to the resources that the CDN edge node can provide for the execution program, and determine the scheduling objective for the user request set based on the calculated ratio;

[0044] Step 203, based on the scheduling objective, combine the user requests in the user request set to construct multiple sets to be scheduled, and respectively schedule the multiple sets to be scheduled to different execution engines, so that the execution engines execute the execution programs corresponding to the user requests in the sets to be scheduled deployed on the CDN edge nodes.

[0045] In one example, the above CDN network can be a cloud CDN network, which refers to a distributed network established and covering the bearer network and composed of edge node server groups spread across the globe. By building a cloud CDN network, the pressure on the origin server can be shared, network congestion can be avoided, the distribution of website content can be accelerated in different regions and scenarios, and the resource access speed can be improved.

[0046] It should be noted that on at least some CDN edge nodes of the CDN network, execution programs submitted by users are deployed, and at least one execution engine for executing the execution programs is also running on these at least some CDN edge nodes.

[0047] In an illustrated embodiment, the at least one execution engine runs in the code execution environment of the at least some CDN edge nodes; wherein, the code execution environment includes EdgeRout ine; and the execution engine includes EdgeWorker.

[0048] In one example, on at least some of the above CDN edge nodes, execution programs submitted by users are deployed, and a code execution environment is running, and at least one execution engine for executing the execution programs submitted by users is running in the code execution environment.

[0049] In yet another example, the above code execution environment can be EdgeRout ine. In EdgeRout ine, execution programs submitted by users can be executed, such as JavaScript code written by users. Users do not need to care about issues such as the machine hardware configuration and scheduling of code deployment, and only need to submit the code. And the above execution engine can be EdgeWorker, and the execution programs submitted by users can be executed through EdgeWorker in EdgeRout ine.

[0050] In an illustrated embodiment, the execution engine executes the execution program corresponding to the user request in the to-be-scheduled set deployed on the CDN edge node in a virtual machine created based on the execution program corresponding to the user request in the to-be-scheduled set in the code execution environment; wherein, the execution engine deploys different virtual machines for different execution programs respectively.

[0051] It should be noted that in order to avoid the execution programs of users from affecting each other, the execution engine can create mutually isolated virtual machines for the execution programs of each tenant.

[0052] Please refer to Figure 3 , Figure 3 which is a schematic diagram of a resource scheduling method in a CDN network provided by an exemplary embodiment of this specification. As Figure 3As shown, EdgeRout ine is the code execution environment, EdgeWorker is the execution engine, and EdgeWorker can deploy different virtual machines (VMs) with mutual isolation for different execution programs submitted by users. EdgeRout ine Schedu ler is the scheduler, and LoadBa l ancer is the load balancer.

[0053] In one example, as Figure 3 shown, the scheduler EdgeRout ineSchedu ler can also be deployed in the CDN edge node to execute the resource scheduling method in this specification.

[0054] Taking a single user request as an example, assume that the virtual machine created by EdgeWorker1 for the execution program of user 1 is VM1a. Then, when the CDN edge gateway receives the request of user 1, the scheduler can inform the load balancer that the execution engine to which the request of user 1 needs to be forwarded is EdgeWorker1. Then, the load balancer forwards the request of user 1 to EdgeWorker1. Then, EdgeWorker1 can execute the execution program in the virtual machine VM1 a created based on the execution program corresponding to the request of user 1 in the code execution environment.

[0055] In one example, triggering the execution of the above execution program by the user request in the above execution engine can be to implement functions such as real-time rendering, page rewriting, or request encryption and decryption according to the user request.

[0056] It is worth noting that the user submitting the execution program can be a tenant of the CDN network. For example, the tenant can be the operator of a certain website. By deploying the business logic code into the code execution environment, when receiving the request corresponding to the user of the website sent by the tenant, the user request can be forwarded to the virtual machine corresponding to the tenant's code to trigger the execution of the tenant's code.

[0057] It can be understood that in actual applications, there are more than one user request, and even in the case of excessive traffic. For example, when the virtual machine VM1 a cannot handle all user requests, idle resources can be scheduled to create a new virtual machine. For example, create VM2a in EdgeWorker2 and divide the user requests into two parts, which are processed by VM1 a and VM2a respectively.

[0058] It should be noted that although multiple virtual machines created for different tenants can run simultaneously on the CDN edge nodes, after all, the resources provided by the CDN edge nodes are limited. Considering that the creation of virtual machines and the execution of programs will bring additional resource consumption to the CDN edge nodes, such as network bandwidth resources, processor resources, and memory resources, etc., therefore, not only the resource specifications of the virtual machines need to be restricted, but also the requests of the same user should be scheduled to the same virtual machine as much as possible to avoid the repeated creation of virtual machines and reduce the resource consumption caused by the additional creation of virtual machines.

[0059] Continuing with the above example, when VM1 a cannot handle all user requests, the user requests can also be divided into three parts and processed by VM1 a, VM2a, and VM3a respectively. However, this creates 3 identical virtual machines. Originally, these user requests could be completed by the 2 virtual machines VM1 a and VM2a, but now if 3 virtual machines are used to process them, it will lead to a waste of resources. Therefore, this is not a reasonable resource scheduling scheme.

[0060] Therefore, a reasonable resource scheduling method is needed to reasonably allocate resources for the execution programs corresponding to user requests under the constraint conditions of node resources, maximize the processing capacity of the execution engine, and achieve load balancing.

[0061] In this embodiment, in response to the obtained set of user requests for triggering the execution of the execution program, the resources to be consumed by the execution programs corresponding to the user requests in the set can be calculated.

[0062] As can be seen from the foregoing, when the above user requests are scheduled to the execution engine, the execution programs corresponding to the user requests can be automatically triggered to execute. Different execution programs consume different resources during execution. For example, complex business logic code consumes more computing resources than simple code. Therefore, the scheduler needs to determine the resources to be consumed by the set of user requests.

[0063] For example, the scheduler can determine the different execution programs corresponding to each user request in the set of user requests according to the set of user requests obtained from the CDN edge node where it is located, calculate the resources to be consumed, and thus obtain the total resources to be consumed corresponding to the set of user requests.

[0064] In an illustrated implementation manner, when calculating the resources to be consumed by the execution programs corresponding to the user requests in the set of user requests, the execution programs corresponding to the user requests in the set can be determined, and according to the resource consumption characteristics of the execution programs, the resources to be consumed by the execution programs can be calculated.

[0065] The above resource consumption characteristics may be a portrait of the resource consumption of the execution program, such as the resources consumed by the execution program during execution, such as CPU, memory, network bandwidth, disk I / O, etc.

[0066] For example, the scheduler may first determine the execution program corresponding to the user requests in the user request set, then collect the consumption data of the execution program on different types of resources, and calculate the resources to be consumed by the execution program based on the resource consumption of the execution program.

[0067] The above collection process may be real-time. By collecting various data indicators of the resource consumption corresponding to the execution program, the change situation of the service can be reflected in real time, so that the situation of sudden service traffic can be better handled.

[0068] In this embodiment, the ratio of the resources to be consumed to the resources that the CDN edge node can provide to the execution program may be calculated, and the scheduling target for the user request set may be determined based on the calculated ratio.

[0069] As can be seen from the foregoing, since the resources of the CDN edge node itself are limited, the resources that can be allocated to the execution program are of course also limited. Therefore, it is necessary to count the resources that the CDN edge node can provide to the execution program and determine the current service pressure.

[0070] For example, by obtaining the resources that the CDN edge node can provide to the execution program, the ratio of the resources to be consumed to the resources that the CDN edge node can provide to the execution program may be calculated, and then the scheduling target for the user request set may be determined based on the calculated ratio.

[0071] For example, if the amount of resources to be consumed is 30 and the amount of available resources is 100, then the above ratio is 0.3.

[0072] In an illustrated embodiment, the scheduling target includes a first scheduling target corresponding to a low-traffic mode and a second scheduling target corresponding to a high-traffic mode;

[0073] Furthermore, if the ratio reaches a preset threshold, the scheduling target may be determined as the first scheduling target corresponding to the low-traffic mode; otherwise, the scheduling target may be determined as the second scheduling target corresponding to the high-traffic mode.

[0074] For example, assuming that the preset threshold for the above ratio is 70%, if the calculated ratio is less than or equal to 70%, then the scheduling target may be determined as the first scheduling target corresponding to the low-traffic mode; if the calculated ratio is higher than 70%, then the scheduling target may be determined as the second scheduling target corresponding to the high-traffic mode.

[0075] In this embodiment, based on the scheduling objective, user requests in the user request set can be combined to construct multiple sets to be scheduled, and the multiple sets to be scheduled are respectively scheduled to different execution engines, so that the execution engines execute the execution programs corresponding to the user requests in the sets to be scheduled deployed on the CDN edge nodes.

[0076] For example, according to the determined different scheduling objectives, user requests in the user request set can be combined in ways corresponding to different scheduling objectives respectively to construct multiple sets to be scheduled. Different scheduling objectives may have different combination methods and result in different sets to be scheduled. Then, the constructed multiple sets to be scheduled can be respectively scheduled to different execution engines. After receiving different sets to be scheduled, the execution engines execute the execution programs corresponding to the user requests in the sets to be scheduled respectively.

[0077] Among them, when the constructed multiple sets to be scheduled are respectively scheduled to different execution engines, Figure 3 the load balancer in can determine the weights when scheduling user requests in the multiple sets to be scheduled to the execution engines according to the current resource pressure of the execution engines, and perform actual scheduling according to the weights, scheduling those with higher weights first and those with lower weights later.

[0078] In addition, when combining user requests in the user request set, the user request set can also be split into multiple user request groups, and then these groups are combined to construct multiple sets to be scheduled, so as to shorten the construction time and improve the combination efficiency.

[0079] It should be noted that if the execution engine has created a virtual machine for the execution program corresponding to the user request in the code execution environment, then the execution program can be executed based on the already created virtual machine. If not, the execution engine can first create a virtual machine and then execute the execution program. Since the consumption required for creating a virtual machine has been considered during resource scheduling, the situation where the virtual machine cannot be created due to insufficient resources will not occur.

[0080] In an illustrated embodiment, the scheduling objective can be used as an optimization objective, and based on a heuristic optimization algorithm, iterative combination operations are performed on user requests in the user request set to solve multiple sets to be scheduled, and the multiple sets to be scheduled are respectively scheduled to different execution engines.

[0081] The above-mentioned heuristic optimization algorithm can be a simulated annealing algorithm, a genetic algorithm, etc., which are not limited in this specification.

[0082] For example, the process of constructing multiple sets to be scheduled described above can be transformed into an optimization problem. By using a heuristic optimization algorithm, with the determined scheduling objective as the optimization goal, the user requests in the user request set are combined and calculated iteratively to solve multiple sets to be scheduled, and the multiple sets to be scheduled are respectively scheduled to different execution engines.

[0083] In an illustrated embodiment, the first scheduling objective corresponding to the low-traffic mode includes: combining N sets to be scheduled with the highest similarity to the historical scheduling sets processed by N execution engines, and respectively scheduling the N sets to be scheduled to the N different execution engines; where the value of N is the relative minimum less than the number of available execution engines.

[0084] Furthermore, if the scheduling objective is the first scheduling objective corresponding to the low-traffic mode, taking the first scheduling objective as the optimization goal, based on the heuristic optimization algorithm, the user requests in the user request set are iteratively combined and calculated to solve, within a preset time complexity, N sets to be scheduled with the highest similarity to the historical scheduling sets processed by the N execution engines, and respectively scheduling the N sets to be scheduled to the N different execution engines; where the value of N is the relative minimum less than the number of available execution engines.

[0085] It should be noted that since the business pressure is not high in the low-traffic mode, there is no need to prioritize load balancing. At this time, it is possible to give priority to ensuring a high hit rate and the minimum number of virtual machine migrations.

[0086] Among them, the above hit rate refers to the ratio of the number of user requests in the user request set that hit existing virtual machines to the total number of user requests in the user request set. And the minimum number of virtual machine migrations refers to the minimum number of new virtual machines that need to be created.

[0087] For example, assume that the resource amounts that VM1a and VM2a can provide are both 100. The virtual machine deployed for the execution program corresponding to user request 1 is VM1a, and the virtual machine deployed for the execution program corresponding to user request 2 is VM2a. When the resource amount that user request 1 needs to consume changes from the original 20 to 50, and when the resource amount that user request 2 needs to consume changes from the original 50 to 150, user request 1 is still processed by VM1a, while user request 2 needs to create a new virtual machine. According to the resource amount that the virtual machine can provide, at least one virtual machine needs to be created. At this time, to ensure a high hit rate and the minimum number of virtual machine migrations, one more virtual machine can be created. That is to say, the constructed set to be scheduled needs to have a high similarity to the previous historical scheduling sets. The above first scheduling objective can also be called a smooth scheduling objective.

[0088] Therefore, the first scheduling objective corresponding to the low-traffic mode can be to combine N to-be-scheduled sets with the highest similarity to the historical scheduling sets processed by N execution engines, and schedule the N to-be-scheduled sets to N different execution engines respectively; where the value of N is the relative minimum less than the number of available execution engines.

[0089] The above relative minimum means that when determining the value of N, within the preset time complexity, the minimum value among the values of N that meet the requirements is solved.

[0090] For example, suppose there are 4 available execution engines. When combining, if 2 to-be-scheduled sets can be determined, there is no need to determine 3 to-be-scheduled sets.

[0091] Continuing with the example, assume N is 2. The first scheduling objective can be used as the optimization objective, and based on the heuristic optimization algorithm, iterative combinatorial operations are performed on the user requests in the user request set to solve, within the preset time complexity, 2 to-be-scheduled sets with the highest similarity to the historical scheduling sets processed by 2 execution engines in the code execution environment, and schedule these 2 to-be-scheduled sets to 2 different execution engines respectively.

[0092] In an illustrated embodiment, the second scheduling objective corresponding to the high-traffic mode includes: combining M to-be-scheduled sets corresponding to the number of available execution engines, and scheduling the M to-be-scheduled sets to M different execution engines respectively; where the difference between the resources consumed by the user requests included in the to-be-scheduled sets scheduled to each of the M different execution engines does not exceed a preset threshold.

[0093] Furthermore, if the scheduling objective is the second scheduling objective corresponding to the high-traffic mode, the second scheduling objective is used as the optimization objective, and based on the heuristic optimization algorithm, iterative combinatorial operations are performed on the user requests in the user request set to solve, within the preset time complexity, M to-be-scheduled sets corresponding to the number of available execution engines, and schedule the M to-be-scheduled sets to M different execution engines respectively; where the difference between the resources consumed by the user requests included in the to-be-scheduled sets scheduled to each of the M different execution engines does not exceed a preset threshold.

[0094] It should be noted that since the business pressure is high in the high-traffic mode, it is necessary to prioritize load balancing. At this time, it is possible to prioritize ensuring the balanced allocation of resources. The above second scheduling objective can also be called the balanced scheduling objective.

[0095] For example, assume that there are 3 available execution engines, and the amount of resources that can be provided to each execution engine is 100, while the amount of resources required by the user request set is 240. It is necessary to divide it into at least 3 sets to be scheduled and schedule them to these 3 execution engines for processing respectively. Then, the average amount of resources to be consumed corresponding to the set to be scheduled assigned to each execution engine is 80. To ensure load balancing, the difference between the amount of resources consumed by the constructed set to be scheduled and 80 should be within a preset threshold. For example, the absolute value of the difference does not exceed 5.

[0096] Continuing with the example, after taking the second scheduling target as the optimization target and iteratively performing combinatorial operations on the user requests in the user request set based on the heuristic optimization algorithm to solve for 3 sets to be scheduled corresponding to the number of available execution engines within a preset time complexity, these 3 sets to be scheduled can be respectively scheduled to 3 different execution engines.

[0097] In an illustrated embodiment, when respectively scheduling the multiple sets to be scheduled to different execution engines, the similarity between the constructed multiple sets to be scheduled and the historical scheduling sets processed by each execution engine can be calculated respectively; and for each execution engine, according to the similarity calculation result, the set to be scheduled with the greatest similarity to the historical scheduling set processed by the execution engine among the multiple sets to be scheduled is determined as the set to be scheduled to the execution engine.

[0098] For example, assume that there are 3 execution engines and 3 sets to be scheduled. For each execution engine, the similarity between the historical scheduling set processed by each execution engine and these 3 determined sets to be scheduled can be calculated respectively. According to the similarity calculation result, the set to be scheduled with the greatest similarity to the historical scheduling set of each execution engine is determined, and the set to be scheduled with the greatest similarity is determined as the set to be scheduled to this execution engine.

[0099] It should be noted that although the second scheduling target is for the business scenario with high traffic, the sets to be scheduled can also be allocated according to the similarity calculation result. Thus, on the premise of ensuring load balancing, the similarity between the set to be scheduled and the historical set is taken into account to a certain extent, so as to find the solution with the least changes and ensure the minimum number of virtual machine migrations as much as possible.

[0100] In an illustrated embodiment, the similarity is characterized based on the Hamming distance between the set to be scheduled and the historical scheduling set; wherein, the Hamming distance is used to indicate the difference between the user requests included in the set to be scheduled and the historical scheduling set.

[0101] For example, the similarity between the to-be-scheduled set and the historical scheduling set can be represented by the Hamming distance. By calculating the Hamming distance between the strings in the to-be-scheduled set and the strings in the historical scheduling set, the differences in the user requests included in the to-be-scheduled set and the historical scheduling set can be indicated, and the similarity can be determined based on the Hamming distance.

[0102] In one of the illustrated embodiments, it is also possible to determine whether the resources to be consumed corresponding to the multiple to-be-scheduled sets meet the resource limitation conditions of the execution engine to which the scheduling is to be performed; wherein, the resource limitation conditions at least include one or more of the limitation conditions for processor resources, memory resources, and bandwidth resources;

[0103] If they meet the conditions, further schedule the multiple to-be-scheduled sets to the to-be-scheduled execution engine respectively.

[0104] For example, in order to ensure that the constructed to-be-scheduled sets meet the resource constraint conditions when scheduled to the execution engine, it is possible to first determine whether the resources to be consumed corresponding to the multiple to-be-scheduled sets meet the resource limitation conditions of the execution engine to which the scheduling is to be performed before respectively scheduling the multiple to-be-scheduled sets to different execution engines. For example, the resource limitation conditions can at least include one or more of the limitation conditions for processor resources, memory resources, and bandwidth resources.

[0105] Furthermore, if the limitation conditions are met, then the multiple to-be-scheduled sets can be respectively scheduled to the to-be-scheduled execution engine. If not, then it is necessary to reconstruct the to-be-scheduled sets.

[0106] In addition, before respectively scheduling the multiple to-be-scheduled sets to different execution engines, it is also possible to adjust each constructed scheduling set according to the priorities of different execution programs or the performance metrics corresponding to the execution programs to obtain a to-be-scheduled set that better meets the personalized requirements.

[0107] Through the above technical solutions, on the one hand, by obtaining the set of user requests to calculate the resources to be consumed and the resources that can be provided by the CDN edge nodes, the current real-time resource status can be determined, and the scheduling target can be determined based on the ratio of the resources to be consumed to the resources that can be provided. Different resource statuses correspond to different scheduling targets, enabling the resource scheduling to better meet the real-time business changes; on the other hand, by combining the user requests based on the scheduling target to construct multiple to-be-scheduled sets, scheduling schemes that meet different scheduling targets can be obtained, realizing the dynamic adaptive adjustment of scheduling and ensuring the reasonable allocation of resources.

[0108] In the exemplary embodiments of this specification, a device capable of implementing the above method is also provided.

[0109] Figure 4It is a schematic structural diagram of a device provided by an exemplary embodiment. Please refer to Figure 4 , at the hardware level, the device includes a processor 402, an internal bus 404, a network interface 406, a memory 408, and a non-volatile memory 410. Of course, it may also include other hardware required for other services. One or more embodiments of this specification can be implemented in a software manner. For example, the processor 402 reads the corresponding computer program from the non-volatile memory 410 into the memory 409 and then runs it. Of course, in addition to the software implementation manner, one or more embodiments of this specification do not exclude other implementation manners, such as logic devices or a combination of software and hardware, etc. That is to say, the execution subject of the following processing flow is not limited to each logic unit, and can also be hardware or a logic device.

[0110] Please refer to Figure 5 , in a software implementation manner, a resource scheduling device 500 in a CDN network is provided, which is applied to any CDN edge node in the CDN network. As Figure 5 shown, the device 500 includes:

[0111] A first calculation module 501, in response to a set of user requests for triggering the execution of the execution program, calculates the resources to be consumed by executing the execution program corresponding to the user requests in the set of user requests;

[0112] A second calculation module 502 calculates the ratio of the resources to be consumed to the resources that the CDN edge node can provide for the execution program, and determines a scheduling target for the set of user requests based on the calculated ratio;

[0113] A first scheduling module 503, based on the scheduling target, combines the user requests in the set of user requests to construct multiple sets to be scheduled, and schedules the multiple sets to be scheduled to different execution engines respectively, so that the execution engines execute the execution programs corresponding to the user requests in the sets to be scheduled deployed on the CDN edge node.

[0114] Among them, execution programs submitted by users are deployed on at least some CDN edge nodes in the CDN network; at least one execution engine for executing the execution program is also running on at least some of the CDN edge nodes.

[0115] Optionally, the at least one execution engine runs in the code execution environment of the at least some CDN edge nodes; wherein, the code execution environment includes EdgeRout ine; the execution engine includes EdgeWorker.

[0116] Optionally, the execution engine executes the execution programs corresponding to the user requests in the to-be-scheduled set deployed on the CDN edge nodes, including:

[0117] In the code execution environment, the execution engine executes the execution programs corresponding to the user requests in the to-be-scheduled set in the virtual machines created based on the execution programs corresponding to the user requests in the to-be-scheduled set; wherein, the execution engine deploys different virtual machines for different execution programs.

[0118] Optionally, the first computing module 501 further:

[0119] Determine the execution programs corresponding to the user requests in the user request set, and calculate the resources to be consumed by the execution programs according to the resource consumption characteristics of the execution programs.

[0120] Optionally, the scheduling objectives include a first scheduling objective corresponding to the low-traffic mode and a second scheduling objective corresponding to the high-traffic mode;

[0121] The second computing module 502 further:

[0122] If the ratio reaches a preset threshold, determine the scheduling objective as the first scheduling objective corresponding to the low-traffic mode; otherwise, determine the scheduling objective as the second scheduling objective corresponding to the high-traffic mode.

[0123] Optionally, the first scheduling module 503 further:

[0124] Take the scheduling objective as the optimization objective, perform iterative combinatorial operations on the user requests in the user request set based on the heuristic optimization algorithm, solve multiple to-be-scheduled sets, and schedule the multiple to-be-scheduled sets to different execution engines respectively.

[0125] Optionally, the first scheduling objective corresponding to the low-traffic mode includes: combining N to-be-scheduled sets with the highest similarity to the historical scheduling sets processed by N execution engines, and scheduling the N to-be-scheduled sets to the N different execution engines respectively; wherein, the value of N is the relative minimum less than the number of available execution engines;

[0126] The first scheduling module 503 further:

[0127] If the scheduling target is the first scheduling target corresponding to the low-traffic mode, use the first scheduling target as the optimization target, and perform iterative combinatorial operations on the user requests in the set of user requests based on the heuristic optimization algorithm, so as to solve, within a preset time complexity, N to-be-scheduled sets with the highest similarity to the historical scheduling set processed by the N execution engines, and schedule the N to-be-scheduled sets to the N different execution engines respectively; where the value of N is the relative minimum less than the number of available execution engines.

[0128] Optionally, the second scheduling target corresponding to the high-traffic mode includes: combining M to-be-scheduled sets corresponding to the number of available execution engines, and scheduling the M to-be-scheduled sets to M different execution engines respectively; where, for each of the M different execution engines, the difference between the resources consumed by executing the user requests included in the to-be-scheduled set scheduled to this execution engine is not higher than a preset threshold.

[0129] The first scheduling module 503 further:

[0130] If the scheduling target is the second scheduling target corresponding to the high-traffic mode, use the second scheduling target as the optimization target, and perform iterative combinatorial operations on the user requests in the set of user requests based on the heuristic optimization algorithm, so as to solve, within a preset time complexity, M to-be-scheduled sets corresponding to the number of available execution engines, and schedule the M to-be-scheduled sets to M different execution engines respectively; where, for each of the M different execution engines, the difference between the resources consumed by executing the user requests included in the to-be-scheduled set scheduled to this execution engine is not higher than a preset threshold.

[0131] Optionally, the first scheduling module 503 further:

[0132] Calculate the similarity between each of the constructed to-be-scheduled sets and the historical scheduling set processed by each execution engine respectively;

[0133] For each execution engine, according to the similarity calculation result, determine the to-be-scheduled set with the highest similarity to the historical scheduling set processed by this execution engine among the multiple to-be-scheduled sets as the to-be-scheduled set scheduled to this execution engine.

[0134] Optionally, the similarity is characterized by the Hamming distance between the to-be-scheduled set and the historical scheduling set; where the Hamming distance is used to indicate the difference between the user requests included in the to-be-scheduled set and the historical scheduling set.

[0135] Optionally, the apparatus 500 further includes:

[0136] A determination module 504 (not shown in the figure) determines whether the resources to be consumed corresponding to the multiple sets to be scheduled meet the resource limit conditions of the execution engine to which the scheduling is to be performed; wherein, the resource limit conditions at least include one or more of the limit conditions for processor resources, memory resources, and bandwidth resources;

[0137] A second scheduling module 505 (not shown in the figure), if they meet the conditions, further schedules the multiple sets to be scheduled to the execution engine to be scheduled respectively.

[0138] For the specific implementation process of the functions and roles of each module in the above device 500, please refer to the implementation process of the corresponding steps in the above resource scheduling method in the CDN network. For the relevant parts, please refer to the partial description of the method embodiment, and details will not be repeated here.

[0139] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical modules, that is, they may be located in one place, or may be distributed to multiple network modules. Some or all of the units or modules can be selected according to actual needs to achieve the purpose of the solution in this specification. Those of ordinary skill in the art can understand and implement it without creative efforts.

[0140] The systems, devices, modules, or units illustrated in the above embodiments can be specifically implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer, and the specific form of the computer can be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email transceiver device, a game console, a tablet computer, a wearable device, or a combination of any several of these devices.

[0141] In a typical configuration, a computer includes one or more processors (CPUs), an input / output interface, a network interface, and a memory.

[0142] The memory may include non-permanent memory in the computer-readable medium, random access memory (RAM), and / or non-volatile memory in the form of, for example, read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.

[0143] Computer-readable media include permanent and non-permanent, removable and non-removable media that can be used to store information by any method or technology. Information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, disk storage, quantum memory, graphene-based storage media or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include temporary computer-readable media (transitory media), such as modulated data signals and carrier waves.

[0144] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.

[0145] The above is a description of a specific embodiment of the specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0146] The terms used in one or more embodiments of this specification are only for the purpose of describing specific embodiments, and are not intended to limit one or more embodiments of this specification. The singular forms of "a", "said" and "the" used in one or more embodiments of this specification and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used herein refers to and includes any or all possible combinations of one or more associated listed items.

[0147] It should be understood that although the terms first, second, third, etc. may be used in one or more embodiments of this specification to describe various information, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from each other. For example, without departing from the scope of one or more embodiments of this specification, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information. Depending on the context, the word "if" as used herein may be interpreted as "when" or "while" or "in response to determining".

[0148] The foregoing are only preferred embodiments of one or more embodiments of this specification and are not intended to limit one or more embodiments of this specification. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of one or more embodiments of this specification shall be included within the scope protected by one or more embodiments of this specification.

Claims

1. A resource scheduling method in a CDN network, where execution programs submitted by users are deployed on at least some CDN edge nodes in the CDN network; wherein, At least one execution engine for executing the execution program is also running on at least some of the CDN edge nodes; The method is applied to any CDN edge node in the CDN network; and includes: In response to the acquired set of user requests for triggering the execution of the execution program, calculating the resources to be consumed by the execution program corresponding to the user requests in the set of user requests; Calculating the ratio of the resources to be consumed to the resources that the CDN edge node can provide to the execution program, and determining a scheduling target for the set of user requests based on the calculated ratio; Taking the determined scheduling target as an optimization target, performing combinatorial operations on the user requests in the set of user requests, solving multiple sets to be scheduled that meet the optimization target, and scheduling the multiple sets to be scheduled to different execution engines respectively, so that the execution engines execute the execution programs corresponding to the user requests in the sets to be scheduled deployed on the CDN edge nodes.

2. The method according to claim 1, wherein the at least one execution engine runs in a code execution environment of the at least part of the CDN edge nodes; wherein, The code execution environment includes EdgeRoutine; the execution engine includes EdgeWorker.

3. According to the method described in claim 2, when the execution engine executes the execution program corresponding to the user requests in the set to be scheduled deployed on the CDN edge node, it includes: The execution engine executes the execution program corresponding to the user requests in the set to be scheduled deployed on the CDN edge node in a virtual machine created based on the execution program corresponding to the user requests in the set to be scheduled in the code execution environment; wherein, the execution engine deploys different virtual machines for different execution programs respectively.

4. According to the method described in claim 1, the calculating the resources to be consumed by the execution program corresponding to the user requests in the set of user requests includes: Determining the execution program corresponding to the user requests in the set of user requests, and calculating the resources to be consumed by the execution program according to the resource consumption characteristics of the execution program.

5. According to the method described in claim 1, the scheduling target includes a first scheduling target corresponding to a low-traffic mode and a second scheduling target corresponding to a high-traffic mode; The determining the scheduling target for the set of user requests based on the calculated ratio includes: If the ratio reaches a preset threshold, determining the scheduling target as the first scheduling target corresponding to the low-traffic mode; Otherwise, determining the scheduling target as the second scheduling target corresponding to the high-traffic mode.

6. According to the method described in claim 5, the taking the determined scheduling target as an optimization target, performing combinatorial calculation on the user requests in the set of user requests, solving multiple sets to be scheduled that meet the optimization target, and scheduling the multiple sets to be scheduled to different execution engines respectively includes: Taking the scheduling target as an optimization target, iteratively performing combinatorial operations on the user requests in the set of user requests based on a heuristic optimization algorithm, solving multiple sets to be scheduled, and scheduling the multiple sets to be scheduled to different execution engines respectively.

7. The first scheduling objective corresponding to the low-flow mode in the method according to claim 6 includes: Combine N sets of pending schedules with the highest similarity to the historical schedule sets processed by N execution engines, and schedule the N sets of pending schedules to the N different execution engines respectively; where the value of N is the relative minimum less than the number of available execution engines; The step of taking the scheduling target as the optimization target, iteratively performing combinatorial operations on the user requests in the user request set based on a heuristic optimization algorithm, solving multiple sets of pending schedules, and scheduling the multiple sets of pending schedules to different execution engines respectively includes: If the scheduling target is the first scheduling target corresponding to the low-traffic mode, take the first scheduling target as the optimization target, and iteratively perform combinatorial operations on the user requests in the user request set based on a heuristic optimization algorithm, so as to solve N sets of pending schedules with the highest similarity to the historical schedule sets processed by the N execution engines within a preset time complexity, and schedule the N sets of pending schedules to the N different execution engines respectively; where the value of N is the relative minimum less than the number of available execution engines.

8. The second scheduling objective corresponding to the high-traffic mode in the method according to claim 6 includes: Combine M sets of pending schedules corresponding to the number of available execution engines, and schedule the M sets of pending schedules to M different execution engines respectively; where for each execution engine among the M different execution engines, the difference between the resources consumed by executing the user requests included in the set of pending schedules scheduled to this execution engine does not exceed a preset threshold; The step of taking the scheduling target as the optimization target, iteratively performing combinatorial operations on the user requests in the user request set based on a heuristic optimization algorithm, solving multiple sets of pending schedules, and scheduling the multiple sets of pending schedules to different execution engines respectively includes: If the scheduling target is the second scheduling target corresponding to the high-traffic mode, take the second scheduling target as the optimization target, and iteratively perform combinatorial operations on the user requests in the user request set based on a heuristic optimization algorithm, so as to solve M sets of pending schedules corresponding to the number of available execution engines within a preset time complexity, and schedule the M sets of pending schedules to M different execution engines respectively; where for each execution engine among the M different execution engines, the difference between the resources consumed by executing the user requests included in the set of pending schedules scheduled to this execution engine does not exceed a preset threshold.

9. The method according to claim 8, where the step of scheduling the multiple sets of pending schedules to different execution engines respectively includes: Calculate the similarity between each set of pending schedules in the multiple sets of pending schedules and the historical schedule sets processed by each execution engine respectively; For each execution engine, according to the similarity calculation result, determine the set of pending schedules with the greatest similarity to the historical schedule set processed by the execution engine among the multiple sets of pending schedules as the set of pending schedules to be scheduled to this execution engine.

10. The method according to claim 9, wherein the similarity is characterized based on the Hamming distance between the set to be scheduled and the historical scheduling set; wherein, The Hamming distance is used to indicate the difference between the user requests included in the set of pending schedules and the historical schedule set.

11. The method according to claim 1, before scheduling the multiple sets to be scheduled to different execution engines respectively, the method further includes: determining whether the resources to be consumed corresponding to the multiple sets to be scheduled meet the resource limit conditions of the execution engine to which they are to be scheduled; wherein, the resource limit conditions include at least one or more of the limit conditions for processor resources, memory resources, and bandwidth resources; if they meet, further scheduling the multiple sets to be scheduled to the execution engine to which they are to be scheduled respectively.

12. A resource scheduling device in a CDN network, where execution programs submitted by users are deployed on at least some CDN edge nodes in the CDN network; among them, At least one execution engine for executing the execution program is further running on at least some of the CDN edge nodes; The apparatus is applied to any CDN edge node in the CDN network; and includes: a first calculation module, in response to the acquired set of user requests for triggering the execution of the execution program, calculating the resources to be consumed for executing the execution program corresponding to the user requests in the set of user requests; a second calculation module, calculating the ratio of the resources to be consumed to the resources that the CDN edge node can provide for the execution program, and determining a scheduling target for the set of user requests based on the calculated ratio; a first scheduling module, using the determined scheduling target as an optimization target, performing combined calculations on the user requests in the set of user requests, solving for multiple sets to be scheduled that meet the optimization target, and scheduling the multiple sets to be scheduled to different execution engines respectively, so that the execution engines execute the execution programs corresponding to the user requests in the sets to be scheduled deployed on the CDN edge node.

13. An electronic device, including: a processor; a memory for storing processor-executable instructions; wherein, the processor realizes the method according to any one of claims 1-11 by running the executable instructions.

14. A machine-readable storage medium, on which machine-readable instructions are stored, and when the instructions are executed by a processor, the steps of the method according to any one of claims 1-11 are realized.

Citation Information

Patent Citations

  • Resource scheduling method and device, equipment and storage medium

    CN114518945A

  • Data processing method and device based on edge calculation and readable storage medium

    CN114827276A