Node pre-warming method and apparatus for content distribution network

By acquiring candidate preheating streams and node status information, filtering healthy and available nodes, and determining differentiated preheating strategies based on stream type, the problem of ineffective preheating and resource waste in CDN node preheating schemes is solved, achieving efficient content caching and low-latency video playback.

CN122137982APending Publication Date: 2026-06-02SHANGHAI HODE INFORMATION TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SHANGHAI HODE INFORMATION TECH CO LTD
Filing Date
2026-04-15
Publication Date
2026-06-02

Smart Images

  • Figure CN122137982A_ABST
    Figure CN122137982A_ABST
Patent Text Reader

Abstract

This application provides a node preheating method, apparatus, computer device, computer-readable storage medium, and computer program product for a content delivery network, belonging to the field of content delivery network technology. The method includes: acquiring candidate preheating stream information, preheating configuration information, and status information of candidate preheating nodes; determining a set of streams to be preheated based on the candidate preheating stream information and the preheating configuration information, and determining a node preheating strategy corresponding to the target stream based on the stream category of the target stream; determining available preheating nodes based on the status information of the candidate preheating nodes; determining the execution node of the target stream among the available preheating nodes corresponding to the node preheating strategy; and issuing a preheating task corresponding to the target stream to the execution node, so that the execution node performs the preheating operation. The technical solution of this application can reduce invalid preheating, rationally utilize node resources, improve cache hit rate, and enhance preheating effectiveness.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of content delivery network technology, and in particular to a node preheating method, apparatus, computer equipment, computer-readable storage medium, and computer program product for a content delivery network. Background Technology

[0002] With the rapid development of streaming media services such as live streaming and video-on-demand, users are increasingly demanding higher performance metrics for video playback, including first-frame latency and buffering. Content Delivery Networks (CDNs), by caching media content at edge nodes, enable users to access content from the nearest node, becoming a core technology for reducing latency and improving playback quality. To further reduce the probability of origin server requests and improve cache hit rates, related technologies typically employ node preheating, caching the target content on CDN nodes before the request.

[0003] However, existing CDN node warm-up solutions employ relatively simple warm-up strategies, mostly relying on client-triggered or simple rule-triggered methods. This approach is prone to ineffective warm-up and resource waste.

[0004] It should be noted that the above content is not necessarily prior art, nor is it intended to limit the scope of patent protection of this application. Summary of the Invention

[0005] This application provides a content delivery network method, apparatus, computer device, computer-readable storage medium, and computer program product to solve or alleviate one or more of the technical problems mentioned above.

[0006] One aspect of this application provides a content delivery network method, the method comprising: Obtain candidate preheating flow information, preheating configuration information, and status information of candidate preheating nodes; The set of flows to be preheated is determined based on the candidate preheating flow information and the preheating configuration information, and the node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow; wherein, the target flow is any one of the flows to be preheated in the set of flows to be preheated, and different categories of target flows correspond to different node preheating strategies; Based on the status information of the candidate preheating nodes, the available preheating nodes are determined; The execution node of the target flow is determined from the available preheating nodes corresponding to the node preheating strategy; The execution node is issued a preheating task corresponding to the target flow so that the execution node performs the preheating operation.

[0007] Optionally, obtain candidate preheating flow information, including: Periodically request the streaming heat service to obtain the global heat stream set; Receive single-stream request volume data and single-stream bandwidth data periodically reported by the gateway layer; The single-stream request volume data and the single-stream bandwidth data are aggregated according to a preset statistical period to generate a local online stream set.

[0008] Optionally, obtain preheating configuration information, including: Retrieve the preset stream set and the preheating parameters corresponding to each preset stream in the preset stream set from the configuration backend; The preheating parameters include at least one of the following: specified node information, target level information, preheating duration parameters, and preset parameter markers.

[0009] Optionally, obtain the status information of the candidate preheating nodes, including: Scan the online status, processor usage status, bandwidth usage status, and connection count status of candidate warm-up nodes in the content delivery network cluster; Correspondingly, the available preheating nodes are determined, including: Online nodes that meet the resource conditions are selected from the candidate warm-up nodes and used as available warm-up nodes; the resource conditions include: processor utilization rate is lower than a preset threshold, bandwidth utilization rate is lower than a preset threshold, and the number of connections is lower than the upper limit of the number of connections.

[0010] Optionally, after determining the available preheating nodes, the process also includes: Based on the node hierarchy information of each available preheating node, all available preheating nodes are divided into multiple levels; Map the available preheated nodes in each level to the corresponding dynamic hash ring; When a node is detected to be online, offline, or its state changes, the corresponding dynamic hash ring is updated.

[0011] Optionally, determining the set of flows to be preheated based on the candidate preheating flow information and the preheating configuration information includes: Automatic filtering flow is determined based on the candidate preheating flow information; The automatically filtered stream is merged with the preset stream set to form the final set of streams to be preheated.

[0012] Optionally, determining the automatic filtering stream based on the candidate preheating stream information includes: Based on the global heat value, the candidate flow is divided into automatic hot flow, automatic warm flow, and automatic cold flow; Specifically, candidate flows with global heat values ​​within a first preset range are identified as automatic hot flows, candidate flows with global heat values ​​within a second preset range are identified as automatic warm flows, and candidate flows with global heat values ​​within a third preset range are identified as automatic cold flows.

[0013] Optionally, the node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: If the target flow is a preset flow, and the preheating parameters corresponding to the target flow contain specified node information, then the specified node is determined as the execution node; if the preheating parameters corresponding to the target flow contain target level information, then the execution node belonging to the target level is selected to perform the preheating operation.

[0014] Optionally, the node hierarchy includes a first level, a second level, and a third level. The node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: When the target flow is automatic heat flow, a higher-level execution node is selected to perform the preheating operation; When an object access corresponding to the automatic hot flow is detected in the local online flow set, a lower-level execution node is selected to perform a preheating operation; The higher level includes a second level and a third level, the lower level is the first level, the nodes in the third level are closer to the source station than the nodes in the second level, and the nodes in the first level are closer to the object.

[0015] Optionally, the node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: When the target flow is an automatic temperature flow, determine the intersection of the global heat flux set and the local online flow set; The automatic temperature flow located in the intersection is identified as the flow to be refined in calculation; Based on the calculation results of the computational flow to be refined, the preheating duration parameter of the target flow is determined, and subsequent preheating task allocation is performed based on the preheating duration parameter.

[0016] Optionally, the preheating duration parameter of the computational stream to be refined is determined based on the calculation results of the computational stream to be refined, including: Obtain the bandwidth data and request volume data of the computation stream to be refined within a preset statistical window; Extract preset percentile values ​​from multiple data points within the preset statistical window to perform de-glitching on the bandwidth data and the request volume data; The bandwidth and request volume data after de-glitching are smoothed by an exponentially weighted moving average. The heat weight of the computation stream to be refined is calculated based on the smoothed bandwidth data and request volume data, and the global heat value of the computation stream to be refined. The preheating duration parameter of the computational stream to be refined is determined based on the heat weight.

[0017] Optionally, calculating the heat weight of the computation stream to be refined based on the smoothed bandwidth data and request volume data, and the global heat value of the computation stream to be refined, includes: The smoothed bandwidth data and request volume data are mapped to a first preset numerical range to obtain normalized bandwidth value and normalized request volume value. The global heat value of the computational stream to be refined is mapped to a second preset numerical range to obtain a normalized heat coefficient. The heat weight is obtained by fusing the normalized heat coefficient, the normalized bandwidth value, and the normalized request quantity value.

[0018] Optionally, the heat weight is obtained by fusing the normalized heat coefficient, the normalized bandwidth value, and the normalized request volume value, including: When the streaming media protocol corresponding to the stream to be refined is HLS, the normalized heat coefficient, the normalized bandwidth value and the normalized request quantity value are fused and calculated according to the first weight combination; When the streaming media protocol corresponding to the stream to be refined is FLV, the normalized heat coefficient, the normalized bandwidth value and the normalized request quantity value are fused and calculated according to the second weight combination; The heat weights obtained from the fusion calculation are then smoothed again using an exponentially weighted moving average and rounded up.

[0019] Optionally, determining the preheating duration parameter of the computational stream to be refined based on the calculation results of the computational stream to be refined further includes: Sort the multiple computational streams to be refined according to their popularity weight; Assign a preheating duration window to each computational stream to be refined based on the sorting results; If the heat weight is lower than the preset lower limit, the preheating duration window for the corresponding computational flow to be refined will be set to zero.

[0020] Optionally, the node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: If the target flow is an automatic cold flow, obtain the single cluster bandwidth value and single cluster request volume value of the cluster where the target flow is located; If the single cluster bandwidth value is greater than a preset bandwidth threshold or the single cluster request volume value is greater than a preset request volume threshold, a preset level of execution node is selected to perform a preheating operation. If the single cluster bandwidth value is not greater than the preset bandwidth threshold and the single cluster request volume value is not greater than the preset request volume threshold, it is determined that the preheating operation will not be performed on the automatic cold flow.

[0021] Optionally, determining the execution node of the target flow from the available preheating nodes corresponding to the node preheating strategy includes: If the target stream is a preset stream carrying specified node information, the specified node is directly determined as the execution node; When the target flow is a preset flow or an automatically filtered flow that does not carry specified node information, node mapping selection is performed based on the flow identifier of the target flow, and the node mapping selection is performed in the available preheating nodes corresponding to the node preheating strategy.

[0022] Optionally, node mapping selection is performed based on the flow identifier of the target flow, including: Use the stream identifier of the target stream as the hash key; Map the hash key to a dynamic hash ring corresponding to the node preheating strategy; The first target node is located along the preset search direction of the dynamic hash ring; The first target node found is determined as the unique execution node of the target flow, so that the same target flow is mapped to the same converged source node under the same dynamic hash ring state.

[0023] Optionally, a preheating task corresponding to the target flow is sent to the execution node, including: Generate a preheating task order; The preheating task sheet contains at least one of the following: stream identifier, preheating source information, preheating duration parameter, time window identifier, and preset parameter marker. The preheating task order is sent to the execution node; After receiving the preheating task order, the execution node pulls the media segments corresponding to the target stream from the superior node or the source station and caches them.

[0024] Optionally, the method further includes: Periodically request the playlist file corresponding to the target stream; The currently acquired playlist file is compared with the previously acquired playlist files to determine the new media segments; The newly added media segments are requested in a preset order and cached.

[0025] Optionally, the method further includes: Receive preheating execution data periodically reported by each execution node; Adjust subsequent preheating strategies based on the preheating execution data; The preheating execution data includes at least one of the following: the number of successful slices, the number of failed slices, and the time taken to pull the slices.

[0026] Optionally, adjusting subsequent preheating strategies based on the preheating execution data includes: If the object cache hit rate corresponding to the target stream is determined to be lower than the preset hit rate threshold, the warm-up bitrate range of the target stream is increased or the warm-up time window of the target stream is extended. If the preheating failure rate of the target node is determined to be higher than the preset failure rate threshold, the target node is marked as an unavailable node, and subsequent preheating tasks are assigned to other available nodes.

[0027] Another aspect of this application provides a node warm-up device for a content delivery network, the device comprising: The acquisition module is used to acquire candidate preheating flow information, preheating configuration information, and status information of candidate preheating nodes. The first determining module is used to determine a set of flows to be preheated based on the candidate preheating flow information and the preheating configuration information, and to determine the node preheating strategy corresponding to the target flow based on the flow category of the target flow; wherein, the target flow is any one of the flows to be preheated in the set of flows to be preheated, and different categories of target flows correspond to different node preheating strategies; The second determining module is used to determine the available preheating nodes based on the status information of the candidate preheating nodes; The third determining module is used to determine the execution node of the target flow from the available preheating nodes corresponding to the node preheating strategy; The distribution module is used to distribute the preheating task corresponding to the target flow to the execution node so that the execution node can perform the preheating operation.

[0028] Another aspect of this application provides a computer device, including: At least one processor; and A memory that is communicatively connected to the at least one processor; Wherein: the memory stores instructions that can be executed by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the method as described above.

[0029] Another aspect of this application provides a computer-readable storage medium storing computer instructions that, when executed by a processor, implement the method described above.

[0030] Another aspect of this application provides a computer program product including a computer program that, when executed by a processor, implements the method described above.

[0031] The embodiments of this application employing the above technical solution may include the following advantages: By first acquiring candidate preheating flow information, preheating configuration information, and candidate preheating node status information, comprehensive data support is provided for subsequent preheating decisions; then, based on the candidate preheating flow information and preheating configuration information, a set of flows to be preheated is selected, avoiding preheating flows with low popularity and no access demand, reducing ineffective preheating from the source; simultaneously, based on the flow category of the target flow, a corresponding node preheating strategy is determined, adopting differentiated node preheating strategies for different flow categories, breaking the traditional "one-size-fits-all" preheating model, enabling preheating resources to be tilted towards high-value, high-population flows; subsequently, based on the status information of candidate preheating nodes, healthy and usable nodes in each preheating level are selected, and CPU-intensive nodes are eliminated. Overload, bandwidth saturation, and connection limit exceeding abnormal nodes are addressed to ensure the stable and efficient execution of the preheating task, preventing preheating failures and impacting the user experience due to node anomalies. Finally, the execution node for the target stream is determined from the available nodes corresponding to the node preheating strategy, and the preheating task is issued. This allows the execution node to complete content caching in advance, avoiding resource waste caused by multiple nodes repeatedly requesting origin access and caching, while ensuring that object requests hit the nearest cache, effectively reducing the probability of origin access and access latency. Through this series of coherent steps, the core shortcomings of traditional preheating solutions are gradually addressed, ultimately achieving the goals of reducing invalid preheating, rationally utilizing node resources, improving cache hit rate and preheating effectiveness, thereby reducing the first frame latency and stuttering rate of object video playback, and significantly improving the service quality and overall resource utilization of the CDN system. Attached Figure Description

[0032] The accompanying drawings exemplify embodiments and form part of the specification, serving together with the textual description to explain exemplary implementations of the embodiments. The illustrated embodiments are for illustrative purposes only and do not limit the scope of the claims. Throughout the drawings, the same reference numerals refer to similar but not necessarily identical elements.

[0033] Figure 1 This diagram schematically illustrates the operating environment of the node warm-up method for a content delivery network according to Embodiment 1 of this application; Figure 2 A flowchart illustrating a node warm-up method for a content delivery network according to Embodiment 1 of this application is shown schematically. Figure 3 Schematic illustration Figure 2 A detailed flowchart of the steps to obtain candidate preheating flow information; Figure 4 The flowchart illustrating the additional steps in the node warm-up method of the content delivery network according to Embodiment 1 of this application is shown in the illustration. Figure 5 Schematic illustration Figure 2 Detailed flowchart of step S202; Figure 6 Schematic illustration Figure 2 A detailed flowchart of the steps for determining the node preheating strategy corresponding to the target flow based on the flow category of the target flow is provided. Figure 7 Schematic illustration Figure 2 A detailed flowchart of the steps for determining the node preheating strategy corresponding to the target flow based on the flow category of the target flow is provided. Figure 8 Schematic illustration Figure 7 A detailed flowchart of the steps for determining the preheating duration parameters of the computational stream to be refined based on the calculation results of the computational stream to be refined. Figure 9 Schematic illustration Figure 2 A detailed flowchart of the steps for determining the node preheating strategy corresponding to the target flow based on the flow category of the target flow is provided. Figure 10 Schematic illustration Figure 2 Detailed flowchart of step S206; Figure 11 Schematic illustration Figure 2 Detailed flowchart of step S208; Figure 12 The flowchart illustrating the additional steps in the node warm-up method of the content delivery network according to Embodiment 1 of this application is shown in the illustration. Figure 13 A block diagram schematically illustrates a node preheating device for a content delivery network according to Embodiment 2 of this application; and Figure 14 A schematic diagram of the hardware architecture of a computer device according to Embodiment 3 of this application is shown. Detailed Implementation

[0034] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application. All other embodiments obtained by those skilled in the art based on the embodiments in this application without inventive effort are within the scope of protection of this application.

[0035] It should be noted that the descriptions involving "first," "second," etc., in the embodiments of this application are for descriptive purposes only and should not be construed as indicating or implying their relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined with "first" or "second" may explicitly or implicitly include at least one of that feature. Furthermore, the technical solutions of the various embodiments can be combined with each other, but this must be based on the ability of those skilled in the art to implement them. If the combination of technical solutions is contradictory or impossible to implement, it should be considered that such a combination of technical solutions does not exist and is not within the scope of protection claimed in this application.

[0036] It should be noted that, in any stage of this application involving the collection, storage, use, transmission, and processing of data, each stage strictly adheres to the laws, regulations, industry standards, and regulatory requirements of the data source, usage location, and relevant countries and regions to ensure the legality and compliance of data activities. In the collection stage, the purpose, method, and scope of collection are clearly communicated to the data subject in a prominent manner. Collection is conducted only after obtaining the data subject's legal authorization, ensuring that the collection process follows the "minimum necessary" principle and does not exceed the scope of data collection. In the storage stage, storage periods are limited, and data is promptly deleted or anonymized / encrypted after the storage purpose is achieved. In the usage stage, a strict data security protection mechanism is implemented, using field-level desensitization technology and processing the original data according to preset desensitization rules. For different types of data, multiple desensitization strategies, such as data generalization, data anonymization, and data encryption, are employed to effectively mitigate the risk of sensitive information leakage and ensure that all data used is securely processed and desensitized, comprehensively protecting the rights and interests of data subjects and data security. In the transmission and processing stages, the confidentiality and security of data are ensured during transmission and processing.

[0037] In the description of this application, it should be understood that the numerical labels before the steps do not indicate the order of the steps, but are only used to facilitate the description of this application and to distinguish each step, and therefore should not be construed as a limitation of this application.

[0038] First, a definition of the terminology used in this application is provided: CDN stands for Content Delivery Network. It is a technology that improves access speed, reduces bandwidth consumption, and increases concurrency capacity by deploying nodes at the network edge to cache a website's static resources closer to the objects.

[0039] Push streaming: This involves collecting audio and video data from the client, encoding it, encapsulating it using a transmission protocol, and then transmitting it to the server. Here, the server is the origin server in a CDN architecture.

[0040] Pulling a stream: The process by which a client pulls a live media stream to its local machine using a specified origin address.

[0041] Origin retrieval: refers to the process by which the client obtains the requested audio and video information stream from the CDN.

[0042] Cluster: A collection of many CDNs deployed in the same region.

[0043] FLV protocol: Short for Flash Video. The FLV streaming media format is a video format that emerged with the release of Flash MX. Because it produces extremely small files and loads very quickly, it makes watching video files online possible. Its emergence effectively solved the problem of large SWF file sizes after importing video files into Flash, making them unsuitable for online use.

[0044] HLS (HTTP Live Streaming) protocol: It is an HTTP-based adaptive bitrate streaming media transmission protocol that is widely used in live video streaming and video-on-demand scenarios.

[0045] HLSv7 protocol: A real-time streaming media transmission protocol based on HLS and FMP4. It divides the live stream into small HTTP-based file segments, each containing short, playable content, and the client only needs to download a portion of the segment at a time. The advantages of this protocol are that it uses the standard HTTP protocol for data transmission and achieves adaptive bitrate control.

[0046] m3u8 files are index / playlist files for the HLS (HTTP Live Streaming) protocol, using UTF-8 encoded text format.

[0047] m4s files are media segment files that use the fMP4 (Fragmented MP4) container format. They are another segmented encapsulation format in the HLS protocol besides the traditional .ts format.

[0048] Secondly, to facilitate understanding of the technical solutions provided in the embodiments of this application by those skilled in the art, the relevant technologies are described below: With the rapid development of streaming media services such as live streaming and video-on-demand, users are increasingly demanding higher performance metrics for video playback, including first-frame latency and buffering. Content Delivery Networks (CDNs), by caching media content at edge nodes, enable users to access content from the nearest node, becoming a core technology for reducing latency and improving playback quality. To further reduce the probability of origin server requests and improve cache hit rates, related technologies typically employ node preheating, caching the target content on CDN nodes before the request.

[0049] However, existing CDN node warming solutions employ relatively simple strategies, mostly relying on client-triggered preloading requests to extract unplayed video data, such as requesting unplayed m4s data from an object within an m3u8 file. This approach, triggered by object behavior, is ineffective and lacks differentiation between hot and cold streams, leading to resource waste.

[0050] To address this, this application provides a node preheating technology solution for a content delivery network. In this solution, candidate preheating stream information, preheating configuration information, and candidate preheating node status information are first acquired to provide comprehensive data support for subsequent preheating decisions. Then, based on the candidate preheating stream information and preheating configuration information, a set of streams to be preheated is selected, avoiding preheating low-popularity streams with no access demand, thus reducing ineffective preheating from the source. Simultaneously, a corresponding node preheating strategy is determined based on the stream category of the target stream, employing differentiated node preheating strategies for different stream categories, breaking the traditional "one-size-fits-all" preheating model and allowing preheating resources to be tilted towards high-value, high-popularity streams. Finally, based on the status information of the candidate preheating nodes, healthy and usable nodes in each preheating level are selected, and CPU-intensive nodes are eliminated. Overload, bandwidth saturation, and connection limit exceeding abnormal nodes are addressed to ensure the stable and efficient execution of the preheating task, preventing preheating failures and impacting the user experience due to node anomalies. Finally, the execution node for the target stream is determined from the available nodes corresponding to the node preheating strategy, and the preheating task is issued. This allows the execution node to complete content caching in advance, avoiding resource waste caused by multiple nodes repeatedly requesting origin access and caching, while ensuring that object requests can hit the nearest cache, effectively reducing the probability of origin access and access latency. Through this series of coherent steps, the core shortcomings of traditional preheating solutions are gradually addressed, ultimately achieving the goals of reducing invalid preheating, rationally utilizing node resources, improving cache hit rate, and enhancing preheating effectiveness. This, in turn, reduces the first-frame latency and stuttering rate of object video playback, significantly improving the service quality and overall resource utilization of the CDN system. See below for details.

[0051] Finally, for ease of understanding, an exemplary operating environment is provided below.

[0052] like Figure 1 As shown in the diagram, the operating environment includes: CDN node warm-up platform 2, network 4, and client 6, where: The CDN node preheating platform 2 can consist of one or more computing devices. These computing devices may include virtualized computing instances. Virtualized computing instances may include virtual machines, such as emulations of computer systems, operating systems, servers, etc. The computing devices can load virtual machines based on virtual images and / or other data that define specific software used for emulation (e.g., operating systems, dedicated applications, servers). As the demand for different types of processing services changes, different virtual machines can be loaded and / or terminated on one or more computing devices. A hypervisor can be implemented to manage the use of different virtual machines on the same computing device.

[0053] CDN node warm-up platform 2 can be configured to communicate with clients 6 via network 4. Network 4 includes various network devices such as routers, switches, multiplexers, hubs, modems, bridges, repeaters, firewalls, proxy devices, and / or similar devices. Network 4 can include physical links, such as coaxial cable links, twisted pair cable links, fiber optic links, or combinations thereof, or wireless links, such as cellular links, satellite links, Wi-Fi links, etc.

[0054] CDN Node Preheating Platform 2 can provide services such as storage, reading, writing, querying, and deletion, such as node preheating services for running content delivery networks.

[0055] Client 6 can be an electronic device running operating systems such as Windows, Android (AndroiFM), or iOS, such as a smartphone, tablet, laptop, virtual reality device, gaming device, set-top box, in-vehicle terminal, or smart TV.

[0056] Client 6 can provide / configure an object access page for controlling CDN node preheating platform 2 or uploading objects, etc.

[0057] It should be noted that the above-mentioned equipment is exemplary, and the number and type of equipment can be adjusted in different scenarios or according to different needs.

[0058] The technical solution of this application will be described below using CDN node preheating platform 2 as the main implementation subject through multiple embodiments. It should be noted that these embodiments can be implemented in many different forms and should not be construed as being limited to the embodiments described herein.

[0059] Example 1 Figure 2 The flowchart illustrating a node warm-up method for a content delivery network according to Embodiment 1 of this application is shown schematically.

[0060] like Figure 2 As shown, the node warm-up method of this content delivery network may include steps S200 to S208, wherein: Step S200: Obtain candidate preheating flow information, preheating configuration information, and status information of candidate preheating nodes.

[0061] Step S202: Determine the set of flows to be preheated based on the candidate preheating flow information and the preheating configuration information, and determine the node preheating strategy corresponding to the target flow based on the flow category of the target flow; wherein, the target flow is any one of the flows to be preheated in the set of flows to be preheated, and different categories of target flows correspond to different node preheating strategies.

[0062] Step S204: Determine the available preheating nodes based on the status information of the candidate preheating nodes.

[0063] Step S206: Determine the execution node of the target flow from the available preheating nodes corresponding to the node preheating strategy.

[0064] Step S208: Send the preheating task corresponding to the target flow to the execution node so that the execution node can perform the preheating operation.

[0065] The node preheating method for content delivery networks provided in this embodiment first acquires candidate preheating stream information, preheating configuration information, and candidate preheating node status information to provide comprehensive data support for subsequent preheating decisions. Then, based on the candidate preheating stream information and preheating configuration information, it filters and determines the set of streams to be preheated, avoiding preheating low-popularity streams with no access demand, thus reducing ineffective preheating from the source. Simultaneously, it determines the corresponding node preheating strategy based on the stream category of the target stream, employing differentiated node preheating strategies for different stream categories. This breaks the traditional "one-size-fits-all" preheating model, enabling preheating resources to be directed towards high-value, high-popularity streams. The process involves several steps: First, based on the status information of candidate preheating nodes, healthy and usable nodes at each preheating level are selected, and abnormal nodes such as those with CPU overload, bandwidth saturation, or excessive connection limits are removed. This ensures stable and efficient execution of the preheating task, preventing preheating failures and impacting the user experience due to node anomalies. Finally, the execution node for the target stream is determined from the available nodes corresponding to the node preheating strategy, and the preheating task is issued. This allows the execution node to complete content caching in advance, avoiding resource waste caused by multiple nodes repeatedly requesting origin access and caching, while ensuring that object requests can hit the nearest cache, effectively reducing the probability of origin access and access latency. Through this series of interconnected steps, the core shortcomings of traditional preheating solutions are gradually addressed, ultimately achieving the goals of reducing invalid preheating, rationally utilizing node resources, improving cache hit rate, and enhancing preheating effectiveness. This, in turn, reduces the first-frame latency and stuttering rate of object video playback, significantly improving the service quality and overall resource utilization of the CDN system.

[0066] The following combination Figure 2 The steps in steps S200 to S208, as well as other optional steps, are described in detail.

[0067] Step S200 It obtains candidate preheating flow information, preheating configuration information, and status information of candidate preheating nodes.

[0068] The candidate preheating flow information includes parameter information of at least one candidate preheating flow, wherein the parameter information includes at least the flow identifier, global heat value, and protocol type.

[0069] The stream identifier serves as the unique identifier that distinguishes different candidate preheating streams. The global popularity value is a quantitative parameter that measures the popularity of the candidate preheating stream within the platform, and its value can range from 0 to 100. The protocol type can include HLS, FLV, etc.

[0070] It should be noted that the candidate preheating stream is a candidate preheating data stream, which may not necessarily be preheated in subsequent processes.

[0071] The preheating configuration information includes pre-configured configuration information for preset streams that need to perform preheating operations, wherein the configuration information includes the stream identifier and preheating parameters of the preset streams.

[0072] The stream identifier serves as the unique identifier that distinguishes different preset streams.

[0073] The preheating parameters include at least one of the following: specified node information, target level information, preheating duration parameter, and preset parameter flag. Specified node information is a parameter used to uniquely identify the execution node for the preheating operation, including at least one of node ID, node IP, node name, and cluster number. When the preset flow carries specified node information, the preheating task is directly sent to that node for execution, without needing to select other nodes. Target level information is a parameter that restricts the preheating task to execution only within a specified CDN node level. Node levels can include L1 edge nodes (first level), L2 aggregation nodes (second level), and L3 origin nodes (third level); after configuring this target level information in the preheating flow, the preheating task selects the execution node only from the available nodes at that level. The preheating duration parameter is a parameter that selects the execution duration of the preheating task, including at least one of fixed duration, dynamic time window, and stop condition. The execution node executes preheating according to this parameter and automatically stops upon expiration, avoiding unnecessary resource occupation. The preset parameter flag is a flag used to identify whether the current flow uses manually preset parameters for preheating. When the preset parameter in the preset flow configuration is marked as a flag indicating that preheating is performed using manually preset parameters, it means that manually preset parameters such as nodes, levels, and durations are forcibly used, skipping the automatic heat calculation, automatic grading, and automatic strategy process; when the preset parameter in the preset flow configuration is marked as a flag indicating that preheating is not performed using manually preset parameters, it means that the preheating operation is performed using the preheating strategy automatically generated by the system.

[0074] It should be noted that the preset stream is a pre-configured preheating data stream, which will definitely be preheated in subsequent processes.

[0075] The status information of a candidate warm-up node characterizes its current state, including online status, processor usage status, bandwidth utilization status, and connection count status. Specifically, online status describes whether the node is online or offline; processor usage status describes the node's processor utilization rate (e.g., 70%); bandwidth utilization status describes the node's bandwidth utilization rate (e.g., 80%); and connection count status describes the node's current number of connections (e.g., 100).

[0076] It should be noted that the aforementioned candidate warm-up node is a single candidate node, which may be selected as the execution node for performing the warm-up task in subsequent processes. This candidate warm-up node is a CDN node.

[0077] In an optional implementation, see [link to relevant documentation]. Figure 3 Obtain candidate preheating flow information, including: Step S300: Periodically request the flow heat service to obtain the global heat flow set.

[0078] The streaming popularity service is used to perform global popularity scoring on data streams across the entire platform. In this embodiment, by periodically requesting the streaming popularity service, the global popularity value of each data stream can be obtained. A global hot stream set can be filtered from all data streams based on a preset popularity threshold. The global hot stream set consists of data streams whose global popularity value is greater than the preset threshold (e.g., 35 points). Each data stream in this global hot stream set may include information such as stream identifier, global popularity value, protocol type, and popularity update time.

[0079] The time interval can be set and adjusted according to the actual situation, for example, it can be set to 10 seconds.

[0080] Step S302: Receive single-stream request volume data and single-stream bandwidth data periodically reported by the gateway layer.

[0081] Step S304: Summarize the single-stream request volume data and the single-stream bandwidth data according to a preset statistical period to generate a local online stream set.

[0082] In this embodiment, the gateway layer can collect single-stream request volume data (e.g., requests per second, QPS) and single-stream bandwidth data (e.g., outgoing bandwidth per second, Mbps) of each data stream in real time, and periodically report the above data to the CDN node preheating platform according to a preset period (e.g., 1 second / time). After receiving the above data, the CDN node preheating platform can summarize and statistically process the single-stream request volume data and single-stream bandwidth data reported by the gateway layer according to a preset statistical period (e.g., 10 seconds / time), and filter out the data streams with object access (QPS > 0) and data streams with traffic output (outgoing bandwidth > 0) within the statistical period to generate a local online stream set. Each data stream in the local online stream set can contain information such as the data stream's stream identifier, global popularity value, protocol type, average QPS within the statistical period, and average bandwidth.

[0083] In this embodiment, a data acquisition mechanism that periodically acquires the global heat flow set and periodically summarizes and generates the online flow set achieves "global + local" dual-dimensional coverage of candidate flow information. The global heat flow data ensures a platform-wide perspective for the preheating strategy, while the local online flow data ensures the regional targeting of the preheating strategy. The combination of the two provides comprehensive and reliable data support for the subsequent accurate selection of flows to be preheated, avoiding preheating misjudgments caused by relying on only a single dimension of data.

[0084] In an optional implementation, preheating configuration information is obtained, including: Retrieve the preset stream set and the preheating parameters corresponding to each preset stream in the preset stream set from the configuration backend; The preheating parameters include at least one of the following: specified node information, target level information, preheating duration parameters, and preset parameter markers.

[0085] The central control module in the CDN node preheating platform can establish a communication connection with the configuration backend through a preset interface, and obtain the preset stream set and the preheating parameters corresponding to each preset stream from the configuration backend.

[0086] The preset stream set consists of one or more preset data streams (such as live streams of major events or popular sports events). Each preset data stream may include information such as stream identifier and protocol type.

[0087] In this embodiment, by obtaining the preset stream set and corresponding personalized preheating parameters from the configuration backend, operators can perform precise forced preheating configuration for high-priority streams to meet the customized preheating needs in special scenarios, avoid insufficient coverage of high-priority streams by the automatic preheating strategy, and improve the flexibility and controllability of the preheating strategy.

[0088] In an optional implementation, the status information of the candidate preheating node is obtained, including: Scan the online status, processor usage status, bandwidth usage status, and connection count status of candidate warm-up nodes in the content delivery network cluster.

[0089] In this embodiment, the Hash ring management module in the CDN node preheating platform can scan the status of all candidate preheating nodes (CDN nodes) in the content delivery network cluster in real time or at regular intervals, thereby obtaining the online status, processor usage status, bandwidth occupancy status and connection number status of each candidate preheating node.

[0090] Correspondingly, the available preheating nodes are determined, including: Online nodes that meet the resource conditions are selected from the candidate warm-up nodes and used as available warm-up nodes; the resource conditions include: processor utilization rate is lower than a preset threshold, bandwidth utilization rate is lower than a preset threshold, and the number of connections is lower than the upper limit of the number of connections.

[0091] As an example, the resource conditions can be: CPU utilization < 70%, bandwidth utilization < 80%, and number of connections < 1000. When an online candidate warm-up node meets the above resource conditions, it can be used as an available warm-up node; when an online candidate warm-up node does not meet the above resource conditions, the node will not be used as an available warm-up node.

[0092] In this embodiment, the above-mentioned screening rules can accurately eliminate overloaded and abnormal nodes, ensuring that only healthy nodes participate in the preheating task, avoiding preheating failure caused by node overload, and improving the stability and reliability of the preheating process.

[0093] In an optional implementation, see [link to relevant documentation]. Figure 4 After determining the available preheating nodes, the process also includes: Step S400: Based on the node hierarchy information of each available preheating node, divide all available preheating nodes into multiple levels.

[0094] Node hierarchy information is the identification information used to represent the hierarchy to which a node belongs, such as L1 (first level), L2 (second level), and L3 (third level).

[0095] The Hash ring management module divides each available preheating node into multiple levels based on its node hierarchy, such as L1 level node group, L2 level node group, and L3 level node group.

[0096] Step S402: Map the available preheating nodes in each level to the corresponding dynamic hash rings.

[0097] For each group of nodes after partitioning, a corresponding dynamic hash ring is constructed. The dynamic hash ring can be constructed through the following steps: First, perform a hash calculation on the unique identifier of each node (such as IP address, node ID) to obtain the node's hash value; Next, the node's hash value is mapped to a predefined hash ring space (e.g., 0~2). 32 -1), forming a dynamic hash ring at this level.

[0098] In one implementation, to resolve hash collisions, each physical node can generate multiple virtual nodes, which are mapped to different positions on the hash ring.

[0099] Step S404: When a node is detected to be online, offline, or its state changes, the corresponding dynamic hash ring is updated.

[0100] Changes in node status can include changes in the node's processor utilization, changes in the node's bandwidth utilization, and changes in the number of connections to the node.

[0101] The hash ring management module can monitor node status change events in real time. When it detects a node coming online, going offline, or a change in node status (such as CPU utilization increasing from 60% to 75%), it triggers an update operation for the corresponding level of the dynamic hash ring. Specifically, for events involving a node going offline or experiencing an abnormal status, the node and its virtual nodes can be removed from the corresponding hash ring. For events that bring a node online or restore its status, the node and its virtual nodes can be remapped to the corresponding hash ring. Once the update is complete, the new hash ring will take effect immediately and will be used for subsequent node matching.

[0102] In other implementations, the update operation of the dynamic hash ring can be triggered only when a change in the available warm-up nodes is detected, that is, the available warm-up nodes in each level are remapped to the corresponding dynamic hash ring.

[0103] In other implementations, a dynamic hash ring can be built based on all available warm-up nodes, without the need to build multiple dynamic hash rings.

[0104] In this embodiment, by dividing node groups according to levels and constructing independent dynamic hash rings, the isolated scheduling of preheating nodes at different levels is realized, which meets the node matching requirements of differentiated preheating strategies.

[0105] Step S202The set of flows to be preheated is determined based on the candidate preheating flow information and the preheating configuration information, and the node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow; wherein, the target flow is any one of the flows to be preheated in the set of flows to be preheated, and different categories of target flows correspond to different node preheating strategies.

[0106] In this embodiment, after obtaining the candidate preheating flow information and the preheating configuration information, all data flows contained therein can be filtered, deduplicated, merged, and conflict-handled based on the candidate preheating flow information and the preheating configuration information to form a set of flows to be preheated. The set of flows to be preheated contains one or more flows that require preheating operations. For any target flow in the set of flows to be preheated, a corresponding node preheating strategy can be determined according to the flow category of the target flow (e.g., preset flow, automatic hot flow, automatic warm flow, automatic cold flow). Different categories of target flows correspond to differentiated node preheating strategies. For example, automatic hot flow corresponds to an L2+L3 dual-layer preheating strategy, automatic warm flow corresponds to an L2 single-layer preheating strategy, and preset flow corresponds to a manually set preheating strategy, etc.

[0107] In an optional implementation, see [link to relevant documentation]. Figure 5 The set of flows to be preheated is determined based on the candidate preheating flow information and the preheating configuration information, including: Step S500: Determine the automatic filtering flow based on the candidate preheating flow information.

[0108] The central control module in the CDN node preheating platform can automatically filter data streams that meet the preheating conditions based on the global hot stream set and local online stream set contained in the candidate stream information, according to preset automatic filtering rules. The automatic filtering streams can include automatic hot streams, automatic temperature streams, and automatic cold streams.

[0109] In an optional implementation, determining the automatic filtering stream based on the candidate preheating stream information includes: Based on the global heat value, the candidate flow is divided into automatic hot flow, automatic warm flow, and automatic cold flow; Specifically, candidate flows with global heat values ​​within a first preset range are identified as automatic hot flows, candidate flows with global heat values ​​within a second preset range are identified as automatic warm flows, and candidate flows with global heat values ​​within a third preset range are identified as automatic cold flows.

[0110] In this embodiment, the candidate streams include data streams from the global hot stream set and the local online stream set. The first preset interval, the second preset interval, and the third preset interval are three pre-defined continuous and non-overlapping hot value intervals.

[0111] As an example, the first preset interval, the second preset interval, and the third preset interval are shown below.

[0112] First preset interval: such as 90-100 points, candidate streams whose global heat value falls within this interval are automatically identified as heat streams; The second preset range: such as 35-90 points, the candidate streams whose global heat value is in this range are determined as automatic temperature streams; The third preset range: such as 0-35 points, will determine the candidate streams whose global heat value is in this range as automatic cold streams.

[0113] In this embodiment, a refined stratification of automatically filtered streams is achieved through a three-level stream classification based on global heat values.

[0114] Step S502: The automatically filtered stream is merged with the preset stream set to form the final preheating stream set.

[0115] After obtaining the automatically filtered stream, it can be merged with a preset stream set. During the merging process, duplicate data streams can be removed to form the final set of streams to be preheated.

[0116] In this embodiment, for the merged set of streams to be preheated, the central control module can label each data stream with a stream category (e.g., preset stream, automatic hot stream, automatic warm stream, automatic cold stream) to facilitate subsequent matching of the corresponding preheating strategy. Specifically, when the category is preset stream, it indicates that the target stream is a data stream within the preset stream set.

[0117] In one embodiment, after merging the set of streams to be preheated, if the same data stream is simultaneously in both the automatically filtered stream and the preset stream set, when determining the node preheating strategy, the node preheating strategy corresponding to the preset stream is directly used as the preheating strategy for that data stream, that is, the preheating operation is directly performed according to the preset parameters.

[0118] In this embodiment, the automatic filtering flow and preset flow merging mechanism achieves dual coverage of the preheating flow, ensuring the integrity and accuracy of the set of flows to be preheated.

[0119] In an optional implementation, if the target flow is a preset flow, and the preheating parameters corresponding to the target flow contain specified node information, then the specified node is determined as the execution node; if the preheating parameters corresponding to the target flow contain target level information, then the execution node belonging to the target level is selected to perform the preheating operation.

[0120] In one implementation, if the preheating parameters corresponding to the preset flow include specified node information, the central control module will directly determine the specified node as the execution node of the preset flow and select the specified node to perform the preheating operation; if the specified node is offline or in an abnormal state, a backup node selection mechanism can be triggered to select a replacement node from available nodes at the same level.

[0121] In another embodiment, if the preheating parameters corresponding to the preset flow contain target level information, the central control module can select an execution node from the available node group of the target level according to preset rules (such as Hash ring mapping rules) and select the execution node belonging to the target level to perform the preheating operation.

[0122] In this embodiment, the strategy of specifying nodes for the preset stream can meet the exclusive preheating requirements in special scenarios, and the strategy of specifying target level for the preset stream can ensure the preheating resource level of the preset stream. The combination of the two improves the flexibility and controllability of the preset stream preheating.

[0123] In an optional implementation, the node hierarchy includes a first level (L1), a second level (L2), and a third level (L3), see reference. Figure 6 The node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: Step S600: If the target flow is an automatic heat flow, select a higher-level execution node to perform the preheating operation.

[0124] Step S602: When an object access corresponding to the automatic hot flow is detected in the local online flow set, a low-level execution node is selected to perform a preheating operation.

[0125] The higher level includes a second level and a third level, the lower level is the first level, the nodes in the third level are closer to the source station than the nodes in the second level, and the nodes in the first level are closer to the object.

[0126] In this embodiment, when the target flow is determined to be an automatic heat flow, the central control module directly triggers the preheating operation of the high-level nodes. That is, it determines the corresponding execution node from the available node groups of L2 and L3 levels respectively through the Hash ring mapping rule, and sends the preheating task to the execution nodes of the two levels at the same time, so as to realize L2+L3 dual-layer active preheating.

[0127] Meanwhile, the central control module can monitor changes in the local online stream set in real time. When it detects that there is access to the object corresponding to the automatic hot stream in the local online stream set, it triggers the selection of a low-level execution node to perform a preheating operation. That is, it determines the corresponding execution node from the available node group at the L1 level through the Hash ring mapping rule and sends the preheating task to the execution node to achieve L1 level triggering preheating.

[0128] In this embodiment, a three-level caching system of "global-regional-edge" is constructed by combining the L2+L3 dual-layer active preheating and the L1 passive preheating strategy. The L3 node is close to the source station, which can effectively reduce the source station's back-to-source pressure. The L2 node, as a regional aggregation layer, can reduce the back-to-source latency of the L1 node. The passive preheating of the L1 node can further improve the hit rate of object access to the nearest node. The combination of the three realizes full-link caching coverage of automatic hot streaming, which significantly reduces the first frame latency and stuttering rate of object playback.

[0129] In an optional implementation, see [link to relevant documentation]. Figure 7 The node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: Step S700: If the target flow is an automatic temperature flow, determine the intersection of the global heat flow set and the local online flow set.

[0130] In this embodiment, when the target flow is an automatic temperature flow, the intersection of the global heat flow set A and the local online flow set B is used to obtain set C, that is, set C = set A ∩ set B.

[0131] Step S702: The automatic temperature flow located in the intersection is determined as the flow to be refined for calculation.

[0132] In this embodiment, after obtaining set C, the data streams in set C are filtered to select automatic temperature streams, and each of the selected automatic temperature streams is used as a stream to be refined for calculation.

[0133] Step S704: Determine the preheating duration parameters of the computational flow to be refined based on the calculation results of the computational flow to be refined, and select an execution node of a preset level to perform the preheating operation.

[0134] In this embodiment, the calculation result of the fine-grained computational stream is to perform a heat weight fine-grained calculation on the fine-grained computational stream.

[0135] The preset level is a pre-defined level that can be set according to the actual situation, such as the preset level being L2.

[0136] The preheating duration parameter is a parameter for the execution duration of subsequent preheating tasks. It can be a fixed duration or a preheating duration window.

[0137] In this embodiment, when the target flow is determined to be a computational flow to be refined, the central control module will directly trigger the preheating operation of the nodes at the preset level. That is, from the available node group at the preset level, the corresponding execution node is determined by the Hash ring mapping rule, and the preheating task is sent to the execution node to realize the active preheating at the preset level.

[0138] In this embodiment, the preheating duration parameters are allocated based on the refined calculation results, realizing the on-demand allocation of temperature flow preheating resources and improving the accuracy and resource utilization of temperature flow preheating.

[0139] In an optional implementation, see [link to relevant documentation]. Figure 8 The preheating duration parameters of the computational stream to be refined are determined based on the calculation results of the computational stream to be refined, including: Step S800: Obtain the bandwidth data and request volume data of the computational stream to be refined within a preset statistical window.

[0140] The central control module acquires the bandwidth data (BW) and request volume data (QPS) of the computational stream to be refined within a preset statistical window (e.g., 10 seconds). The data is the raw data collected by the gateway layer.

[0141] Step S802: Extract preset percentile values ​​from multiple data points within the preset statistical window to perform de-glitching on the bandwidth data and the request volume data.

[0142] The central control module extracts preset percentile values ​​(such as the 95th percentile value) from multiple data points (such as 1000 data points) in a preset statistical window to remove instantaneous peak data, thereby achieving de-scratching of bandwidth data and request volume data and obtaining stable bandwidth data and request volume data.

[0143] Step S804: Perform exponentially weighted moving average smoothing on the bandwidth data and request volume data after de-scratching.

[0144] In this embodiment, the bandwidth data and request volume data after glitch removal can be smoothed by exponentially weighted moving average (EWMA) algorithm to eliminate short-term data fluctuations.

[0145] The formula for the EWMA algorithm is as follows: Yt=αX t +(1 α)Y t 1, where Yt is the EWMA value at time t, Y t 1 represents the EWMA value at time (t-1), and α is the smoothing factor or decay factor, with a value range of (0,1).

[0146] As an example, assume the bandwidth data (BW data) after de-glitching has a BW value of 86, the request volume data (QPS data) after de-glitching has a QPS value of 1350 requests / second, α = 0.3, the smoothed BW (bandwidth) value of the previous statistical window (the first 10 seconds) is 80Mbps, and the smoothed QPS value is 1150 requests / second. Substituting these values ​​into the EWMA formula, we obtain the smoothed BW value for the current statistical window, i.e., Yt (bandwidth) = 0.3 × 86 + (1 0.3)×80=25.8+56=81.8Mbp; Substituting into the EWMA formula, we get the smoothed QPS value of this statistical window, that is, Yt (request volume)=0.3×1350+0.7×1150=405+805=1210 times / second.

[0147] Step S806: Calculate the heat weight of the computational stream to be refined based on the smoothed bandwidth data and request volume data, and the global heat value of the computational stream to be refined.

[0148] After obtaining the smoothed bandwidth data and request volume data, as well as the global heat value of the computation stream to be refined, these data can be fused to obtain the heat weight of the computation stream to be refined. In an optional implementation, calculating the heat weight of the computation stream to be refined based on the smoothed bandwidth data and request volume data, and the global heat value of the computation stream to be refined includes: The smoothed bandwidth data and request volume data are mapped to a first preset numerical range to obtain normalized bandwidth values ​​and normalized request volume values; the global heat value of the computational flow to be refined is mapped to a second preset numerical range to obtain a normalized heat coefficient; the heat weight is obtained by fusion calculation based on the normalized heat coefficient, the normalized bandwidth value, and the normalized request volume value.

[0149] The first preset value range can be 0-100, and the second preset value range can be 0-1.

[0150] In this embodiment, a preset first normalization formula can be used to normalize the smoothed bandwidth data and request volume data respectively to obtain the corresponding normalized bandwidth value and normalized request volume value. A preset second normalization formula can be used to normalize the global heat value to obtain the normalized heat coefficient.

[0151] As an example, the first normalization formula is shown below: N = (X (Xmin) / (Xmax) Xmin)×100, where X is the current data value, Xmin is the minimum data value of the computational stream to be refined within the cluster, and Xmax is the maximum data value of the computational stream to be refined within the cluster.

[0152] As an example, the second normalization formula is shown below: K = (H - lower limit global heat value of automatic temperature flow) / (upper limit global heat value of automatic temperature flow - lower limit global heat value of automatic temperature flow), where H is the global heat value of the flow. For example, if the upper limit global heat value of automatic temperature flow is 90 points and the lower limit global heat value of automatic temperature flow is 35 points, then K = (H - 35) / (90 - 35).

[0153] Having obtained the normalized heat coefficient, the normalized bandwidth value, and the normalized request quantity value, these data can be fused and calculated using the following fusion formula to obtain the heat weight.

[0154] The fusion formula is: Heat weight (res) = Normalized heat coefficient × W1 + Normalized bandwidth value × W2 + Normalized request quantity value × W3, where W1, W2, and W3 are pre-set weighting coefficients.

[0155] In this embodiment, the difference in the dimensions of bandwidth, QPS, and global popularity is eliminated by normalization, realizing the comparability and additive nature of multi-dimensional indicators; the popularity weight is calculated based on the weighted fusion formula, which avoids the one-sidedness of single indicator evaluation and provides accurate quantitative basis for the allocation of subsequent preheating duration parameters.

[0156] In an optional implementation, the heat weight is obtained by fusing the normalized heat coefficient, the normalized bandwidth value, and the normalized request volume value, including: When the streaming media protocol corresponding to the stream to be refined is HLS, the normalized popularity coefficient, the normalized bandwidth value, and the normalized request quantity value are fused and calculated according to the first weight combination; when the streaming media protocol corresponding to the stream to be refined is FLV, the normalized popularity coefficient, the normalized bandwidth value, and the normalized request quantity value are fused and calculated according to the second weight combination; the popularity weights obtained by the fused calculation are then subjected to exponential weighted moving average smoothing and rounded up.

[0157] In one implementation, if the streaming media protocol corresponding to the stream to be refined is the HLS protocol, then the fusion calculation is performed according to the first weight combination, for example, res = 0.4 × K + 0.3 × N. bw +0.3×N qps .

[0158] In one implementation, if the streaming media protocol corresponding to the stream to be refined is the FLV protocol, then the fusion calculation is performed according to the second weight combination, for example, res = 0.3 × K + 0.4 × N. bw+0.3×N qps .

[0159] It should be noted that res mentioned above is the popularity weight, K is the normalized popularity coefficient, and N is the popularity weight. bw Normalized bandwidth value, N qps This is the normalized request value.

[0160] After the heat weight value is obtained through fusion calculation, it will be smoothed by EWMA exponential weighted moving average to eliminate the fluctuation of the heat weight value. The smoothed heat weight value can be rounded up to obtain an integer heat weight value, which is convenient for subsequent sorting and window allocation.

[0161] In this embodiment, the protocol-differentiated weight allocation fully considers the differences in traffic characteristics of different streaming media protocols, thereby improving the accuracy of the heat weight calculation; the secondary smoothing process further ensures the stability of the weight value and avoids frequent adjustments to the preheating window; the rounding up operation simplifies the subsequent sorting logic and improves the execution efficiency of the preheating parameter allocation.

[0162] Step S808: Determine the preheating duration parameter of the computational stream to be refined based on the heat weight.

[0163] In this embodiment, after obtaining the heat weight, the preheating duration parameter of the computational flow to be refined can be determined based on the heat weight and the default preheating duration parameter.

[0164] In this embodiment, the instantaneous fluctuations and noise of the original flow data are effectively eliminated by dual data processing of deburring and EWMA smoothing, ensuring the authenticity of the flow data; the heat weight is calculated based on the smoothed flow data and the global heat value, realizing the accurate evaluation of the temperature flow heat.

[0165] In an optional implementation, determining the preheating duration parameter of the computational stream to be refined based on the calculation results of the computational stream to be refined further includes: The multiple computational streams to be refined are sorted according to their heat weights; a preheating duration window is assigned to each computational stream to be refined based on the sorting results; if the heat weight is lower than a preset lower limit, the preheating duration window of the corresponding computational stream to be refined is set to zero.

[0166] In this embodiment, the central control module can preset the number and duration of preheating time windows (e.g., a maximum of 10 windows, each window lasting 10 seconds, with a maximum preheating duration of 100 seconds). After sorting the various computational flows to be refined, the central control module can allocate corresponding preheating duration windows based on the flow's popularity ranking. Flows ranked higher receive more windows and longer preheating durations; for example, the top 10% of flows receive 10 windows, flows ranked 10%-20% receive 9 windows, and so on.

[0167] In this example, the central control module can also preset a lower limit value for heat weight (such as res_min=10). If the heat weight value of a certain calculation flow to be refined is lower than the lower limit value, the preheating duration window is set to zero, that is, the preheating operation is not performed on the flow.

[0168] In this embodiment, by allocating preheating windows according to heat ranking, the preheating resources of warm flow are allocated according to value, ensuring that high-value warm flow receives sufficient preheating time. The low-value warm flow is further eliminated through the low-weight flow filtering mechanism, avoiding resource waste and improving the resource utilization efficiency and accuracy of warm flow preheating.

[0169] In an optional implementation, see [link to relevant documentation]. Figure 9 The node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: Step S900: If the target flow is an automatic cold flow, obtain the single cluster bandwidth value and single cluster request volume value of the cluster where the target flow is located.

[0170] In this embodiment, the central control module can detect the single cluster bandwidth value and single cluster request volume value of the cluster where the automatic cold flow (the target flow) is located in real time. The single cluster bandwidth value and single cluster request volume value can be the total bandwidth consumption and total request volume of the cold flow in the cluster, respectively.

[0171] Step S902: If the single cluster bandwidth value is greater than the preset bandwidth threshold or the single cluster request volume value is greater than the preset request volume threshold, select an execution node of the preset level to perform a preheating operation.

[0172] Step S904: If the single cluster bandwidth value is not greater than the preset bandwidth threshold and the single cluster request volume value is not greater than the preset request volume threshold, determine that the automatic cold flow will not be preheated.

[0173] The central control module can preset bandwidth thresholds (e.g., 300M) and request volume thresholds (e.g., QPS=60), and will perform the following judgments: If the bandwidth value of a single cluster is greater than the preset bandwidth threshold or the request volume value of a single cluster is greater than the preset request volume threshold, it is determined that there is a local burst access demand for the cold flow, and a preheating operation is performed on the automatic cold flow. The execution node of the preset level is selected to perform the preheating operation, for example, the preset level is the L2 level.

[0174] If the bandwidth value of a single cluster is not greater than the preset bandwidth threshold and the request volume value of a single cluster is not greater than the preset request volume threshold, it is determined that there is no significant access demand for the cold flow, and it is determined not to perform a preheating operation on the automatic cold flow.

[0175] In this embodiment, by making a preheating decision based on cluster traffic thresholds, the system accurately identifies local bursts of automatic cold flows and performs preheating only on cold flows with bursts of access, thus avoiding ineffective preheating of cold flows without access.

[0176] Step S204 Based on the status information of the candidate preheating nodes, the available preheating nodes are determined.

[0177] After obtaining the status information of each candidate preheating node, offline nodes, nodes with excessive CPU utilization, nodes with excessive bandwidth utilization, and nodes with saturated connection counts can be removed based on the status information of each node, thereby selecting available preheating nodes that meet the preset resource conditions.

[0178] Step S206 The execution node of the target flow is determined from the available preheating nodes corresponding to the node preheating strategy.

[0179] In this embodiment, the node preheating strategy may include the hierarchical information of the execution node. For example, node preheating strategy A includes the hierarchical information of the execution node as L2+L3, and node preheating strategy B includes the hierarchical information of the execution node as L2.

[0180] In this embodiment, after obtaining the node preheating strategy and available preheating nodes, the hierarchical information to which the execution node belongs can be determined first according to the node preheating strategy. Then, the available preheating nodes corresponding to the hierarchical information can be selected from all available preheating nodes according to the hierarchical information. Finally, the execution node of the target flow can be selected from these available preheating nodes according to the preset node selection rules (such as the Hash ring mapping rule).

[0181] In an optional implementation, see [link to relevant documentation]. Figure 10 Determining the execution node of the target flow from the available preheating nodes corresponding to the node preheating strategy includes: Step S1000: If the target stream is a preset stream carrying specified node information, the specified node is directly determined as the execution node.

[0182] Step S1002: If the target flow is a preset flow or an automatically filtered flow that does not carry specified node information, perform node mapping selection based on the flow identifier of the target flow. The node mapping selection is performed in the available preheating nodes corresponding to the node preheating strategy.

[0183] In this embodiment, when the target flow is a preset flow carrying specified node information, the specified node will be directly determined as the execution node; if the specified node is unavailable, a replacement node can be selected from the available nodes at the same level. When the target flow is a preset flow that does not carry specified node information or an automatically filtered flow (automatic hot flow / warm flow / cold flow), node mapping selection will be performed based on the flow identifier of the target flow, and the mapping selection process will only be performed in the available nodes at the level defined by the node preheating strategy corresponding to the target flow; for example, if the automatically filtered flow corresponds to the L2 level, then node mapping selection will only be performed in the dynamic hash ring of the L2 level.

[0184] In this embodiment, a node matching strategy based on different scenarios is adopted to take into account both the customization requirements of the preset flow and the intelligent requirements of the automatic flow.

[0185] In an optional implementation, node mapping selection is performed based on the stream identifier of the target stream, including: Use the flow identifier of the target flow as a hash key; map the hash key to a dynamic hash ring corresponding to the node preheating strategy; search for the first target node along the preset search direction of the dynamic hash ring; determine the found first target node as the unique execution node of the target flow, so that the same target flow is mapped to the same convergence back-to-source node under the same dynamic hash ring state.

[0186] In this embodiment, when performing node mapping, firstly, the unique stream identifier of the target stream (such as live_12345) is used as the hash key; then, a preset hash algorithm (such as MD5) is used to calculate the hash key to obtain the corresponding hash value; next, the hash value is mapped to the dynamic hash ring corresponding to the target stream preheating strategy; then, starting from the position on the ring corresponding to the hash value, the first target node in an available state is searched along the preset search direction of the hash ring (such as clockwise); finally, the first target node found is determined as the unique execution node of the target stream.

[0187] In this embodiment, the node selection mechanism enables precise binding between the target stream and the execution node; the same stream is mapped to the same node under the same hash ring state, avoiding repeated origin requests and caching by multiple nodes, reducing origin bandwidth consumption and node storage pressure; at the same time, it ensures the even distribution of node load and improves the overall stability of the cluster.

[0188] Step S208 The execution node is issued a preheating task corresponding to the target flow so that the execution node can perform the preheating operation.

[0189] The preheating task may include a flow identifier, preheating source information, preheating duration parameters, time window identifier, preset parameter markers, node preheating strategies, etc.

[0190] Flow identifiers serve as unique identifiers that distinguish different target flows.

[0191] Preheating source information refers to the source address or upstream origin node address information used by the execution node to pull media streams for preheating. It may include: the origin URL corresponding to the stream, the source domain name and IP, the upstream CDN node address, the protocol type (HLSv7 / FLV) and the playlist address (m3u8 address), etc.

[0192] The time window identifier is the preheating duration window number, used to identify the allowed preheating duration level for this flow. For example, a time window identifier of 8 indicates that the preheating duration is 8 time windows.

[0193] In this embodiment, after receiving the preheating task, the execution node actively pulls media segments from the upstream node or source station and caches them according to the task requirements, thereby completing the preheating operation.

[0194] In an optional embodiment, see [link to relevant documentation] Figure 11 Sending a preheating task corresponding to the target flow to the execution node, including: Step S1100: Generate a preheating task order; Step S1102: Write at least one of the following into the preheating task sheet: stream identifier, preheating source information, preheating duration parameter, time window identifier, and preset parameter marker; Step S1104: Send the preheating task order to the execution node.

[0195] After receiving the preheating task order, the execution node pulls the media segments corresponding to the target stream from the superior node or the source station and caches them.

[0196] In this embodiment, a preheating task order can be generated based on the target flow's flow identifier, node preheating strategy, preheating source information, preheating duration parameters, time window identifier, preset parameter markers, etc.

[0197] As an example, a preheating task sheet includes the following information: flow identifier (e.g., live_12345), preheating source information (e.g., source address, upstream node address), preheating duration parameters (e.g., number of preheating windows, duration of a single window), time window identifier (e.g., 8), and preset parameter markers.

[0198] The central control module can send preheating task orders to designated execution nodes via preset communication protocols (such as HTTP and RPC). After receiving the preheating task order, the execution node actively pulls the media segments corresponding to the target stream from the superior node or source station according to the task order requirements, and caches the segments in the local storage medium to complete the preheating operation.

[0199] In this embodiment, the design of the hot task sheet enables the complete transmission of preheating task information, ensuring that the execution node accurately understands the preheating requirements.

[0200] In an optional embodiment, the method further includes: The system periodically requests the playlist file corresponding to the target stream; compares the currently obtained playlist file with the previously obtained playlist files to determine the new media segments; requests the new media segments in a preset order and caches the new media segments.

[0201] In this embodiment, after receiving a preheating task order, the execution node requests the playlist file (such as an HLSm3u8 file or FLV metadata file) corresponding to the target stream from the preheating source at a preset period (e.g., once every second). After obtaining the playlist file, the execution node compares the currently obtained playlist file with the historically obtained playlist files and parses out the newly added media segment identifier (e.g., the newly added m4s segment name). After obtaining the newly added media segment identifier, the execution node requests the identified newly added media segments in a preset order (e.g., in reverse order), prioritizing the fetching of the latest segment that the target is about to play, and caching the fetched newly added media segments locally; for already cached segments, they are not fetched again.

[0202] As an example, the execution node requests the following playlist files in the first second: 001.m4s, 002.m4s, 003.m4s, 004.m4s, and 005.m4s. In the second second, the execution node requests the following playlist files: 004.m4s, 005.m4s, 006.m4s, 007.m4s, and 008.m4s. Comparing the two playlists, the execution node finds that the newly generated files are 006.m4s, 007.m4s, and 008.m4s. Therefore, the execution node will start requesting from 008.m4s until it reaches 006.m4s.

[0203] In this embodiment, the reverse retrieval strategy prioritizes caching the shards that the object is about to access, thereby improving the cache hit rate; incremental retrieval avoids repeated retrieval and reduces the bandwidth consumption of the back-to-origin process.

[0204] In an optional implementation, see [link to relevant documentation]. Figure 12 The method further includes: Step S1200: Receive preheating execution data periodically reported by each execution node.

[0205] Step S1202: Adjust the subsequent preheating strategy based on the preheating execution data.

[0206] Each preheating execution node periodically reports preheating execution data to the central control module at a preset interval (e.g., every 10 seconds). This preheating execution data includes at least one of the following: number of successful slices (the number of slices successfully retrieved and cached), number of failed slices (the number of slices that failed to be retrieved), and retrieval time (the average time taken to retrieve a slice). Based on the reported preheating execution data, the central control module analyzes the effectiveness of the current preheating strategy and adjusts subsequent preheating strategies accordingly, such as optimizing the preheating time window length and adjusting node matching rules.

[0207] In this embodiment, closed-loop optimization of the preheating strategy is achieved through real-time reporting and analysis of preheating execution data.

[0208] In an optional implementation, adjusting the subsequent preheating strategy based on the preheating execution data includes: If the object cache hit rate corresponding to the target stream is determined to be lower than the preset hit rate threshold, the warm-up bitrate range of the target stream is increased or the warm-up time window of the target stream is extended; if the warm-up failure rate of the target node is determined to be higher than the preset failure rate threshold, the target node is marked as an unavailable node and the subsequent warm-up tasks are assigned to other available nodes.

[0209] In this embodiment, the central control module calculates the cache hit rate of the object access corresponding to the target flow. If the hit rate is lower than a preset hit rate threshold (e.g., 80%), the following adjustments can be made: Increase the warm-up bitrate range for the target stream, for example, by expanding it from single-bitrate warm-up to multi-bitrate warm-up.

[0210] Extend the warm-up time window for the target stream, for example, increase the number of warm-up time windows from 8 to 10, thereby increasing the warm-up duration and improving cache coverage.

[0211] In this embodiment, the central control module can also calculate the preheating failure rate of the target node (number of failed slices / total number of slices). If the failure rate is higher than a preset failure rate threshold (e.g., 20%), the following adjustments can be made: Mark the target node as an unavailable node and prevent it from being assigned new preheating tasks; Migrate the preheating task currently being performed by this node to another available node at the same level; Remove the unavailable mark only after the node status returns to normal.

[0212] In this embodiment, targeted strategy adjustments have achieved dual optimization of preheating effect and node status.

[0213] To make this application easier to understand, an exemplary application is provided below.

[0214] In this exemplary application, taking an HLSv7 live stream as an example, at a certain moment, m3u8 contains fragments: 001.m4s, 002.m4s, 003.m4s, 004.m4s, and 005.m4s. The node warm-up method for this content delivery network includes the following stages: Phase 1, Multi-source Data Acquisition and Hash Ring Generation, includes the following process: 1. The central control unit acquires the global heat flux set A (heat score 35–100). 2. The gateway reports the local online flow set B; 3. Read the pre-defined stream set D; 4. Select nodes with normal load (CPU < 70%, bandwidth < 80%) and generate a hash ring for node allocation.

[0215] Phase 2, Stream Merging and Differentiation Triggering, includes the following process: 1. Merge A, B, and D to obtain the set E of the flow to be preheated, and perform subsequent operations according to the heat level of the flow to be preheated.

[0216] Among them, automatic hot flow (90-100 points): L2 / L3 nodes are preheated unconditionally, and L1 nodes are preheated only when there is object access; automatic temperature flow (35-90 points): take A∩B to get the intersection C, and enter the fine calculation operation; automatic cold flow (0-35 points): preheating is only required when the bandwidth is >300M or QPS is >60; preset flow: directly skip the grading and fine calculation calculation, and perform the preheating operation according to the configuration.

[0217] As an example, the HLSv7 live stream is the automatic temperature flow (70 points) in the intersection C, and proceeds to step 3 for fine-tuning calculation.

[0218] Phase 3: Refined mapping of temperature flow to heat and time windows, including the following process: 1. Remove glitches from the 95th percentile of the BW / QPS in a 10-second window; 2. EWMA smoothing and normalization of BW / QPS to the [0,100] interval; 3. Normalize the global heat value (35-90 points) of the automatic temperature flow to the [0,1] interval; 4. Calculate the heat weight res by integrating the normalized heat coefficient, normalized BW value, and normalized QPS value of automatic temperature flow; 5. Allocate preheating time windows (maximum 100s) to all refined calculation streams in the automatic temperature flow according to the res ranking.

[0219] As an example, this HLSv7 live stream has a calculated res=75 and an 80s warm-up window.

[0220] Phase 4: Hash node selection and task assignment, including the following process: 1. Map the stream name to the Hash ring using the HashKey, and select the first node clockwise as the execution node to ensure that the fixed nodes in the same stream are warmed up and avoid repeated origin requests.

[0221] 2. Issue preheating tasks to execution nodes. Preheating tasks include stream name, source site, window duration, etc.

[0222] As an example, the HLSv7 live stream was assigned to the L2 aggregation node Node-05 for warm-up.

[0223] Phase 5: Reverse preheating execution and effect feedback, including the following process: 1. The execution node retrieves media fragments from the source in reverse order of the latest fragment. For example, if the current largest fragment of m3u8 is 005.m4s, then the warm-up order is: 005→004→003→002→001.

[0224] 2. If m3u8 is refreshed after 1 second and new fragments 006, 007, and 008 are added, only the new fragments will be preheated. The preheating order is: 008→007→006.

[0225] 3. Every 10 seconds, the node reports parameters such as the number of successes, failures, and time elapsed.

[0226] 4. Dynamic optimization of the central control system.

[0227] If the hit rate is less than 80%, the window will be extended or the bit rate range will be expanded; if the failure rate is greater than 20%, the node will be temporarily blocked.

[0228] Example 2 Figure 13 The diagram schematically illustrates a node warm-up device for a content delivery network according to Embodiment 2 of this application. This device can be divided into one or more program modules. One or more program modules are stored in a storage medium and executed by one or more processors to complete the embodiments of this application. The program modules referred to in the embodiments of this application are a series of computer program instruction segments capable of performing specific functions. The following description will specifically introduce the functions of each program module in this embodiment. For example... Figure 13As shown, the node preheating device 1300 of the content delivery network may include: an acquisition module 1310, a first determination module 1320, a second determination module 1330, a third determination module 1340, and a distribution module 1350, wherein: The acquisition module 1310 is used to acquire candidate preheating flow information, preheating configuration information, and status information of candidate preheating nodes; The first determining module 1320 is used to determine a set of flows to be preheated based on the candidate preheating flow information and the preheating configuration information, and to determine the node preheating strategy corresponding to the target flow based on the flow category of the target flow; wherein, the target flow is any one of the flows to be preheated in the set of flows to be preheated, and different categories of target flows correspond to different node preheating strategies; The second determining module 1330 is used to determine the available preheating nodes based on the status information of the candidate preheating nodes; The third determining module 1340 is used to determine the execution node of the target flow among the available preheating nodes corresponding to the node preheating strategy; The distribution module 1350 is used to distribute the preheating task corresponding to the target flow to the execution node so that the execution node can perform the preheating operation.

[0229] In an optional implementation, obtaining candidate preheating flow information includes: Periodically request the streaming heat service to obtain the global heat stream set; Receive single-stream request volume data and single-stream bandwidth data periodically reported by the gateway layer; The single-stream request volume data and the single-stream bandwidth data are aggregated according to a preset statistical period to generate a local online stream set.

[0230] In an optional implementation, preheating configuration information is obtained, including: Retrieve the preset stream set and the preheating parameters corresponding to each preset stream in the preset stream set from the configuration backend; The preheating parameters include at least one of the following: specified node information, target level information, preheating duration parameters, and preset parameter markers.

[0231] In an optional implementation, the status information of the candidate preheating node is obtained, including: Scan the online status, processor usage status, bandwidth usage status, and connection count status of candidate warm-up nodes in the content delivery network cluster; Correspondingly, the available preheating nodes are determined, including: Online nodes that meet the resource conditions are selected from the candidate warm-up nodes and used as available warm-up nodes; the resource conditions include: processor utilization rate is lower than a preset threshold, bandwidth utilization rate is lower than a preset threshold, and the number of connections is lower than the upper limit of the number of connections.

[0232] In an optional implementation, after determining the available preheating nodes, the method further includes: Based on the node hierarchy information of each available preheating node, all available preheating nodes are divided into multiple levels; Map the available preheated nodes in each level to the corresponding dynamic hash ring; When a node is detected to be online, offline, or its state changes, the corresponding dynamic hash ring is updated.

[0233] In an optional implementation, determining the set of flows to be preheated based on the candidate preheating flow information and the preheating configuration information includes: Automatic filtering flow is determined based on the candidate preheating flow information; The automatically filtered stream is merged with the preset stream set to form the final set of streams to be preheated.

[0234] In an optional implementation, determining the automatic filtering stream based on the candidate preheating stream information includes: Based on the global heat value, the candidate flow is divided into automatic hot flow, automatic warm flow, and automatic cold flow; Specifically, candidate flows with global heat values ​​within a first preset range are identified as automatic hot flows, candidate flows with global heat values ​​within a second preset range are identified as automatic warm flows, and candidate flows with global heat values ​​within a third preset range are identified as automatic cold flows.

[0235] In an optional implementation, the node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: If the target flow is a preset flow, and the preheating parameters corresponding to the target flow contain specified node information, then the specified node is determined as the execution node; if the preheating parameters corresponding to the target flow contain target level information, then the execution node belonging to the target level is selected to perform the preheating operation.

[0236] In an optional implementation, the node hierarchy includes a first level, a second level, and a third level. The node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: When the target flow is automatic heat flow, a higher-level execution node is selected to perform the preheating operation; When an object access corresponding to the automatic hot flow is detected in the local online flow set, a lower-level execution node is selected to perform a preheating operation; The higher level includes a second level and a third level, the lower level is the first level, the nodes in the third level are closer to the source station than the nodes in the second level, and the nodes in the first level are closer to the object.

[0237] In an optional implementation, the node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: When the target flow is an automatic temperature flow, determine the intersection of the global heat flux set and the local online flow set; The automatic temperature flow located in the intersection is identified as the flow to be refined in calculation; Based on the calculation results of the computational flow to be refined, the preheating duration parameters of the computational flow to be refined are determined, and the execution node of the preset level is selected to perform the preheating operation.

[0238] In an optional implementation, the preheating duration parameter of the computational stream to be refined is determined based on the calculation results of the computational stream to be refined, including: Obtain the bandwidth data and request volume data of the computation stream to be refined within a preset statistical window; Extract preset percentile values ​​from multiple data points within the preset statistical window to perform de-glitching on the bandwidth data and the request volume data; The bandwidth and request volume data after de-glitching are smoothed by an exponentially weighted moving average. The heat weight of the computation stream to be refined is calculated based on the smoothed bandwidth data and request volume data, and the global heat value of the computation stream to be refined. The preheating duration parameter of the computational stream to be refined is determined based on the heat weight.

[0239] In an optional implementation, calculating the heat weight of the computation stream to be refined based on the smoothed bandwidth data and request volume data, and the global heat value of the computation stream to be refined, includes: The smoothed bandwidth data and request volume data are mapped to a first preset numerical range to obtain normalized bandwidth value and normalized request volume value. The global heat value of the computational stream to be refined is mapped to a second preset numerical range to obtain a normalized heat coefficient. The heat weight is obtained by fusing the normalized heat coefficient, the normalized bandwidth value, and the normalized request quantity value.

[0240] In an optional implementation, the heat weight is obtained by fusing the normalized heat coefficient, the normalized bandwidth value, and the normalized request volume value, including: When the streaming media protocol corresponding to the stream to be refined is HLS, the normalized heat coefficient, the normalized bandwidth value and the normalized request quantity value are fused and calculated according to the first weight combination; When the streaming media protocol corresponding to the stream to be refined is FLV, the normalized heat coefficient, the normalized bandwidth value and the normalized request quantity value are fused and calculated according to the second weight combination; The heat weights obtained from the fusion calculation are then smoothed again using an exponentially weighted moving average and rounded up.

[0241] In an optional implementation, determining the preheating duration parameter of the computational stream to be refined based on the calculation results of the computational stream to be refined further includes: Sort the multiple computational streams to be refined according to their popularity weight; Assign a preheating duration window to each computational stream to be refined based on the sorting results; If the heat weight is lower than the preset lower limit, the preheating duration window for the corresponding computational flow to be refined will be set to zero.

[0242] In an optional implementation, the node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: If the target flow is an automatic cold flow, obtain the single cluster bandwidth value and single cluster request volume value of the cluster where the target flow is located; If the single cluster bandwidth value is greater than a preset bandwidth threshold or the single cluster request volume value is greater than a preset request volume threshold, a preset level of execution node is selected to perform a preheating operation. If the single cluster bandwidth value is not greater than the preset bandwidth threshold and the single cluster request volume value is not greater than the preset request volume threshold, it is determined that the preheating operation will not be performed on the automatic cold flow.

[0243] In an optional implementation, determining the execution node of the target flow from the available preheating nodes corresponding to the node preheating strategy includes: If the target stream is a preset stream carrying specified node information, the specified node is directly determined as the execution node; When the target flow is a preset flow or an automatically filtered flow that does not carry specified node information, node mapping selection is performed based on the flow identifier of the target flow, and the node mapping selection is performed in the available preheating nodes corresponding to the node preheating strategy.

[0244] In an optional implementation, node mapping selection is performed based on the stream identifier of the target stream, including: Use the stream identifier of the target stream as the hash key; Map the hash key to a dynamic hash ring corresponding to the node preheating strategy; The first target node is located along the preset search direction of the dynamic hash ring; The first target node found is determined as the unique execution node of the target flow, so that the same target flow is mapped to the same converged source node under the same dynamic hash ring state.

[0245] In an optional implementation, issuing a preheating task corresponding to the target flow to the execution node includes: Generate a preheating task order; The preheating task sheet contains at least one of the following: stream identifier, preheating source information, preheating duration parameter, time window identifier, and preset parameter marker. The preheating task order is sent to the execution node; After receiving the preheating task order, the execution node pulls the media segments corresponding to the target stream from the superior node or the source station and caches them.

[0246] In an optional implementation, the node warm-up device 1300 of the content delivery network is further used for: Periodically request the playlist file corresponding to the target stream; The currently acquired playlist file is compared with the previously acquired playlist files to determine the new media segments; The newly added media segments are requested in a preset order and cached.

[0247] In an optional implementation, the node warm-up device 1300 of the content delivery network is further used for: Receive preheating execution data periodically reported by each execution node; Adjust subsequent preheating strategies based on the preheating execution data; The preheating execution data includes at least one of the following: the number of successful slices, the number of failed slices, and the time taken to pull the slices.

[0248] In an optional implementation, adjusting the subsequent preheating strategy based on the preheating execution data includes: If the object cache hit rate corresponding to the target stream is determined to be lower than the preset hit rate threshold, the warm-up bitrate range of the target stream is increased or the warm-up time window of the target stream is extended. If the preheating failure rate of the target node is determined to be higher than the preset failure rate threshold, the target node is marked as an unavailable node, and subsequent preheating tasks are assigned to other available nodes.

[0249] Example 3 Figure 14 This illustration schematically depicts the hardware architecture of a computer device 10000 suitable for implementing a node warm-up method for a content delivery network according to Embodiment 3 of this application. In some embodiments, the computer device 10000 may be a terminal device such as a smartphone, wearable device, tablet computer, personal computer, in-vehicle terminal, game console, virtual machine, workbench, digital assistant, set-top box, or robot. In other embodiments, the computer device 10000 may be a rack server, blade server, tower server, or cabinet server (including standalone servers or server clusters composed of multiple servers), etc. Figure 14 As shown, the computer device 10000 includes, but is not limited to: a memory 10010, a processor 10020, and a network interface 10030 that can communicate and be linked with each other via a system bus. Wherein: The memory 10010 includes at least one type of computer-readable storage medium, including flash memory, hard disk, multimedia card, card-type memory (e.g., SD or DX memory), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), magnetic memory, magnetic disk, optical disk, etc. In some embodiments, the memory 10010 may be an internal storage module of the computer device 10000, such as the hard disk or memory of the computer device 10000. In other embodiments, the memory 10010 may also be an external storage device of the computer device 10000, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the computer device 10000. Of course, the memory 10010 may also include both the internal storage module and the external storage device of the computer device 10000. In this embodiment, the memory 10010 is typically used to store the operating system and various application software installed on the computer device 10000, such as the program code of the method described in the foregoing embodiment. Furthermore, the memory 10010 can also be used to temporarily store various types of data that have been output or will be output.

[0250] In some embodiments, processor 10020 may be a central processing unit (CPU), a selector, a microselector, a microprocessor, or other chip. Processor 10020 is typically used to select the overall operation of computer device 10000, such as performing selections and processing related to data interaction or communication with computer device 10000. In this embodiment, processor 10020 is used to run program code stored in memory 10010 or process data.

[0251] Network interface 10030 may include a wireless network interface or a wired network interface, which is typically used to establish a communication link between computer device 10000 and other computer devices. For example, network interface 10030 is used to connect computer device 10000 to an external terminal via a network, establishing a data transmission channel and communication link between computer device 10000 and the external terminal. The network may be an intranet, the Internet, GSM, WCDMA, 4G, 5G, Bluetooth, Wi-Fi, or other wireless or wired networks.

[0252] It should be pointed out that, Figure 14 Only computer devices with components 10010-10030 are shown; however, it should be understood that it is not required to implement all of the shown components, and more or fewer components may be implemented instead.

[0253] In this embodiment, the node warm-up method of the content delivery network stored in the memory 10010 can also be divided into one or more program modules and executed by one or more processors (such as processor 10020) to complete the embodiment of this application.

[0254] Example 4 This application also provides a computer-readable storage medium storing a computer program thereon, wherein the computer program, when executed by a processor, implements the steps of the method described in the foregoing embodiments.

[0255] In this embodiment, the computer-readable storage medium includes flash memory, hard disk, multimedia card, card-type memory (e.g., SD or DX memory), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), magnetic memory, magnetic disk, optical disk, etc. In some embodiments, the computer-readable storage medium may be an internal storage unit of a computer device, such as the hard disk or memory of the computer device. In other embodiments, the computer-readable storage medium may also be an external storage device of the computer device, such as a plug-in hard disk, smart media card (SMC), secure digital card (SD), flash card, etc., equipped on the computer device. Of course, the computer-readable storage medium may include both the internal storage unit and the external storage device of the computer device. In this embodiment, the computer-readable storage medium is typically used to store the operating system and various application software installed on the computer device, such as the program code of the method described in the foregoing embodiments. In addition, the computer-readable storage medium can also be used to temporarily store various types of data that have been output or will be output.

[0256] Example 5 This application also provides a computer program product, including a computer program that, when executed by a processor, implements the methods described in the above embodiments.

[0257] Obviously, those skilled in the art should understand that the modules or steps of the embodiments of this application described above can be implemented using general-purpose computer devices. They can be centralized on a single computer device or distributed across a network of multiple computer devices. Optionally, they can be implemented using computer-executable program code, thereby storing them in a storage device for execution by a computer device. In some cases, the steps shown or described can be performed in a different order than those presented here, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, the embodiments of this application are not limited to any particular combination of hardware and software.

[0258] It should be noted that the above are merely preferred embodiments of this application and do not limit the scope of patent protection of this application. Any equivalent structural or procedural changes made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the scope of patent protection of this application.

Claims

1. A node warm-up method for a content delivery network, characterized in that, The method includes: Obtain candidate preheating flow information, preheating configuration information, and status information of candidate preheating nodes; The set of flows to be preheated is determined based on the candidate preheating flow information and the preheating configuration information, and the node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow; wherein, the target flow is any one of the flows to be preheated in the set of flows to be preheated, and different categories of target flows correspond to different node preheating strategies; Based on the status information of the candidate preheating nodes, the available preheating nodes are determined; The execution node of the target flow is determined from the available preheating nodes corresponding to the node preheating strategy; The execution node is issued a preheating task corresponding to the target flow so that the execution node performs the preheating operation.

2. The method according to claim 1, characterized in that, Obtain candidate preheating flow information, including: Periodically request the streaming heat service to obtain the global heat stream set; Receive single-stream request volume data and single-stream bandwidth data periodically reported by the gateway layer; The single-stream request volume data and the single-stream bandwidth data are aggregated according to a preset statistical period to generate a local online stream set.

3. The method according to claim 2, characterized in that, Obtain preheating configuration information, including: Retrieve the preset stream set and the preheating parameters corresponding to each preset stream in the preset stream set from the configuration backend; The preheating parameters include at least one of the following: specified node information, target level information, preheating duration parameters, and preset parameter markers.

4. The method according to claim 1, characterized in that, Obtain the status information of candidate preheating nodes, including: Scan the online status, processor usage status, bandwidth usage status, and connection count status of candidate warm-up nodes in the content delivery network cluster; Correspondingly, the available preheating nodes are determined, including: Online nodes that meet the resource conditions are selected from the candidate warm-up nodes and used as available warm-up nodes; the resource conditions include: processor utilization rate is lower than a preset threshold, bandwidth utilization rate is lower than a preset threshold, and the number of connections is lower than the upper limit of the number of connections.

5. The method according to claim 4, characterized in that, After determining the available preheating nodes, the following is also included: Based on the node hierarchy information of each available preheating node, all available preheating nodes are divided into multiple levels; Map the available preheated nodes in each level to the corresponding dynamic hash ring; When a node is detected to be online, offline, or its state changes, the corresponding dynamic hash ring is updated.

6. The method according to claim 3, characterized in that, The set of flows to be preheated is determined based on the candidate preheating flow information and the preheating configuration information, including: Automatic filtering flow is determined based on the candidate preheating flow information; The automatically filtered stream is merged with the preset stream set to form the final set of streams to be preheated.

7. The method according to claim 6, characterized in that, Determining the automatically filtered stream based on the candidate preheating stream information includes: Based on the global heat value, the candidate flow is divided into automatic hot flow, automatic warm flow, and automatic cold flow; Specifically, candidate flows with global heat values ​​within a first preset range are identified as automatic hot flows, candidate flows with global heat values ​​within a second preset range are identified as automatic warm flows, and candidate flows with global heat values ​​within a third preset range are identified as automatic cold flows.

8. The method according to claim 1, characterized in that, Determine the node preheating strategy corresponding to the target flow based on the flow category of the target flow, including: If the target flow is a preset flow, and the preheating parameters corresponding to the target flow contain specified node information, then the specified node is determined as the execution node; if the preheating parameters corresponding to the target flow contain target level information, then the execution node belonging to the target level is selected to perform the preheating operation.

9. The method according to claim 7, characterized in that, The node hierarchy includes a first level, a second level, and a third level. The node preheating strategy corresponding to the target flow is determined based on the flow category of the target flow, including: When the target flow is automatic heat flow, a higher-level execution node is selected to perform the preheating operation; When an object access corresponding to the automatic hot flow is detected in the local online flow set, a lower-level execution node is selected to perform a preheating operation; The higher level includes a second level and a third level, the lower level is the first level, the nodes in the third level are closer to the source station than the nodes in the second level, and the nodes in the first level are closer to the object.

10. The method according to claim 7, characterized in that, Determine the node preheating strategy corresponding to the target flow based on the flow category of the target flow, including: When the target flow is an automatic temperature flow, determine the intersection of the global heat flux set and the local online flow set; The automatic temperature flow located in the intersection is identified as the flow to be refined in calculation; Based on the calculation results of the computational flow to be refined, the preheating duration parameters of the computational flow to be refined are determined, and the execution node of the preset level is selected to perform the preheating operation.

11. The method according to claim 10, characterized in that, The preheating duration parameters of the computational flow to be refined are determined based on the calculation results of the computational flow to be refined, including: Obtain the bandwidth data and request volume data of the computation stream to be refined within a preset statistical window; Extract preset percentile values ​​from multiple data points within the preset statistical window to perform de-glitching on the bandwidth data and the request volume data; The bandwidth and request volume data after de-glitching are smoothed by an exponentially weighted moving average. The heat weight of the computation stream to be refined is calculated based on the smoothed bandwidth data and request volume data, and the global heat value of the computation stream to be refined. The preheating duration parameter of the computational stream to be refined is determined based on the heat weight.

12. The method according to claim 11, characterized in that, The calculation of the heat weight of the computation stream to be refined, based on the smoothed bandwidth data and request volume data, and the global heat value of the computation stream to be refined, includes: The smoothed bandwidth data and request volume data are mapped to a first preset numerical range to obtain normalized bandwidth value and normalized request volume value. The global heat value of the computational stream to be refined is mapped to a second preset numerical range to obtain a normalized heat coefficient. The heat weight is obtained by fusing the normalized heat coefficient, the normalized bandwidth value, and the normalized request quantity value.

13. The method according to claim 12, characterized in that, The heat weight is obtained by fusing the normalized heat coefficient, the normalized bandwidth value, and the normalized request volume value, including: When the streaming media protocol corresponding to the stream to be refined is HLS, the normalized heat coefficient, the normalized bandwidth value and the normalized request quantity value are fused and calculated according to the first weight combination; When the streaming media protocol corresponding to the stream to be refined is FLV, the normalized heat coefficient, the normalized bandwidth value and the normalized request quantity value are fused and calculated according to the second weight combination; The heat weights obtained from the fusion calculation are then smoothed again using an exponentially weighted moving average and rounded up.

14. The method according to claim 13, characterized in that, Determining the preheating duration parameters of the computational stream to be refined based on the calculation results of the computational stream to be refined also includes: Sort the multiple computational streams to be refined according to their popularity weight; Assign a preheating duration window to each computational stream to be refined based on the sorting results; If the heat weight is lower than the preset lower limit, the preheating duration window for the corresponding computational flow to be refined will be set to zero.

15. The method according to claim 7, characterized in that, Determine the node preheating strategy corresponding to the target flow based on the flow category of the target flow, including: If the target flow is an automatic cold flow, obtain the single cluster bandwidth value and single cluster request volume value of the cluster where the target flow is located; If the single cluster bandwidth value is greater than a preset bandwidth threshold or the single cluster request volume value is greater than a preset request volume threshold, a preset level of execution node is selected to perform a preheating operation. If the single cluster bandwidth value is not greater than the preset bandwidth threshold and the single cluster request volume value is not greater than the preset request volume threshold, it is determined that the preheating operation will not be performed on the automatic cold flow.

16. The method according to claim 6, characterized in that, Determining the execution node of the target flow from the available preheating nodes corresponding to the node preheating strategy includes: If the target stream is a preset stream carrying specified node information, the specified node is directly determined as the execution node; When the target flow is a preset flow or an automatically filtered flow that does not carry specified node information, node mapping selection is performed based on the flow identifier of the target flow, and the node mapping selection is performed in the available preheating nodes corresponding to the node preheating strategy.

17. The method according to claim 16, characterized in that, Stream identifier-based node mapping selection for the target stream includes: Use the stream identifier of the target stream as the hash key; Map the hash key to a dynamic hash ring corresponding to the node preheating strategy; The first target node is located along the preset search direction of the dynamic hash ring; The first target node found is determined as the unique execution node of the target flow, so that the same target flow is mapped to the same converged source node under the same dynamic hash ring state.

18. The method according to claim 1, characterized in that, Sending the preheating task corresponding to the target flow to the execution node includes: Generate a preheating task order; The preheating task sheet contains at least one of the following: stream identifier, preheating source information, preheating duration parameter, time window identifier, and preset parameter marker. The preheating task order is sent to the execution node; After receiving the preheating task order, the execution node pulls the media segments corresponding to the target stream from the superior node or the source station and caches them.

19. The method according to claim 18, characterized in that, The method further includes: Periodically request the playlist file corresponding to the target stream; The currently acquired playlist file is compared with the previously acquired playlist files to determine the new media segments; The newly added media segments are requested in a preset order and cached.

20. The method according to claim 1, characterized in that, The method further includes: Receive preheating execution data periodically reported by each execution node; Adjust subsequent preheating strategies based on the preheating execution data; The preheating execution data includes at least one of the following: the number of successful slices, the number of failed slices, and the time taken to pull the slices.

21. The method according to claim 20, characterized in that, Adjusting subsequent preheating strategies based on the preheating execution data includes: If the object cache hit rate corresponding to the target stream is determined to be lower than the preset hit rate threshold, the warm-up bitrate range of the target stream is increased or the warm-up time window of the target stream is extended. If the preheating failure rate of the target node is determined to be higher than the preset failure rate threshold, the target node is marked as an unavailable node, and subsequent preheating tasks are assigned to other available nodes.

22. A node preheating device for a content delivery network, characterized in that, The device includes: The acquisition module is used to acquire candidate preheating flow information, preheating configuration information, and status information of candidate preheating nodes. The first determining module is used to determine a set of flows to be preheated based on the candidate preheating flow information and the preheating configuration information, and to determine the node preheating strategy corresponding to the target flow based on the flow category of the target flow; wherein, the target flow is any one of the flows to be preheated in the set of flows to be preheated, and different categories of target flows correspond to different node preheating strategies; The second determining module is used to determine the available preheating nodes based on the status information of the candidate preheating nodes; The third determining module is used to determine the execution node of the target flow from the available preheating nodes corresponding to the node preheating strategy; The distribution module is used to distribute the preheating task corresponding to the target flow to the execution node so that the execution node can perform the preheating operation.

23. A computer device, characterized in that, include: At least one processor; and A memory communicatively connected to the at least one processor; wherein: The memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of any one of claims 1 to 21.

24. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that, when executed by a processor, implement the method as described in any one of claims 1 to 21.

25. A computer program product, comprising a computer program, characterized in that, When executed by a processor, the computer program implements the steps of the method according to any one of claims 1 to 21.