Node traffic scheduling method, device, equipment and medium of content distribution network

By constructing a directed network of traffic units and node units, and utilizing intermediate units and the minimum cost maximum flow model, the problem of coarse granularity in traditional CDN scheduling is solved. This enables precise traffic scheduling and rapid response for small nodes, improving the real-time performance and resource utilization efficiency of the scheduling strategy.

CN119276786BActive Publication Date: 2025-11-25BEIJING VOLCANO ENGINE TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411793601.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-06
Publication Date
2025-11-25
Estimated Expiration
2044-12-06

AI Technical Summary

Technical Problem

Traditional CDN DNS scheduling is constrained by the number of IPs and the timeliness of local DNS activation, resulting in coarse scheduling granularity and difficulty in achieving precise control over small nodes with low bandwidth, low storage capacity, and poor stability.

Method used

A directed network is constructed between flow units and node units. By setting intermediate units, the number of edges is reduced. The minimum cost maximum flow model is used to solve the problem, determine the flow allocation ratio coefficient, generate a scheduling strategy, and achieve precise flow scheduling.

Benefits of technology

It improves the accuracy of node control, reduces the scheduling strategy update time, enables rapid response to quality anomalies, achieves second-level switching, and improves resource hit rate and the real-time performance of scheduling strategies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119276786B_ABST
    Figure CN119276786B_ABST
Patent Text Reader

Abstract

The present disclosure relates to the technical field of content distribution network, and discloses a node traffic scheduling method, device and equipment of a content distribution network and a medium. The method comprises: constructing at least one traffic unit for each domain name; setting a plurality of intermediate units; the intermediate units correspond to a plurality of traffic units; building edges between the traffic units and the corresponding intermediate units, and building edges between the intermediate units and node units used for scheduling traffic of at least part of the domain names, to construct a directed network; solving the directed network to determine the traffic distribution proportion coefficient between the traffic units and at least part of the node units; and generating a scheduling strategy including the traffic distribution proportion coefficient between each traffic unit and the corresponding node unit. The present disclosure can configure appropriate traffic distribution proportion coefficients on demand, greatly improve the node control line accuracy, and facilitate the rapid switching of quality anomaly perception.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of content delivery network technology, specifically to methods, apparatus, devices, and media for node traffic scheduling in content delivery networks. Background Technology

[0002] With the explosion of traffic, traditional CDNs (Content Delivery Networks) are facing enormous cost pressures. Currently, there are low-bandwidth, low-storage, and unstable node resources on the market, but they are cheaper and closer to user distribution. Effectively utilizing these resources can effectively reduce bandwidth costs while ensuring user access quality.

[0003] Traditional DNS (Domain Name System) scheduling is constrained by the number of DNS IPs and the timeliness of local DNS. If small nodes with low bandwidth, low storage capacity, and poor stability are scheduled directly, the scheduling granularity is too coarse and it is difficult to achieve precise line control. Summary of the Invention

[0004] In view of this, this disclosure provides a method, apparatus, device and medium for node traffic scheduling in a content delivery network to solve the problem of coarse-grained traffic scheduling.

[0005] Firstly, this disclosure provides a method for scheduling node traffic in a content delivery network, including:

[0006] Build at least one traffic unit for each domain name;

[0007] Multiple intermediate units are configured; each intermediate unit corresponds to one of the multiple flow units.

[0008] An edge is established between the traffic unit and the corresponding intermediate unit, and an edge is established between the intermediate unit and the node unit used to schedule traffic for at least a portion of the domain names, thereby constructing a directed network.

[0009] Solve the directed network to determine the flow allocation ratio coefficient between the flow unit and at least some of the node units;

[0010] A scheduling strategy is generated that includes a traffic allocation ratio coefficient between each of the traffic units and the corresponding node units; the scheduling strategy is used to schedule the traffic of the domain name according to the traffic allocation ratio coefficient.

[0011] Secondly, this disclosure provides a method for scheduling node traffic in a content delivery network, including:

[0012] Obtain the access request initiated by the client;

[0013] The node to respond to the access request is determined according to the scheduling strategy; the scheduling strategy is generated based on the method of the first aspect described above or any corresponding implementation thereof.

[0014] Thirdly, this disclosure provides a node traffic scheduling device for a content delivery network, comprising:

[0015] The traffic unit module is used to build at least one traffic unit for each domain name;

[0016] An intermediate unit module is used to set up multiple intermediate units; each intermediate unit corresponds to multiple flow units.

[0017] A network construction module is used to build edges between the traffic unit and the corresponding intermediate unit, and to build edges between the intermediate unit and the node unit used to schedule traffic for at least a portion of the domain names, thereby constructing a directed network.

[0018] The processing module is used to solve the directed network and determine the flow allocation ratio coefficient between the flow unit and at least some of the node units;

[0019] The strategy generation module is used to generate a scheduling strategy that includes a traffic allocation ratio coefficient between each traffic unit and the corresponding node unit; the scheduling strategy is used to schedule the traffic of the domain name according to the traffic allocation ratio coefficient.

[0020] Fourthly, this disclosure provides a node traffic scheduling device for a content delivery network, comprising:

[0021] The acquisition module is used to acquire access requests initiated by the client;

[0022] A scheduling module is used to determine the node to respond to the access request according to a scheduling strategy; the scheduling strategy is generated based on the method of the first aspect described above or any corresponding implementation thereof.

[0023] Fifthly, this disclosure provides a computer device, including: a memory and a processor, which are communicatively connected to each other. The memory stores computer instructions, and the processor executes the computer instructions to perform the node traffic scheduling method of the content delivery network described in the first aspect, the second aspect, or any corresponding embodiment thereof.

[0024] In a sixth aspect, this disclosure provides a computer-readable storage medium storing computer instructions for causing a computer to execute the node traffic scheduling method of a content delivery network according to the first aspect, the second aspect, or any corresponding embodiment thereof.

[0025] This disclosure constructs a directed network from traffic units to node units by setting traffic units corresponding to domain names and node units corresponding to nodes. By solving this directed network, appropriate traffic allocation ratio coefficients can be configured as needed to distribute traffic from multiple traffic units to multiple corresponding nodes, significantly improving the accuracy of node control. Furthermore, by setting a small number of intermediate units between traffic units and node units, the number of edges in the directed network can be reduced, enabling rapid solution and rapid updates to scheduling strategies, which is beneficial for rapid switching in quality anomaly detection. Attached Figure Description

[0026] To more clearly illustrate the technical solutions in the specific embodiments or related technologies of this disclosure, the accompanying drawings used in the description of the specific embodiments or related technologies will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0027] Figure 1 This is a flowchart illustrating a node traffic scheduling method for a content delivery network according to an embodiment of the present disclosure;

[0028] Figure 2 This is a schematic diagram of a directed network according to an embodiment of the present disclosure;

[0029] Figure 3 This is a flowchart illustrating a node traffic scheduling method for another content delivery network according to an embodiment of the present disclosure;

[0030] Figure 4 This is a schematic diagram of another structure of a directed network according to an embodiment of the present disclosure;

[0031] Figure 5 This is a switching diagram of a small node state machine according to an embodiment of the present disclosure;

[0032] Figure 6 This is a schematic diagram of another structure of a directed network according to an embodiment of the present disclosure;

[0033] Figure 7 This is a flowchart illustrating a node traffic scheduling method for another content delivery network according to an embodiment of the present disclosure;

[0034] Figure 8 This is a timing diagram of traffic scheduling according to an embodiment of the present disclosure;

[0035] Figure 9 These are schematic diagrams illustrating different scheduling processes for accessing hot and cold resources according to embodiments of this disclosure;

[0036] Figure 10 This is a structural block diagram of a node traffic scheduling device for a content delivery network according to an embodiment of the present disclosure;

[0037] Figure 11 This is a structural block diagram of a node traffic scheduling device for another content delivery network according to an embodiment of the present disclosure;

[0038] Figure 12 This is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present disclosure. Detailed Implementation

[0039] To make the objectives, technical solutions, and advantages of the embodiments of this disclosure clearer, the technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this disclosure, and not all embodiments. Based on the embodiments of this disclosure, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this disclosure.

[0040] According to an embodiment of this disclosure, a node traffic scheduling method for a content delivery network is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.

[0041] This embodiment provides a node traffic scheduling method for a content delivery network, which can be applied to the policy center of a CDN, and the policy center can be deployed on a central node. Figure 1 This is a flowchart of a node traffic scheduling method for a content delivery network according to an embodiment of this disclosure, such as... Figure 1 As shown, the process includes the following steps.

[0042] Step S101: Construct at least one traffic unit for each domain name.

[0043] In this embodiment, in order to schedule the traffic of each domain in the CDN, a corresponding traffic unit is constructed for each domain. For a given domain, one traffic unit or multiple traffic units can be constructed, depending on the actual situation.

[0044] Specifically, traffic units can be built for a domain based on the number of paths that can be used to distribute its traffic.

[0045] Step S102: Set up multiple intermediate units; each intermediate unit corresponds to multiple flow units.

[0046] Since CDNs have a large number of domains, the number of traffic units constructed is even greater. Modeling directly between traffic units and nodes would be highly complex. In this embodiment, an intermediate unit is added to the traffic unit to reduce the number of edges during modeling.

[0047] Specifically, multiple intermediate units are set up for multiple traffic units, and each traffic unit corresponds to a unique intermediate unit.

[0048] Each flow unit has corresponding attributes. Intermediate units can be set for flow units with at least some of the same attributes, so that one intermediate unit corresponds to multiple flow units. When building edges with nodes later, a smaller number of intermediate units can be used to build edges with nodes, resulting in fewer edges.

[0049] For example, the attributes of a flow unit include its region, which could be a province, etc.; an intermediate unit can be set for multiple flow units belonging to the same region. It can be understood that the intermediate unit's attributes also include a region, and this region is the same as the region of the corresponding flow unit.

[0050] Step S103: Establish an edge between the traffic unit and the corresponding intermediate unit, and establish an edge between the intermediate unit and the node unit used to schedule traffic for at least some domain names, thereby constructing a directed network.

[0051] In this embodiment, nodes used for traffic scheduling in the CDN can also be identified, and corresponding node units can be constructed for these nodes, that is, the node unit corresponds to a node in the CDN; for example, a unique node unit can be constructed for each node. After determining each traffic unit, intermediate unit, and node unit, the corresponding network, i.e., a directed network, can be constructed.

[0052] Specifically, based on the correspondence between flow units and intermediate units, edges can be built between flow units and corresponding intermediate units (i.e., edges are established to connect two units); and edges are also built between intermediate units and node units, thereby generating a three-layer directed network, with the first layer including multiple flow units, the second layer including multiple intermediate units, and the third layer including multiple node units.

[0053] In this system, intermediate units can establish edges with each node unit. Since intermediate units correspond to traffic units of a certain domain name, if a node unit can schedule the traffic of the domain name corresponding to an intermediate unit, then an edge can be established between that node unit and that intermediate unit.

[0054] Figure 2 A schematic diagram of a directed network structure is shown. For example... Figure 2As shown, there are five flow units, namely flow units 1-1 to 1-5, and four node units, namely node units 3-1 to 3-4. An intermediate unit 2-1 is set for flow units 1-1, 1-2, and 1-3, and an intermediate unit 2-2 is set for flow units 1-4 and 1-5. Node units 3-1 and 3-2 can schedule the flow from intermediate unit 2-1, so edges can be established between node units 3-1 and 3-2 and intermediate unit 2-1. If node units 3-3 and 3-4 can schedule the flow from both intermediate units 2-1 and 2-2, then edges can be established between node units 3-1 and 3-2 and both intermediate units 2-1 and 2-2. Furthermore, to facilitate subsequent network solving, this directed network also has a starting source node and an ending sink node.

[0055] It is understandable that this directed network is a network model used to determine scheduling strategies, and the node units are models of the corresponding CDN nodes; similarly, the traffic units and intermediate units are also models and do not represent real physical machines.

[0056] Step S104: Solve the directed network to determine the flow distribution ratio coefficient between the flow unit and at least some of the node units.

[0057] In this embodiment, the directed network is the physical model for traffic scheduling. After the directed network is generated, it can be solved to determine the traffic that should be transmitted between each traffic unit and the corresponding node, thereby determining the traffic allocation ratio coefficient between the traffic unit and the corresponding node unit.

[0058] like Figure 2 As shown, if traffic unit 1-1 corresponds to 10G of traffic; if, after solving the directed network, it is determined that allocating 6G of traffic to node unit 3-1 and the remaining 4G of traffic to node unit 3-2 is an optimal allocation strategy, then the traffic allocation ratio coefficient between traffic unit 1-1 and node unit 3-1 can be set to 0.6, and the traffic allocation ratio coefficient between traffic unit 1-1 and node unit 3-2 can be set to 0.4.

[0059] Step S105: Generate a scheduling strategy that includes traffic allocation ratio coefficients between each traffic unit and the corresponding node unit; the scheduling strategy is used to schedule the traffic of the domain name according to the traffic allocation ratio coefficients.

[0060] In this embodiment, after determining the traffic allocation ratio coefficient between each traffic unit and its corresponding node unit, a corresponding scheduling strategy can be generated. This scheduling strategy includes the traffic allocation ratio coefficient between each traffic unit and its corresponding node unit. When scheduling traffic for a specific domain name subsequently, the traffic for that domain name can be scheduled according to the corresponding traffic allocation ratio coefficient.

[0061] For example, taking the above example again, if the traffic allocation ratio coefficients between traffic unit 1-1 and node unit 3-1 and node unit 3-2 are 0.6 and 0.4 respectively, then when traffic scheduling is performed on the domain name corresponding to traffic unit 1-1, if the domain name has only one unique traffic unit 1-1, then 60% of the traffic of the domain name will be allocated to the physical node corresponding to node unit 3-1, and 40% of the traffic will be allocated to the physical node corresponding to node unit 3-2, thereby realizing traffic scheduling.

[0062] Optionally, after generating the scheduling policy, it can be sent to the CDN scheduler, instructing the scheduler to schedule traffic according to the policy. Specifically, this scheduler can be deployed at the CDN's edge scheduling center.

[0063] For example, after determining the current scheduling policy through modeling, the CDN's policy center can send this policy to the CDN's edge scheduling center, allowing the edge scheduling center's scheduler to perform traffic scheduling based on the acquired policy. The scheduler and policy center can interact in real-time using mechanisms such as heartbeats, ensuring the scheduler can perform scheduling based on the latest policy.

[0064] Traditional DNS scheduling, constrained by the number of IP addresses, limits the weighting ratios of domain names, resulting in coarse-grained scheduling that is unsuitable for small nodes with low bandwidth, low storage capacity, and poor stability; for example, achieving a 1:99 ratio is difficult. In this embodiment, however, corresponding traffic units are constructed for domain names, and corresponding node units are constructed for nodes. By solving the directed network problem, appropriate traffic allocation ratios can be configured as needed, significantly improving node control precision. Bandwidth control can be upgraded from the original GB (gigabyte) level to the MB (megabyte) level.

[0065] Furthermore, in traditional DNS scheduling, local DNS servers have a TTL (Time To Live) cache time, typically on the order of minutes, such as 2 or 3 minutes. When policies change, this cache time must elapse before the changes can be processed, resulting in poor timeliness. In this embodiment, however, the policy center can update the scheduling policy in real time. By setting up intermediate units, the number of edges in the directed network can be reduced, enabling rapid solution processing. It can also quickly update the scheduling policy when node quality is abnormal, thereby compressing the quality anomaly detection from minutes to seconds.

[0066] The node traffic scheduling method for the content delivery network provided in this embodiment constructs a directed network from traffic units to node units by setting traffic units corresponding to domain names and node units corresponding to nodes. By solving this directed network, appropriate traffic allocation ratio coefficients can be configured as needed to allocate traffic from multiple traffic units to multiple corresponding nodes, significantly improving the accuracy of node control. Furthermore, by setting a small number of intermediate units between traffic units and node units, the number of edges in the directed network can be reduced, enabling rapid solution and rapid updates to the scheduling strategy, which is beneficial for rapid switching in quality anomaly detection.

[0067] This embodiment provides another node traffic scheduling method for a content delivery network, which can be applied to the policy center of a CDN, and the policy center can be deployed on a central node. Figure 3 This is a flowchart of a node traffic scheduling method for a content delivery network according to an embodiment of this disclosure, such as... Figure 3 As shown, the process includes the following steps.

[0068] Step S301: Construct at least one traffic unit for each domain name.

[0069] Specifically, the above step S301 "constructing at least one traffic unit for each domain name" includes the following step S3011.

[0070] Step S3011: Based on at least one region and at least one operator corresponding to the domain name, construct at least one traffic unit for the domain name; wherein, when constructing multiple traffic units for the domain name, the region and operator corresponding to one traffic unit of the domain name are not exactly the same as the region and operator corresponding to another traffic unit of the domain name.

[0071] In this embodiment, the attributes of a domain name may specifically include region and operator. A given domain name may correspond to one region and one operator, or it may correspond to multiple regions and multiple operators. Based on the region and operator corresponding to the domain name, a corresponding traffic unit can be constructed for that domain name. Accordingly, the attributes of the traffic unit constructed for that domain name also include region and operator.

[0072] If a domain name corresponds to one region and one ISP, then only one traffic unit needs to be set for that domain. If a domain name corresponds to multiple regions and / or multiple ISPs, then multiple traffic units can be built for that domain. Furthermore, the region and ISP corresponding to one traffic unit of the domain name are not exactly the same as the region and ISP corresponding to another arbitrary traffic unit of the domain name; that is, at least one of the corresponding region and ISP is different. It can be understood that different traffic units of a domain name have different attributes.

[0073] Specifically, if a domain name corresponds to m regions and n operators, then a total of m×n traffic units can be constructed for that domain name; m and n are both positive integers.

[0074] Step S302: Set up multiple intermediate units; each intermediate unit corresponds to multiple flow units.

[0075] Specifically, step S302, "setting up multiple intermediate units", includes step S3021.

[0076] Step S3021: Set up multiple intermediate units corresponding to different regions, or set up multiple intermediate units whose corresponding regions and operators are not completely the same.

[0077] In this embodiment, the attributes of the traffic unit include region and operator. When setting up the intermediate unit, it can be set based on only the region dimension, that is, a corresponding intermediate unit is set for traffic units in different regions, thereby generating multiple intermediate units. In this case, different intermediate units correspond to different regions, that is, the attributes of the intermediate unit can only include region.

[0078] Alternatively, based on the two dimensions of region and operator, corresponding intermediate units can be set up for traffic units of different regions and different operators. In this case, different intermediate units correspond to different regions or different operators, that is, the attributes of the intermediate units include not only the region but also the operator.

[0079] Figure 4 Another schematic diagram of a directed network is shown for ease of description. Figure 4 Information related to the operator is not shown. Figure 4As shown, if the domain name a.com corresponds to Zone 1 and Zone 3, then two traffic units can be set for this domain name a.com, namely "a.com_Zone 1" and "a.com_Zone 3". It can be understood that if the domain name a.com specifically corresponds to Operator 1 and Operator 2 in Zone 1, then traffic units such as "a.com_Zone 1_Operator 1" and "a.com_Zone 1_Operator 2" can be constructed, which will not be detailed here. Similarly, if the domain name b.com corresponds to Zone 1 and the domain name c.com corresponds to Zone 2, then a traffic unit "b.com_Zone 1" can be constructed for the domain name b.com, and a traffic unit "c.com_Zone 2" can be constructed for the domain name c.com.

[0080] Furthermore, corresponding intermediate units can be set according to the regional attributes of the flow units, such as... Figure 4 As shown, intermediate units can be set for Region 1, Region 2, and Region 3 respectively. For details on the edges between each flow unit and its corresponding intermediate unit, please refer to [link to documentation]. Figure 4 As shown.

[0081] Step S303: Group at least some small nodes belonging to the same region and the same operator into a group to form a virtual node containing at least some small nodes; the small node is a node with performance lower than a preset value.

[0082] In this embodiment, nodes in the CDN with performance below a preset value are referred to as small nodes. This performance can specifically include bandwidth, storage capacity, stability, etc. For example, nodes with low bandwidth, low storage capacity, and poor stability can be called small nodes. If node units are directly set for each small node, due to their poor performance, anomalies are more likely to occur, and the resource hit rate is also low. In this embodiment, multiple small nodes are treated as a whole and called a virtual node, which represents multiple small nodes.

[0083] Specifically, each small node is a real CDN physical node with attributes such as region and carrier. Multiple small nodes with the same region and carrier can be grouped together to form a corresponding virtual node. Among them, for all small nodes with the same region and carrier, a unique virtual node can be generated, or multiple virtual nodes can be generated, depending on the actual situation.

[0084] For example, the regions of small nodes can be further divided; for example, if the region is a province, the city corresponding to each small node can be determined, and multiple small nodes in the same city and the same operator can be grouped together to form virtual nodes.

[0085] Step S304: Construct node units corresponding to the virtual nodes.

[0086] In this embodiment, after determining the virtual nodes corresponding to multiple small nodes, the node units corresponding to these virtual nodes can be constructed, and a directed network can be constructed based on the node units of the virtual nodes.

[0087] like Figure 4 As shown, four virtual nodes, namely virtual nodes 1 to 4, are generated for small nodes in different regions or by different operators. Then, corresponding node units can be generated for each virtual node to realize the modeling of virtual nodes.

[0088] It is understandable that all node units in this directed network can be node units corresponding to virtual nodes, meaning that this directed network is only used for traffic scheduling of small nodes. Alternatively, some node units in this directed network correspond to virtual nodes, while other node units correspond to nodes with normal performance, such as large-capacity nodes in a data center. In this case, the directed network can be used to schedule both small and normal nodes.

[0089] In some alternative implementations, the method further includes step A1.

[0090] Step A1: Set corresponding weight coefficients for each small node in the virtual node; the scheduling strategy also includes the weight coefficients for each small node in the virtual node; the scheduling strategy is also used to allocate the traffic allocated to the virtual node to the corresponding small nodes in the virtual node according to the weight coefficients.

[0091] In this embodiment, in order to achieve precise scheduling of each small node in the virtual node, a corresponding weight coefficient is set for each small node; for example, the weight coefficient can be set based on the capacity of each small node, and the larger the capacity of the small node, the larger its weight coefficient.

[0092] When generating the scheduling policy, the weight coefficients of each small node in the virtual node are also added to the scheduling policy. When traffic is scheduled based on this scheduling policy, the traffic allocated to the virtual node can be further scheduled to determine which small node needs to be used.

[0093] Optionally, due to the poor performance of small CDN nodes, they are prone to quality issues, such as node suspension and IP unavailability. To address these quality issues, a state machine can be maintained for each small node to switch between states such as node offline, suspension, and normal operation. Figure 5 This diagram illustrates a switching pattern for a small node state machine. By utilizing the small node state machine, the state of each small node can be perceived in a timely manner, enabling prompt detection of node anomalies and updates to the scheduling policy. The policy center and scheduler can maintain high-frequency, second-level interactions, achieving timely scheduling awareness.

[0094] Step S305: Establish an edge between the traffic unit and the corresponding intermediate unit, and establish an edge between the intermediate unit and the node unit used to schedule traffic for at least some domain names, thereby constructing a directed network.

[0095] Please see details Figure 1 Step S103 of the illustrated embodiment will not be described again here.

[0096] Step S306: Solve the directed network to determine the flow distribution ratio coefficient between the flow unit and at least some of the node units.

[0097] Please see details Figure 1 Step S104 of the illustrated embodiment will not be described again here.

[0098] In some alternative implementations, the minimum-cost maximum flow model can be used for solving. Specifically, the method further includes step B1.

[0099] Step B1 sets corresponding attribute information for the edges between the flow unit and the intermediate unit, and for the edges between the intermediate unit and the node unit; the attribute information includes the upper limit of the flow of the edge and the amount of resources consumed by the transmission unit flow.

[0100] Furthermore, the aforementioned step S306, "solving the directed network," may include step C1.

[0101] Step C1: Solve the directed network with the goal of maximizing the total transmitted traffic and minimizing the total resource consumption.

[0102] In this embodiment, the constructed directed network is a network flow graph, where the edges between each unit can be configured with certain attribute information. Specifically, the attribute information configured for each edge in the directed network includes a maximum flow limit and the amount of resources consumed per unit of flow transmitted.

[0103] The traffic limit refers to the maximum traffic that the edge can transmit, which can be determined based on the actual situation. The resource quantity refers to how much resource the edge needs to consume to transmit a unit of traffic (e.g., 1GB of traffic), and this resource quantity can be specifically represented by fees, etc.

[0104] After setting the attribute information of each edge, the directed network can be solved based on the solution method of the minimum cost maximum flow model, with the objective of maximizing the total transmitted traffic and minimizing the total resource consumption. This allows us to determine how to allocate traffic so that the directed network can transmit the maximum traffic with the minimum resources. For example, a weak polynomial complexity algorithm can be used to avoid excessively high solution complexity; other solution methods can also be used, which are not limited in this embodiment.

[0105] In this embodiment, the directed network is solved with the goal of maximizing the total transmitted traffic and minimizing the total resource consumption. This not only allows for a simple and fast solution but also avoids getting trapped in the local optima of greedy algorithms.

[0106] Optionally, step S305, "establishing an edge between the intermediate unit and the node unit used for scheduling traffic for at least a portion of the domain names," may specifically include step D1.

[0107] Step D1: Establish a first edge and a second edge between the intermediate unit and the node unit; the attribute information of the first edge includes the first flow limit and the first resource amount consumed per unit of flow transmitted, and the attribute information of the second edge includes the second flow limit and the second resource amount consumed per unit of flow transmitted.

[0108] The first traffic limit and the first resource amount are actual values ​​determined based on the actual situation between the intermediate unit and the node unit; the second traffic limit matches the amount of traffic transmitted between the intermediate unit and the node unit in the previous generation scheduling policy period; the second resource amount is less than the first resource amount and less than the preset minimum resource amount threshold.

[0109] A directed network can be constructed by establishing an edge between the intermediate unit and the node unit. In this embodiment, at least two edges are established between the intermediate unit and the node unit, namely the first edge and the second edge. By setting appropriate attribute information for the first edge and the second edge, traffic scheduling can be achieved while preventing node policy jitter.

[0110] Specifically, when establishing the first edge between the intermediate unit and the node unit, the first edge can be set with normal attribute information in the manner of establishing a unique edge, that is, the first traffic limit and the first resource quantity in the first edge are normal real values; for example, the first traffic limit can be set based on the actual traffic limit between the intermediate unit and the node unit, and the first resource quantity can be set based on the actual cost between the intermediate unit and the node unit.

[0111] Since scheduling policies can be generated multiple times in real time, multiple periods for generating scheduling policies can be defined, such as a period of time. When establishing a second edge between an intermediate unit and a node unit, the amount of traffic transmitted between the intermediate unit and the node unit in the previous period of generating a scheduling policy can be determined, and a second traffic limit for the second edge can be set based on this traffic amount; for example, the second traffic limit is less than or equal to the traffic amount. Furthermore, a smaller second resource amount is set for the second edge, that is, the second resource amount is less than the first resource amount and less than a preset minimum resource amount threshold. This minimum resource amount threshold can, for example, be the minimum resource amount among all edges.

[0112] By establishing a first edge and a second edge between the intermediate unit and the node unit, when solving the directed network, since the second edge has a smaller second resource quantity, the second edge will be allocated the second flow limit first. This will ensure that in the current cycle, the second flow limit will also be allocated between the intermediate unit and the node unit, consistent with the previous cycle. This prioritizes fixing the flow to the node allocated in the previous cycle, which can effectively prevent node policy jitter.

[0113] Figure 6 This illustrates another structural diagram of a directed network, which is... Figure 4 The improvements shown are based on the directed network. For example... Figure 6 As shown, if the 5G traffic transmitted by traffic unit "a.com_area 1" was allocated to virtual node 1 in the previous cycle, then in the current cycle, in addition to establishing the first edge between the intermediate unit corresponding to traffic unit "a.com_area 1" and the node unit corresponding to virtual node 1, a second edge is also established with a second traffic limit of 5G and a second resource quantity that is relatively small, forming a new scheduling strategy. When scheduling is performed subsequently based on this new scheduling strategy, the 5G traffic of traffic unit "a.com_area 1" will be preferentially reallocated to virtual node 1, effectively avoiding node jitter.

[0114] Alternatively, step S305 "constructing a directed network" may specifically include step D2.

[0115] Step D2: Set up the sink of the directed network; build edges between each node unit and the sink, and there are multiple edges between each node unit and the sink; each edge between the node unit and the sink corresponds to a different amount of resources, and the sum of the upper limits of the traffic corresponding to all edges between the node unit and the sink is the upper limit of the traffic between the node unit and the sink.

[0116] As mentioned above, a directed network has a sink, and each node unit is connected to the sink via corresponding edges. In this embodiment, multiple edges are connected between the node unit and the sink, and each edge corresponds to a certain traffic limit, such that the sum of the traffic limits corresponding to all edges is the traffic limit between the corresponding node unit and the sink; furthermore, each edge is configured with different resource amounts, meaning that the amount of resources consumed by the same node unit to reach the sink varies depending on the edge it is connected to.

[0117] Specifically, for different node units, the resource amount set for one edge of one node unit is the same as the resource amount set for one edge of another node unit, that is, the resource amount set for the three edges of different node units is the same.

[0118] like Figure 6As shown, each virtual node corresponds to a node unit with three edges connected to the sink. The maximum flow of each edge can be set to 1 / 3 of the maximum capacity between the corresponding node unit and the sink; and the resource amounts of the three edges increase sequentially. Since each node unit has both low-resource and high-resource edges, therefore, when dealing with... Figure 6 When solving the directed network shown, each node unit is preferentially allocated a portion of the traffic (e.g., 1 / 3 of the traffic) to ensure the balance of traffic usage among nodes.

[0119] Step S307: Generate a scheduling strategy that includes traffic allocation ratio coefficients between each traffic unit and the corresponding node unit; the scheduling strategy is used to schedule the traffic of the domain name according to the traffic allocation ratio coefficients.

[0120] Please see details Figure 1 Step S105 of the illustrated embodiment will not be described again here.

[0121] The node traffic scheduling method for the content delivery network provided in this embodiment significantly improves node control accuracy and facilitates rapid switching in response to quality anomalies. Treating multiple small nodes as a virtual node and utilizing this virtual node for traffic scheduling not only addresses quality anomalies in small nodes but also improves the overall resource hit rate. Establishing a first and second edge between intermediate units and node units prevents node policy jitter; establishing multiple edges between node units and the sink, with each edge having progressively increasing resource amounts, ensures balanced resource usage among nodes.

[0122] This embodiment provides a node traffic scheduling method for a content delivery network, which can be applied to a CDN scheduler. Specifically, the scheduler can be deployed at the edge scheduling center of the CDN. Figure 7 This is a flowchart of a node traffic scheduling method for a content delivery network according to an embodiment of this disclosure, such as... Figure 7 As shown, the process includes the following steps.

[0123] Step S701: Obtain the access request initiated by the client.

[0124] Step S702: Determine the node to respond to the access request according to the scheduling policy.

[0125] In this embodiment, the scheduler and the policy center can interact in real time based on a heartbeat mechanism to obtain the scheduling policy generated by the policy center in real time. This scheduling policy is generated based on the method provided in the above embodiments, and will not be described in detail here.

[0126] If the scheduler receives an access request from a client, it indicates that the request needs to be scheduled. At this point, the scheduler can determine the node to respond to the access request based on the scheduling policy, and thus instruct that node to respond to the access request and return the corresponding resources to the client. This node can be a physical node of the CDN.

[0127] Figure 8 A timing diagram for traffic scheduling is shown. For example... Figure 8 As shown, the policy center can determine each traffic unit, intermediate unit, and node unit based on node information and domain name information, and build edges to construct a directed network; furthermore, based on log data, it can determine the traffic size corresponding to each traffic unit to solve the directed network and generate the optimal scheduling policy; and based on the quality data of each node, it can update the scheduling policy in a timely manner.

[0128] The scheduler at the CDN edge can maintain high-frequency interaction with the policy center at the second level to obtain the latest scheduling policy in a timely manner and use the latest scheduling policy as the local policy.

[0129] When a client initiates an access request, the server at the access node receives the request and determines whether the domain name being accessed has 302 redirect enabled. If 302 redirects are not enabled, the server responds directly to the request without needing a scheduler. Conversely, if 302 redirects are enabled, the server forwards the request to the scheduler. Upon receiving the request, the scheduler makes a traffic scheduling decision based on locally stored policies (i.e., scheduling policies generated by the policy center), thereby determining the appropriate physical node to respond to the access request.

[0130] The node traffic scheduling method for the content delivery network provided in this embodiment allows the scheduler to perform traffic scheduling based on the scheduling policy generated by the policy center, enabling precise line control. Furthermore, the scheduler and the policy center can interact at the second level, allowing for timely acquisition of the latest scheduling policy and reducing the quality anomaly detection switching from minutes to seconds.

[0131] In some alternative implementations, step S702, "determining the node to respond to the access request according to the scheduling policy," may specifically include steps E1 to E2.

[0132] Step E1: Determine the target node unit for responding to the access request based on the corresponding traffic allocation ratio coefficient in the scheduling strategy.

[0133] Step E2: In the case of a virtual node corresponding to the target node unit, select the target small node to respond to the access request based on the weight coefficient of each small node in the target node unit.

[0134] In this embodiment, when the scheduler performs traffic scheduling, it first schedules the current access request based on the traffic allocation ratio coefficient between the traffic unit and the node unit to determine the node unit to respond to the access request, i.e., the target node unit.

[0135] For example, if the current scheduling policy is based on Figure 4 As shown in the directed network diagram, when the scheduler receives an access request for the domain name a.com, if the access request corresponds to region 3, the scheduler can determine, based on the current scheduling policy, that either virtual node 3 or virtual node 4 can be used to respond to the access request. If the traffic allocation ratio coefficients between the traffic unit "a.com_region 3" and virtual nodes 3 and 4 are 0.2 and 0.8 respectively, then the access request has a 20% probability of being allocated to virtual node 3 and an 80% probability of being allocated to virtual node 4. If it is ultimately determined that the access request is allocated to virtual node 3, then the node unit corresponding to virtual node 3 is the target node unit.

[0136] If the target node unit corresponds to a virtual node, since a virtual node includes multiple real sub-nodes, it is necessary to further determine which sub-node should respond. Specifically, the sub-node used to respond to the access request, i.e., the target sub-node, can be selected based on the weight coefficients of each sub-node in the target node unit. The principle of selecting the target sub-node based on the weight coefficients is similar to the principle of determining the target node unit based on the traffic allocation ratio coefficient, and will not be elaborated here.

[0137] Optionally, step E1, "determine the target node unit for responding to the access request based on the corresponding traffic allocation ratio coefficient in the scheduling strategy," may include steps E11 to E12.

[0138] Step E11: When the access request is used to access cold resources, determine the hash value of the access request; perform consistent hashing based on the hash value and the corresponding traffic allocation ratio coefficient in the scheduling policy to determine the target node unit for the access request to respond.

[0139] Step E12: When the access request is for accessing hot resources, a round-robin approach is used to determine the target node unit for responding to the access request based on the corresponding traffic allocation ratio coefficient in the scheduling strategy.

[0140] Similarly, step E2 above, "selecting the target small node for responding to the access request based on the weight coefficient of each small node in the target node unit", may include the following steps E21 to E22.

[0141] Step E21: When the access request is used to access a cold resource, determine the hash value of the access request; perform consistent hashing based on the hash value and the weight coefficients of each small node in the target node unit to determine the target small node for the access request to respond.

[0142] Step E22: When the access request is for accessing hot resources, a round-robin method is used to select the target small node to respond to the access request based on the weight coefficient of each small node in the target node unit.

[0143] In this embodiment, the resource accessed by the access request may be a cold resource with a low access frequency or a hot resource with a high access frequency; cold resources and hot resources can be divided based on actual needs, and this is not limited here.

[0144] If the access request is for a cold resource, a consistent hashing method is used to determine the appropriate physical machine, so that the same physical machine is used as much as possible when accessing the same resource, which can also improve the hit rate of the physical machine. If the access request is for a hot resource, a round-robin method is used to determine the appropriate physical machine, avoiding problems such as overheating of a node or scheduling deviation, and can better control the node level.

[0145] Figure 9 The different scheduling procedures for accessing hot and cold resources are illustrated. For example... Figure 9 As shown, if an access request is used to access a cold resource, the hash value of the access request can be determined. For example, the hash value can be determined based on the address of the resource accessed by the access request. When determining the virtual node to respond, consistent hashing can be performed based on the hash value and the corresponding traffic allocation ratio coefficient in the scheduling policy to determine the node unit corresponding to the virtual node. For example, a hash ring can be established based on the traffic allocation ratio coefficient, and the target node unit can be determined by which position in the hash ring the hash value hits. The detailed process of consistent hashing is not described in this embodiment.

[0146] One approach is to first determine whether a virtual node needs to be used based on the hash value. If a virtual node is not needed, a large-capacity edge node can be used directly for the response. It is understood that determining whether to use a virtual node is not a necessary step.

[0147] After determining the target node unit, if the target node unit is a virtual node, it is necessary to further perform consistent hashing based on the hash value and the weight coefficients of each small node within the virtual node to determine the corresponding target small node, that is, the physical machine where the target small node is located will respond.

[0148] Similarly, if the access request is for accessing a hot resource, consistent hashing is not used; instead, a round-robin approach is employed to select the appropriate target node unit and its corresponding target sub-node. For example... Figure 9 As shown, the WRR (Weighted Round Robin) method can be used, which will not be elaborated here.

[0149] Optionally, the "selecting the target small node for responding to the access request" in step E2 or step E22 above may further include:

[0150] Step E23: Determine whether the physical machine where the target node is located has multiple lines.

[0151] Step E24: In the case of multiple lines, select one line as the line to respond to the access request using a round-robin method.

[0152] In this embodiment, since some physical machines in the CDN can be equipped with multiple network cards, each network card is equipped with a corresponding public IP address, which corresponds to one line, after determining the target small node, it is necessary to further determine whether the physical machine where the target small node is located has multiple lines, that is, to determine whether the physical machine has multiple network cards.

[0153] like Figure 9 As shown, if the physical machine has only one line, the single line can be selected directly, and the response will be based on the physical machine's public IP address. If the physical machine has multiple lines, a round-robin approach (regardless of whether it is a cold or hot resource) can be used to select one line as the line to respond to access requests, thus ensuring the balance of each line.

[0154] For small nodes that need to be scheduled, a backup 302 server can be deployed for them. When the network card bandwidth of the physical machine where the small node is located is fully utilized, access requests can be redirected to large-capacity nodes at the edge according to a certain preset ratio to reduce the probability of overloading the node.

[0155] In this embodiment, the scheduler uses consistent hashing and round-robin scheduling for cold and hot resources respectively, which can guarantee the hit rate of physical machines and achieve the balance of each physical machine, preventing hot resources from overwhelming the nodes.

[0156] This embodiment also provides a node traffic scheduling device for a content delivery network, which is used to implement the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can be a combination of software and / or hardware that implements a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.

[0157] This embodiment provides a node traffic scheduling device for a content delivery network, which can be applied to a policy center, such as... Figure 10 As shown, it includes:

[0158] Traffic unit module 1001 is used to build at least one traffic unit for each domain name;

[0159] Intermediate unit module 1002 is used to set up multiple intermediate units; each intermediate unit corresponds to a multiple flow unit;

[0160] The network construction module 1003 is used to build an edge between the traffic unit and the corresponding intermediate unit, and to build an edge between the intermediate unit and the node unit used to schedule traffic for at least a portion of the domain names, thereby constructing a directed network.

[0161] Processing module 1004 is used to solve the directed network and determine the flow allocation ratio coefficient between the flow unit and at least some of the node units;

[0162] The strategy generation module 1005 is used to generate a scheduling strategy including a traffic allocation ratio coefficient between each traffic unit and the corresponding node unit; the scheduling strategy is used to schedule the traffic of the domain name according to the traffic allocation ratio coefficient.

[0163] In some alternative embodiments, the apparatus further includes a node unit module for:

[0164] At least some small nodes belonging to the same region and the same operator are grouped together to form a virtual node containing the at least some small nodes; the small nodes are nodes with performance lower than a preset value;

[0165] Construct node units corresponding to the virtual nodes.

[0166] In some optional embodiments, the processing module 1004 is further configured to:

[0167] The scheduling strategy sets a corresponding weight coefficient for each sub-node in the virtual node; the scheduling strategy also includes the weight coefficient of each sub-node in the virtual node; the scheduling strategy is further used to allocate the traffic allocated to the virtual node to the corresponding sub-node in the virtual node according to the weight coefficient.

[0168] In some optional implementations, the traffic unit module 1001 constructs at least one traffic unit for each domain name, including:

[0169] Based on at least one region and at least one operator corresponding to the domain name, at least one traffic unit is constructed for the domain name; wherein, when multiple traffic units are constructed for the domain name, the region and operator corresponding to one traffic unit of the domain name are not exactly the same as the region and operator corresponding to another traffic unit of the domain name.

[0170] The intermediate unit module 1002 is provided with multiple intermediate units, including:

[0171] Set up multiple intermediate units corresponding to different regions; or set up multiple intermediate units whose corresponding regions and operators are not exactly the same.

[0172] In some alternative implementations, the network building module 1003 is also used for:

[0173] For the edge between the traffic unit and the intermediate unit, and for the edge between the intermediate unit and the node unit, respectively set corresponding attribute information; the attribute information includes the upper limit of the traffic of the edge and the amount of resources consumed by transmitting a unit of traffic;

[0174] The processing module 1004 solves the directed network, including:

[0175] The directed network is solved with the goal of maximizing the total transmitted traffic and minimizing the total resource consumption.

[0176] In some optional implementations, the network construction module 1003 establishes an edge between the intermediate unit and the node unit for scheduling traffic for at least a portion of the domain names, including:

[0177] A first edge and a second edge are established between the intermediate unit and the node unit; the attribute information of the first edge includes a first traffic limit and a first resource consumption per unit of traffic transmitted, and the attribute information of the second edge includes a second traffic limit and a second resource consumption per unit of traffic transmitted.

[0178] Wherein, the first traffic limit and the first resource amount are actual values ​​determined based on the actual situation between the intermediate unit and the node unit; the second traffic limit matches the amount of traffic transmitted between the intermediate unit and the node unit in the previous generation of scheduling policy period; the second resource amount is less than the first resource amount and less than a preset minimum resource amount threshold.

[0179] In some optional implementations, the network construction module 1003 constructs a directed network by including:

[0180] Set the sink of the directed network;

[0181] An edge is constructed between each node unit and the sink, and multiple edges are constructed between each node unit and the sink. Each edge between the node unit and the sink corresponds to a different resource amount, and the sum of the upper limits of the traffic corresponding to all edges between the node unit and the sink is the upper limit of the traffic between the node unit and the sink.

[0182] In some alternative implementations, the apparatus further includes a sending module for: sending the scheduling policy to a scheduler, instructing the scheduler to perform traffic scheduling according to the scheduling policy.

[0183] This embodiment provides a node traffic scheduling device for a content delivery network, which can be applied to a scheduler, such as... Figure 11 As shown, it includes:

[0184] The acquisition module 1101 is used to acquire access requests initiated by the client;

[0185] The scheduling module 1102 is used to determine the node to respond to the access request according to the scheduling strategy; the scheduling strategy is generated based on the method provided in any of the above embodiments.

[0186] In some optional implementations, the scheduling module 1102 determines the node to respond to the access request according to a scheduling policy, including:

[0187] The target node unit for responding to the access request is determined based on the corresponding traffic allocation ratio coefficient in the scheduling strategy.

[0188] In the case where the target node unit corresponds to a virtual node, the target small node for responding to the access request is selected according to the weight coefficient of each small node in the target node unit.

[0189] In some optional implementations, the scheduling module 1102 determines the target node unit for responding to the access request based on the corresponding traffic allocation ratio coefficient in the scheduling strategy, including:

[0190] When the access request is for accessing a cold resource, the hash value of the access request is determined; consistent hashing is performed based on the hash value and the corresponding traffic allocation ratio coefficient in the scheduling policy to determine the target node unit for responding to the access request.

[0191] When the access request is for accessing hot resources, a round-robin approach is used to determine the target node unit to respond to the access request based on the corresponding traffic allocation ratio coefficient in the scheduling strategy.

[0192] And / or,

[0193] The scheduling module 1102 selects a target node for responding to the access request based on the weight coefficients of each sub-node in the target node unit, including:

[0194] When the access request is for accessing a cold resource, the hash value of the access request is determined; consistent hashing is performed based on the hash value and the weight coefficients of each small node in the target node unit to determine the target small node for responding to the access request.

[0195] When the access request is for accessing hot resources, a round-robin approach is used to select the target node to respond to the access request based on the weight coefficients of each small node in the target node unit.

[0196] In some optional implementations, the scheduling module 1102 selects a target small node for responding to the access request, including:

[0197] Determine whether the physical machine containing the target node has multiple lines;

[0198] In the presence of multiple lines, a round-robin approach is used to select one line as the line to respond to the access request.

[0199] Further functional descriptions of the above modules and units are the same as those in the corresponding embodiments described above, and will not be repeated here.

[0200] In this embodiment, the node traffic scheduling device of the content delivery network is presented in the form of a functional unit. Here, a unit refers to an ASIC (Application Specific Integrated Circuit) circuit, including a processor and memory that execute one or more software or fixed programs, and / or other devices that can provide the above functions.

[0201] This disclosure also provides a computer device having the above-described features. Figure 10 or Figure 11 The node traffic scheduling device of the content delivery network shown is illustrated.

[0202] Please see Figure 12 , Figure 12 This is a schematic diagram of the structure of a computer device provided in an optional embodiment of this disclosure, such as... Figure 12As shown, the computer device includes one or more processors 10, memory 20, and interfaces for connecting the components, including high-speed interfaces and low-speed interfaces. The components communicate with each other via different buses and can be mounted on a common motherboard or otherwise installed as needed. The processors can process instructions executed within the computer device, including instructions stored in or on memory to display graphical information of a GUI on external input / output devices (such as display devices coupled to the interfaces). In some alternative implementations, multiple processors and / or multiple buses can be used with multiple memories, if desired. Similarly, multiple computer devices can be connected, each providing some of the necessary operations (e.g., as a server array, a group of blade servers, or a multiprocessor system). Figure 12 Take a processor 10 as an example.

[0203] Processor 10 may be a central processing unit, a network processor, or a combination thereof. Processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The programmable logic device may be a complex programmable logic device (CAMP), a field-programmable gate array (FPGA), a general-purpose array logic (GDA), or any combination thereof.

[0204] The memory 20 stores instructions executable by at least one processor 10 to cause the at least one processor 10 to perform the method shown in the above embodiments.

[0205] The memory 20 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the use of the computer device. Furthermore, the memory 20 may include high-speed random access memory and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, the memory 20 may optionally include memory remotely located relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.

[0206] The memory 20 may include volatile memory, such as random access memory; the memory may also include non-volatile memory, such as flash memory, hard disk or solid-state drive; the memory 20 may also include a combination of the above types of memory.

[0207] The computer device also includes a communication interface 30 for communicating with other devices or communication networks.

[0208] This disclosure also provides a computer-readable storage medium in which the methods described in this disclosure can be implemented in hardware or firmware, or implemented as recordable on a storage medium, or implemented as computer code originally stored on a remote storage medium or a non-transitory machine-readable storage medium and subsequently stored on a local storage medium after being downloaded over a network. Thus, the methods described herein can be processed by software stored on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. The storage medium may be a magnetic disk, optical disk, read-only memory, random access memory, flash memory, hard disk, or solid-state drive, etc.; further, the storage medium may also include combinations of the above types of memory. It is understood that computers, processors, microprocessor controllers, or programmable hardware include storage components capable of storing or receiving software or computer code that, when accessed and executed by the computer, processor, or hardware, implements the methods shown in the above embodiments.

[0209] A portion of this disclosure can be applied to computer program products, such as computer program instructions, which, when executed by a computer, can invoke or provide methods and / or technical solutions according to this disclosure through the operation of the computer. Those skilled in the art will understand that the forms in which computer program instructions exist in a computer-readable medium include, but are not limited to, source files, executable files, and installation package files. Accordingly, the ways in which computer program instructions are executed by a computer include, but are not limited to: the computer directly executing the instructions; the computer compiling the instructions and then executing the corresponding compiled program; the computer reading and executing the instructions; or the computer reading and installing the instructions and then executing the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to a computer.

[0210] Although embodiments of the present disclosure have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the present disclosure, and such modifications and variations all fall within the scope defined by the appended claims.

Claims

1. A method for node traffic scheduling of a content distribution network, characterized in that, The method comprises: constructing at least one traffic unit for each domain name; each traffic unit has corresponding attributes; setting multiple intermediate units; the intermediate units correspond to multiple traffic units with at least partially same attributes; edges are built between the traffic units and the corresponding intermediate units, and edges are built between the intermediate units and node units used for scheduling traffic of at least part of the domain names, to construct a directed network; the directed network is a network model used for determining a scheduling strategy, and the traffic units, the intermediate units, and the node units in the directed network are all virtual models; the intermediate units are used for reducing the number of edges during modeling; the node units are constructed based on nodes used for scheduling traffic in a CDN; setting corresponding attribute information for edges between the traffic units and the intermediate units, and edges between the intermediate units and the node units; the attribute information comprises a traffic upper limit of an edge and resource consumption of a transmission unit traffic; solving the directed network to determine a traffic distribution proportion coefficient between the traffic units and at least part of the node units; generating a scheduling strategy comprising the traffic distribution proportion coefficient between each traffic unit and a corresponding node unit; the scheduling strategy is used for scheduling traffic of the domain names according to the traffic distribution proportion coefficient; wherein the solving of the directed network comprises: solving the directed network with the maximum total traffic transmission and the minimum total resource consumption as the target.

2. The method of claim 1, wherein, Further comprising: regarding at least part of small nodes belonging to the same region and the same operator as a group to form a virtual node comprising the at least part of small nodes; the small nodes are nodes with performance lower than a preset value; constructing a node unit corresponding to the virtual node.

3. The method of claim 2, wherein, Further comprising: setting a corresponding weight coefficient for each small node in the virtual node; the scheduling strategy further comprises the weight coefficient of each small node in the virtual node; the scheduling strategy is further used for distributing traffic allocated to the virtual node to corresponding small nodes in the virtual node according to the weight coefficient.

4. The method according to any one of claims 1 to 3, characterized in that, The constructing of at least one traffic unit for each domain name comprises: constructing at least one traffic unit for the domain name according to at least one region and at least one operator corresponding to the domain name; wherein in the case of constructing multiple traffic units for the domain name, the region and the operator corresponding to one traffic unit of the domain name are not completely same as the region and the operator corresponding to another traffic unit of the domain name; The setting of multiple intermediate units comprises: setting multiple intermediate units corresponding to different regions; or, setting multiple intermediate units with corresponding regions and operators that are not completely same.

5. The method of claim 1, wherein, The building of edges between the intermediate units and the node units used for scheduling traffic of at least part of the domain names comprises: establish a first edge and a second edge between the intermediate unit and the node unit; attribute information of the first edge includes a first traffic upper limit of the first edge and a first resource amount consumed by a unit of traffic transmission, and attribute information of the second edge includes a second traffic upper limit of the second edge and a second resource amount consumed by a unit of traffic transmission; wherein the first traffic upper limit and the first resource amount are real values determined based on actual conditions between the intermediate unit and the node unit; the second traffic upper limit matches a traffic size transmitted between the intermediate unit and the node unit in a last generation scheduling strategy cycle; the second resource amount is less than the first resource amount and less than a preset minimum threshold of resource amount.

6. The method of claim 1, wherein, The method comprises: setting a sink point of the directed network; building edges between each node unit and the sink point, and multiple edges between the node unit and the sink point; each edge between the node unit and the sink point corresponds to a different resource amount, and a sum of traffic upper limits corresponding to all edges between the node unit and the sink point is a traffic upper limit between the node unit and the sink point.

7. The method of claim 1, wherein, Further comprising: sending the scheduling strategy to a scheduler to instruct the scheduler to perform traffic scheduling according to the scheduling strategy.

8. A method of node traffic scheduling for a content distribution network, characterized in that, The method comprises: obtaining an access request initiated by a client; determining a node for responding to the access request according to a scheduling strategy; the scheduling strategy is generated based on the method of any one of claims 1 to 7.

9. The method of claim 8, wherein, The method comprises: determining a target node unit for responding to the access request according to a corresponding traffic allocation proportion coefficient in the scheduling strategy; in the case of a corresponding virtual node of the target node unit, selecting a target small node for responding to the access request according to a weight coefficient of each small node in the target node unit.

10. The method of claim 9, wherein, The method comprises: in the case of the access request for accessing cold resources, determining a hash value of the access request; performing consistent hash processing according to the hash value and the corresponding traffic allocation proportion coefficient in the scheduling strategy to determine the target node unit for responding to the access request; in the case of the access request for accessing hot resources, determining the target node unit for responding to the access request according to the corresponding traffic allocation proportion coefficient in the scheduling strategy in a polling manner; and / or The method comprises: in the case of the access request for accessing cold resources, determining a hash value of the access request; performing consistent hash processing according to the hash value and the weight coefficient of each small node in the target node unit to determine the target small node for responding to the access request; in the case of the access request for accessing hot resources, determining the target small node for responding to the access request according to the weight coefficient of each small node in the target node unit in a polling manner. In the case that the access request is for accessing a hot resource, a target small node is selected for responding to the access request according to the weight coefficients of each small node in the target node unit in a polling manner.

11. The method of claim 9, wherein, The target small node selected for responding to the access request comprises: judging whether the physical machine where the target small node is located has multiple lines; In the case that the physical machine has multiple lines, one of the lines is selected as a line for responding to the access request in a polling manner.

12. A node traffic scheduling apparatus of a content distribution network, characterized by, The device comprises: a traffic unit module configured to construct at least one traffic unit for each domain name; each traffic unit has a corresponding attribute; an intermediate unit module configured to set multiple intermediate units; the intermediate units correspond to multiple traffic units that have at least partially the same attributes; a network construction module configured to build edges between the traffic units and the corresponding intermediate units, and build edges between the intermediate units and node units for scheduling traffic of at least part of the domain names, and construct a directed network; the directed network is a network model for determining a scheduling strategy, and the traffic units, the intermediate units and the node units in the directed network are all virtual models, the intermediate units are used to reduce the number of edges during modeling, and the node units are constructed based on nodes for scheduling traffic in a CDN; the network construction module is further configured to set corresponding attribute information for the edges between the traffic units and the intermediate units, and the edges between the intermediate units and the node units; the attribute information includes a traffic upper limit of an edge and a resource amount consumed by a transmission unit traffic; a processing module configured to solve the directed network to determine a traffic distribution proportion coefficient between the traffic units and at least part of the node units; a strategy generation module configured to generate a scheduling strategy including the traffic distribution proportion coefficient between each traffic unit and a corresponding node unit; the scheduling strategy is used to schedule traffic of the domain names according to the traffic distribution proportion coefficient; the processing module solving the directed network comprises: solving the directed network with the maximum total traffic transmission and the minimum total resource consumption as the target.

13. A node traffic scheduling apparatus of a content distribution network, characterized by, The device comprises: an acquisition module configured to acquire an access request initiated by a client; a scheduling module configured to determine a node for responding to the access request according to a scheduling strategy; the scheduling strategy is generated based on the method in any one of claims 1 to 7.

14. A computer device, comprising: comprise: a memory and a processor, which are communicatively connected, the memory stores computer instructions, and the processor executes the computer instructions to perform the method in any one of claims 1 to 11.

15. A computer-readable storage medium, characterized in that, The computer readable storage medium stores computer instructions, and the computer instructions are used to make a computer execute the method in any one of claims 1 to 11.

Citation Information

Patent Citations

  • Method, device and system for processing access request in content distribution system

    CN112311826A

  • Content distribution network-based content resource acquisition method and device, and storage medium

    CN116389773A