CN107241376B - Load balancing method, system and device and topology simplifying method thereof - Google Patents

Load balancing method, system and device and topology simplifying method thereof Download PDF

Info

Publication number
CN107241376B
CN107241376B CN201710087080.2A CN201710087080A CN107241376B CN 107241376 B CN107241376 B CN 107241376B CN 201710087080 A CN201710087080 A CN 201710087080A CN 107241376 B CN107241376 B CN 107241376B
Authority
CN
China
Prior art keywords
server
edge
edge server
servers
video stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710087080.2A
Other languages
Chinese (zh)
Other versions
CN107241376A (en
Inventor
张书馨
吕坤宪
萧裕宪
高靖钧
苏奕宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial Technology Research Institute ITRI
Original Assignee
Industrial Technology Research Institute ITRI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from TW105135447A external-priority patent/TWI604724B/en
Application filed by Industrial Technology Research Institute ITRI filed Critical Industrial Technology Research Institute ITRI
Publication of CN107241376A publication Critical patent/CN107241376A/en
Application granted granted Critical
Publication of CN107241376B publication Critical patent/CN107241376B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

The invention provides a load balancing method, a load balancing system, a load balancing device and a topology simplifying method. The load balancing method includes configuring a transmission progress value for each edge server; grouping a plurality of edge servers into a plurality of server groups, wherein each edge server is grouped to at least one server group belonging to the plurality of server groups; receiving a download request corresponding to a first video stream from a client device, wherein the first video stream is supplied by a first server group in the server groups; and selecting one edge server from the edge servers of the first server group as the first edge server to provide the video data of the first video stream to the client device according to the transmission progress value of the edge servers of the first server group.

Description

Load balancing method, system and device and topology simplifying method thereof
Technical Field
The present invention relates to a load balancing method, a load balancing system, a load balancing apparatus and a topology simplifying method, and also relates to a load balancing method, a load balancing system, a load balancing apparatus and a topology simplifying method capable of optimizing utilization of bandwidth and hardware resources.
Background
With the rapid development of internet technology and cloud computing technology, cloud computing services have the advantages of high reliability, low construction cost, good expansibility and the like, enterprises can rapidly deploy virtual machines by using a cloud environment at any time to provide various application services such as Web file transmission, Video on Demand (Video in Demand), Video Streaming (Live Streaming) and the like, and the problems of poor utilization rate and equipment maintenance possibly caused by traditional autonomous construction system equipment are solved. Although the cloud computing service brings many benefits, it is an important issue for enterprises to efficiently adjust the service scale of the cloud system according to the number of users thereof so as to maintain good service quality.
Taking the video streaming application service as an example, after the video streaming is uploaded to a streaming source Server (Origin Server) designated by the video service system by the video distribution software or device, the video distribution end diffuses the streaming data to a streaming Edge Server (Edge Server) by the streaming source Server to serve the user to connect the streaming data for video playback, which is a typical and widely used source-Edge architecture. In this architecture, the video service system will allocate a Load Balancer (Load Balancer) to receive the video stream viewing request and perform data stream distribution, which means that when the user wants to view a certain video channel, the user needs to connect to the Load Balancer first, and then the Load Balancer determines to which streaming edge server the user connection should be redirected (Redirect) to obtain the video stream data of the video channel. Wherein, each video channel can generate a plurality of video streams corresponding to a plurality of resolutions. In addition, different video channels have different numbers of online viewers depending on the video content popularity and the playing time, and if the streaming edge server of the video streaming system configured to serve the users is insufficient, the connection congestion is easily caused under the situation of a large number of viewers, so that the video playing is not smooth and the delay time is increased to cause the quality of the user service experience to be reduced. On the contrary, if the number of configured stream edge servers is too large, the number of users watching some stream edge servers may be low, which may cause the cloud resources waste and the host renting cost to increase.
Many Load balancing methods for network traffic have been proposed and applied, such as Random selection (Random), Round Robin (Round Robin), Weighted Round Robin (WRR), Weighted Fair Queuing (WFQ), Least Connection (Least Connection), Weighted Least Connection (Weighted Least Connection), Server Load (Server Load) evaluation, etc. In the situation of video application with multiple video streams and dynamic viewers, it is a challenge how to use a proper load balancing method and match with a server dynamic expansion/contraction mechanism to achieve efficient video data diffusion and save host rental cost.
Disclosure of Invention
The invention provides a load balancing method, a load balancing system, a load balancing device and a topology simplifying method, which can make the resource usage of audio-video data flow among corresponding server groups in an adaptive manner, and achieve the optimized load balancing effect with the least bandwidth and hardware resources.
The invention provides a load balancing method, which comprises the following steps:
configuring a transmission progress value for each of a plurality of edge servers, and grouping the plurality of edge servers into a plurality of server groups, wherein the edge server of each of the plurality of server groups supplies one of a plurality of video streams, and each of the plurality of edge servers is grouped to at least one server group belonging to the plurality of server groups;
receiving a download request corresponding to a first video stream in the plurality of video streams from a client device;
selecting a first server group from the plurality of server groups according to the download request, wherein the first server group supplies the first video stream; and
according to the transmission progress value of the edge servers of the first server group, one of the edge servers of the first server group is selected as a first edge server to provide the video data of the first video stream to the client device.
Preferably, the step of selecting one of the edge servers of the first server group as the first edge server to provide the video data of the first video stream to the client device according to the transmission progress of the edge servers of the first server group includes:
selecting an edge server having a minimum transmission progress value among edge servers of the first server group as the first edge server;
calculating and accumulating the added values to a transmission progress value of the first edge server; and
redirecting the download request to the first edge server.
Preferably, the added value is the size of the video data divided by a first bandwidth parameter of the first edge server, wherein the first bandwidth parameter is determined according to the external bandwidth of the first edge server.
Preferably, the method further comprises the following steps:
selecting a second edge server from the edge servers of the first server group, wherein a difference between a transmission progress value of the second edge server and a minimum transmission progress value among transmission progress values of the edge servers of the first server group is greater than or equal to an invalidation threshold for a predetermined time, wherein the predetermined time may be equal to zero;
removing the second edge server from the first group of servers; and
and sending information to a source server corresponding to the first video streaming or the second edge server so as to stop synchronizing the video data of the first video streaming to the second edge server.
Preferably, the method further comprises the following steps:
if the average bandwidth utilization of the remaining edge servers is still less than the medium load threshold after removing one of the edge servers, executing the following steps:
selecting a fifth edge server from the plurality of edge servers and calculating the bandwidth usage of the fifth edge server;
selecting at least a sixth edge server from the plurality of edge servers other than the fifth edge server, wherein a sum of bandwidth usage of each of the sixth edge servers and a bandwidth difference of the bandwidth usage reaching the medium load threshold is greater than the bandwidth usage of the fifth edge server;
synchronizing the video data of the video stream supplied by the fifth edge server to the sixth edge server;
resetting the transmission progress values of the plurality of edge servers;
adding the sixth edge server to a server group of the video stream supplied by the fifth edge server; and
removing the fifth edge server from the plurality of server groups.
Preferably, the step of synchronizing the video data corresponding to the video stream provided by the fifth edge server to the sixth edge server further comprises:
filling the bandwidth usage of each video stream supplied by the fifth edge server at the fifth edge server to the bandwidth difference of the sixth edge server to determine the sixth edge server corresponding to each video stream of the fifth edge server; and
sending information to the source server corresponding to each video stream or the sixth edge server corresponding to each video stream, so as to synchronize the video data of each video stream supplied by the fifth edge server to the sixth edge server corresponding to each video stream.
Preferably, the step of adding the sixth edge server to the group of servers for video and audio streaming provided by the fifth edge server further includes:
and adding the sixth edge server corresponding to each video stream supplied by the fifth edge server to the server group of each video stream.
The present invention further provides a load balancing system, including:
a plurality of edge servers;
a plurality of source servers coupled to the plurality of edge servers, wherein each of the plurality of source servers generates one of a plurality of video streams, and video data of each of the plurality of video streams is synchronized to at least one of the plurality of edge servers; and
a load balancing device coupled to the plurality of origin servers and the plurality of edge servers,
wherein the load balancing device configures a transmission progress value for each of the plurality of edge servers,
wherein the load balancing device groups a plurality of edge servers into a plurality of server groups, wherein the edge server of each of the plurality of server groups supplies the one of the video streams, each of the plurality of edge servers is grouped to at least one of the plurality of server groups,
wherein the load balancing device receives a download request from a client device corresponding to a first of the plurality of video streams, wherein the first of the plurality of server groups supplies the first video stream,
the load balancing device selects one edge server from the edge servers of the first server group as a first edge server according to the transmission progress value of the edge servers of the first server group to provide the video data of the first video stream to the client device.
Preferably, the load balancing means selects an edge server having a smallest transmission progress value among the edge servers of the first server group as the first edge server,
wherein the load balancing device calculates and accumulates incremental values to a transmission progress value of the first edge server,
wherein the load balancing device redirects the download request to the first edge server.
Preferably, the added value is the size of the video data divided by a first bandwidth parameter of the first edge server, wherein the first bandwidth parameter is determined according to the external bandwidth of the first edge server
Preferably, the load balancing device selects a second edge server from the edge servers of the first server group, wherein a difference between the transmission progress value of the second edge server and a minimum transmission progress value among the transmission progress values of the edge servers of the first server group is greater than or equal to an invalid threshold value within a predetermined time, wherein the predetermined time may be equal to zero,
wherein the load balancing device removes the second edge server from the first group of servers,
the load balancing device sends information to the source server or the second edge server corresponding to the first video stream to stop synchronizing video data of the first video stream to the second edge server.
Preferably, if the average bandwidth usage of the remaining edge servers of the plurality of edge servers is still less than the medium load threshold after removing one of the edge servers, the load balancing apparatus performs the following steps:
the load balancing device selects a fifth edge server from the plurality of edge servers and calculates the bandwidth usage of the fifth edge server;
the load balancing device selects at least one sixth edge server from the plurality of edge servers except the fifth edge server, wherein the sum of the bandwidth usage of each of the sixth edge servers and the bandwidth usage difference of the bandwidth usage reaching the medium load threshold is greater than the bandwidth usage of the fifth edge server;
the load balancing device synchronizes the video data of the video stream corresponding to the fifth edge server to the sixth edge server;
the load balancing device resets the transmission progress values of the plurality of edge servers;
the load balancing device adds the sixth edge server to a server group of the video stream supplied by the fifth edge server; and
the load balancing device removes the fifth edge server from the plurality of server groups.
Preferably, the load balancing device fills the bandwidth usage of each video stream supplied by the fifth edge server at the fifth edge server into the bandwidth difference of the sixth edge server to determine the sixth edge server corresponding to each video stream of the fifth edge server,
the load balancing device sends information to the source server corresponding to each video stream or the sixth edge server corresponding to each video stream, so as to synchronize the video data of each video stream supplied by the fifth edge server to the sixth edge server corresponding to each video stream.
Preferably, the load balancing device adds the sixth edge server corresponding to each video stream provided by the fifth edge server to the server group of each video stream.
The invention further provides a load balancing device, comprising a processing unit and a communication unit, wherein the load balancing device is coupled to a plurality of source servers and a plurality of edge servers through the communication unit, the plurality of source servers are coupled to the plurality of edge servers, wherein each of the plurality of source servers generates one of a plurality of video streams, video data of each of the plurality of video streams is synchronized to at least one edge server of the plurality of edge servers,
wherein the processing unit configures a transmission progress value for each of the plurality of edge servers,
wherein the processing unit groups a plurality of edge servers into a plurality of server groups, wherein an edge server of each of the plurality of server groups supplies the one of the video streams, each of the plurality of edge servers is grouped to at least one of the plurality of server groups,
wherein the processing unit receives a download request corresponding to a first video stream of the plurality of video streams from a client device, wherein the first video stream is supplied by a first server group of the plurality of server groups,
the processing unit selects one of the edge servers of the first server group as a first edge server according to the transmission progress value of the edge servers of the first server group to provide the video data of the first video stream to the client device.
Preferably, the processing unit selects an edge server having a smallest transmission progress value among the edge servers of the first server group as the first edge server,
wherein the processing unit calculates and accumulates the incremental value to a transmission progress value of the first edge server,
wherein the processing unit redirects the download request to the first edge server.
Preferably, the added value is the size of the video data divided by a first bandwidth parameter of the first edge server, wherein the first bandwidth parameter is determined according to the external bandwidth of the first edge server.
Preferably, the processing unit selects a second edge server from the edge servers of the first server group, wherein a difference between the transmission progress value of the second edge server and a minimum transmission progress value among the transmission progress values of the edge servers of the first server group is greater than or equal to an invalid threshold value within a predetermined time, wherein the predetermined time may be equal to zero,
wherein the processing unit removes the second edge server from the first group of servers,
the communication unit sends information to the source server or the second edge server corresponding to the first video stream to stop synchronizing video data of the first video stream to the second edge server.
Preferably, if after removing one of the edge servers, the average bandwidth utilization of the rest of the edge servers is still less than the medium load threshold, the processing unit executes the following steps:
the processing unit selects a fifth edge server from the plurality of edge servers and calculates the bandwidth usage of the fifth edge server;
the processing unit selects at least one sixth edge server from the plurality of edge servers except the fifth edge server, wherein the sum of the bandwidth usage of each of the sixth edge servers and the bandwidth difference of the bandwidth usage reaching the medium load threshold is greater than the bandwidth usage of the fifth edge server;
the processing unit and the communication unit synchronize the video data of the video stream corresponding to the fifth edge server to the sixth edge server;
the processing unit resets transmission progress values of the plurality of edge servers;
the processing unit adds the sixth edge server to a server group of the video stream supplied by the fifth edge server; and
the processing unit removes the fifth edge server from the plurality of server groups.
Preferably, the processing unit fills the bandwidth usage of each video stream supplied by the fifth edge server at the fifth edge server into the bandwidth difference of the sixth edge server to determine the sixth edge server corresponding to each video stream of the fifth edge server,
the communication unit sends information to the source server corresponding to each video stream or the sixth edge server corresponding to each video stream, so as to synchronize the video data of each video stream supplied by the fifth edge server to the sixth edge server corresponding to each video stream.
Preferably, the processing unit adds the sixth edge server corresponding to each video stream supplied by the fifth edge server to the server group of each video stream.
The invention also provides a topology simplification method, which comprises the following steps:
configuring a transmission progress value for each of a plurality of edge servers, and grouping the edge servers into a plurality of server groups, wherein the edge server of each of the plurality of server groups supplies one of a plurality of video streams, and each of the plurality of edge servers is grouped to at least one server group belonging to the plurality of server groups;
receiving a download request corresponding to a first video stream of the plurality of video streams from a client device
Selecting a first server group from the plurality of server groups according to the download request, wherein the first server group supplies the first video stream;
selecting one edge server from the edge servers of the first server group as a first edge server to provide video data of the first video stream to the client device according to the transmission progress value of the edge servers of the first server group;
selecting a second edge server from the edge servers of the first server group, wherein a difference between a transmission progress value of the second edge server and a minimum transmission progress value among transmission progress values of the edge servers of the first server group is greater than or equal to an invalidation threshold for a predetermined time, wherein the predetermined time may be equal to zero;
removing the second edge server from the first group of servers; and
stopping synchronizing the video data of the first video stream to the second edge server.
Based on the above, the load balancing method of the present invention configures a single transmission progress value for each server, and selects a server with a smaller load according to the transmission progress values of all servers in the server group to provide the video data. The topology simplification method removes a large number of servers with increased transmission progress values in a short time from the server group and stops synchronizing the audio and video data to the server so as to save the bandwidth of uploading the audio and video data to the server.
Drawings
FIG. 1 is a block diagram of a load balancing system according to an example embodiment.
Fig. 2 is a flow chart of a load balancing method according to an example embodiment.
Fig. 3 is an example of a load balancing method according to an example embodiment.
Fig. 4 is another example of a load balancing method according to an example embodiment.
FIGS. 5A and 5B illustrate an example of the operation of a load balancing method according to an example embodiment
Fig. 6 is a flowchart of a video and audio diffusion topology reduction method according to an example embodiment.
Fig. 7 is an example of a video and audio diffusion topology reduction method according to an example embodiment.
FIG. 8 is a flowchart illustrating a video and audio diffusion topology enhancement method according to an example embodiment.
FIG. 9 is a diagram illustrating an example of a video and audio diffusion topology enhancement method according to an example embodiment.
Fig. 10 is an example of a method for dynamically expanding a server according to an example embodiment.
FIG. 11 is another example of a method for dynamic server expansion according to an example embodiment.
Fig. 12A and 12B are flowcharts illustrating a dynamic server reduction method according to an example embodiment.
Fig. 13A and 13B are examples of a dynamic server reduction method according to an example embodiment.
Wherein the reference numerals are:
100: the load balancing system 110: load balancing device
120-1 to 120-3: edge servers 130-1 to 130-2: origin server
140-1 to 140-n: the client device 150: management device
160: database with a plurality of databases
S201, S203, S205: steps of a load balancing method
S601, S603, S605: steps of method for simplifying video-audio diffusion topology
S801, S803, S805, S807, S809, S811: method for enhancing video-audio diffusion topology
S1201, S1203, S1205, S1207, S1209, S1211, S1213: steps of server dynamic reduction method
Detailed Description
In order to make the present invention more comprehensible, embodiments accompanied with figures are described in detail below.
FIG. 1 is a block diagram of a load balancing system according to an example embodiment.
Referring to FIG. 1, a load balancing system 100 includes a load balancing device 110, edge servers 120-1 to 120-3, and origin servers 130-1 to 130-2. It is noted that although only three edge servers 120-1 to 120-3 and two source servers 130-1 to 130-2 are shown in FIG. 1, the present invention is not limited thereto, and the load balancing system 100 may include any number of edge servers and source servers. The number and objects of the edge servers 120-1-120-3 to which the origin servers 130-1-130-2 are coupled are dynamically adjusted according to the load balancing status of the load balancing system 100. The load balancing system 100 can be coupled to a plurality of client devices 140-1-140-n and the management device 150, wherein the management device 150 can also be coupled to the database 160. The client devices 140-1 to 140-n may be electronic devices such as a personal computer, a notebook computer, a tablet computer, and a smart phone. Users can download the video data from the edge servers 120-1 to 120-3 through the web browser or player software on the client devices 140-1 to 140-n. In an example embodiment, the load balancing device 110 may be a server including a processor (also referred to as a processing unit) and a communication chip (also referred to as a communication unit).
Each of the edge servers 120-1 to 120-3 and the source servers 130-1 to 130-2 may be located in the same machine or different machines. Each of the source servers 130-1 to 130-2 can also be installed in the same physical machine or the same virtual machine as any of the edge servers 120-1 to 120-3. When the source servers 130-1 to 130-2 and the edge servers 120-1 to 120-3 are installed in the same physical machine or virtual machine, the source servers 130-1 to 130-2 and the edge servers 120-1 to 120-3 share the CPU computing resources and network bandwidth resources of the same physical machine or virtual machine. The load balancing device 110 may be located in the same or different physical or virtual machines as any of the edge servers 120-1-120-3 or the source servers 130-1-130-2. The load balancing device 110 may be a program code implemented in software or a load balancing circuit implemented in hardware, or may be a stand-alone load balancing server.
For example, when the av distribution end is using the av distribution software or device to upload the av data of the av stream to the source server 130-1, the load balancing device 110 instructs the source server 130-1 to synchronize the av data to the server group consisting of the edge servers 120-1 and 120-2 according to the total traffic demand of the av stream, so as to provide the client devices 140-1 to 140-n to download the av data from the edge servers 120-1 or 120-2 in the server group. In detail, the load balancing device 110 can adjust the server group corresponding to the video stream according to the load condition of the edge server, and dynamically expand or reduce the number of the edge servers in the server group.
When the client devices 140-1 to 140-n are going to download the video data, the client devices 140-1 to 140-n will send a request to the load balancing device 110 to inquire the edge server address, and after obtaining the edge server address, send a request to the edge server to download the video data. The downloading process can use HyperText transfer Protocol (HTTP) website direction to download the video and audio data compatible with the existing player. When the load balancing device 110 receives the download request from the client devices 140-1 to 140-n, the load balancing device 110 can select an edge server (e.g., the edge server 120-1) according to the load condition of the edge server in the server group (e.g., the edge servers 120-1 and 120-2) corresponding to the video stream to be downloaded (e.g., the video stream of the source server 130-1) of the client devices 140-1 to 140-n and reply the address to the client devices 140-1 to 140-n.
That is, the source server 130-1 encodes the video data and distributes the video data to the edge servers 120-1, 120-2. The edge servers 120-1 and 120-2 receive the encoded video data and provide the downloading bandwidth of the video data for the client devices 140-1 to 140-n to download. The load balancing device 110 determines the distribution topology of the video data, wherein the distribution topology is the connection status of the video data of the synchronous video stream between the source server 130-1 to 130-2 and the edge servers 120-1 to 120-3 when the source server 130-1 to 130-2 synchronizes the video data to the edge servers 120-1 to 120-3. The load balancing device 110 also determines the transmission schedule of the video data and provides the download redirection of the video data, so that the client devices 140-1 to 140-n can download the video data from the correct edge server.
In addition, the management device 150 selects a source server (e.g., the source server 130-1) corresponding to the video stream when the video stream is distributed, and records the data in the database 160. The management device 150 may also configure the loadbalancing device 110 and provide video streaming and server information, or query the database 160 for historical data of the loadbalancing system 100.
Fig. 2 is a flowchart of a load balancing method according to an example embodiment of the present invention.
Referring to fig. 2, in step S201, the load balancing apparatus 110 configures a transmission progress value for each edge server and groups a plurality of edge servers into a plurality of server groups. The edge servers of each server group are used for supplying an audio/video stream, and each edge server is grouped into at least one server group in the server groups. In step S203, the load balancing device 110 receives a download request of an audio/video stream from the client device, and selects one of the server groups (hereinafter referred to as a first server group) from the plurality of server groups according to the download request, where the first server group supplies the audio/video stream corresponding to the download request. In step S205, the load balancing device 110 selects one of the edge servers of the first server group as the first edge server to provide the video data of the first video stream to the client device according to the transmission progress of the edge servers of the first server group. It should be noted that the edge server with the smallest transmission progress value among the edge servers of the first server group is selected as the first edge server, and the load balancing device 110 further calculates an added value and adds the added value to the transmission progress value of the first edge server, and the load balancing device 110 redirects the download request to the first edge server. In the exemplary embodiment, the value added is the size of the video data divided by a first bandwidth parameter of the first edge server.
The bandwidth parameter corresponding to the edge server is determined according to the external bandwidth of the edge server. The bandwidth parameter ratio of any two edge servers is equal to the external bandwidth ratio. For example, if the external bandwidth of the first edge server is 100Mbps, and the external bandwidth of the second edge server is 200Mbps, the bandwidth parameters of the first edge server and the second edge server may be 100 and 200, respectively, or 100 × 106And 200X 106Or 100/(100+200) and 200/(100+200), respectively, i.e., 1/3 and 2/3 …, etc.
In addition, the bandwidth parameter ratio of any two edge servers can also be set to be equal to the reserved external bandwidth ratio. For example, the external bandwidth reserved by the first edge server is 80Mbps, the external bandwidth reserved by the second edge server is 180Mbps, and the bandwidth parameters of the first edge server and the second edge server may be 80 and 180, respectively, or 80 × 106And 180X 106Or 80/(80+180) and 180/(80+180), respectively, i.e., 4/13 and 9/13 …, and so on.
Fig. 3 is an example of a load balancing method according to an example embodiment of the present invention.
Referring to fig. 3, in this example, three channels, i.e., channel A, B, C, are respectively generated from source server A, B, C to supply bandwidth to the outside using edge servers 1, 2, 3, and 4 (the channel and the source server are assumed to be one-to-one in this example embodiment, and therefore the same symbol A, B, C is used to represent both channels and source servers). The video stream of channel a is synchronized to the edge server 1 and the edge server 2, the video stream of channel B is synchronized to the edge server 2 and the edge server 3, and the video stream of channel C is synchronized to the edge server 3 and the edge server 4. The split service and its bandwidth usage provided by the edge server for each channel are represented by the filling manner and area of the square. Thus, edge server 1 serves channel a, edge server 2 serves channel a and channel B simultaneously, edge server 3 serves channel B and channel C simultaneously, and edge server 4 serves channel C. In addition, for simplicity, it is assumed that the external bandwidth of each edge server can be simultaneously supplied to 100 client devices 140-1 to 140-n for downloading channel video streaming data.
As the number of viewers in the channel changes, for example, the number of viewers in the channel a increases from 160 to 170, the number of viewers in the channel B maintains 80, and the number of viewers in the channel C decreases from 160 to 150, the load balancing method of the present example embodiment can immediately adapt the bandwidth supply amount of the edge servers 1, 2, 3, 4 for each channel, automatically adjust the bandwidth load of the video stream of each channel on the edge servers, and converge to achieve the appropriate bandwidth load balancing state. For example, the bandwidth provided by edge server 2 to channel A, B is changed from 60, 40 to 70, 30, and the bandwidth provided by edge server 3 to channel B, C is changed from 40, 60 to 50, 50.
The correspondence relationship between each video channel and each source server generating a video stream corresponding to each video channel is only for convenience of description, and actually, each source server can be coupled to serve a plurality of video channels simultaneously, and the source server can generate a plurality of video streams corresponding to a plurality of resolutions for each video channel. For the edge server, a plurality of video streams corresponding to the same video channel are regarded as different video streams. Therefore, more precisely, the split service provided by the edge server is to be the individual video streams, that is, the video data of multiple video streams corresponding to the same video channel can be synchronized to different edge servers.
Fig. 4 is another example of a load balancing method according to an example embodiment of the present invention.
Referring to fig. 4, the video stream of channel a is synchronized to the edge servers 1, 2, 3, 4, each edge server has a bandwidth consumption of 80 and a remaining bandwidth of 20. Assuming that the channel B is added to share the bandwidth of the edge server 4, as the number of viewers in the channel B increases to 80, the load balancing method of the exemplary embodiment can automatically transfer the bandwidth usage of the video stream of the original channel a on the edge server 4 to the edge servers 1, 2, and 3, so that the bandwidth requirements of the video streams of the channels a and B can be satisfied.
As can be seen from the examples shown in fig. 3 and fig. 4, when the bandwidth requirement of the video channel changes with the number of viewers, the load balancing method of the present example embodiment can automatically adjust the bandwidth allocation ratio of all the edge servers.
Fig. 5A and 5B are diagrams illustrating an example of the operation principle of the load balancing method according to an example embodiment of the present invention.
Referring to FIG. 5A, in this example, there are three video channels, and the video stream of channel A is synchronized to the edge server 1 andthe edge server 2, the video stream of channel B is synchronized to the edge server 2 and the edge server 3, and the video stream of channel C is synchronized to the edge server 3 and the edge server 4, wherein the load balancing device 110 is configured with a transmission progress value corresponding to each edge server, which is TP respectively1、TP2、TP3And TP4BW of1To BW4Bandwidth parameters of the edge server 1 to the edge server 4 are respectively. According to the flowchart of the load balancing method disclosed in fig. 2, first, in step S203, the load balancing device 110 receives a request for downloading a video stream of Channel a (REQ Channel a) from a client device X, and selects a server group corresponding to the video stream of Channel a from a plurality of server groups according to the request, where the server group includes an edge server 1 and an edge server 2. In step S205, the load balancing device 110 selects the edge server with the minimum transmission progress value from the edge servers 1 and 2 to provide the video data of the video stream of channel a to the client device X. Assuming that the bandwidth load of the edge server 1 is higher, the transmission progress value TP is determined1Greater than the transmission progress value TP of the edge server 22Therefore, the load balancing device 110 selects the edge server 2 as the provider of the AV data corresponding to the download request, and calculates a transmission progress TP added to the edge server 22(i.e., TP)2←TP2+ChunkSizeA/BW2) Step ① shown in FIG. 5A, this increment can be the size of the audio data (ChunkSize) of the audio stream on channel AA) Divided by the bandwidth parameter (BW) of the edge server 22) When the client device X receives the redirection response from the load balancing device 110, it downloads the av data corresponding to the download request from the edge server 2, as shown in step ① in fig. 5B.
Then, the load balancing device 110 receives a video stream downloading request (REQChannel B) from the user device Y, and selects a server group corresponding to the video stream of the channel B, i.e. the edge server 2 and the edge server 3, according to the downloading request. Similarly, the load balancing device 110 selects transmission from the group of servers for channel B video streamingThe edge server with the minimum progress value. At this time, the transmission progress value TP of the edge server 2 is calculated2Has been incremented in step ①, the load balancing device 110 selects the edge server 3 as the provider of the AV data corresponding to the download request, and calculates a transmission progress TP added to the edge server 33(i.e., TP)3←TP3+ChunkSizeB/BW3) ② step shown in FIG. 5A, when the client device Y receives the redirection response from the load balancing device 110, it downloads the AV data corresponding to the download request from the edge server 3, ② step shown in FIG. 5B.
Then, the load balancing device 110 receives a video stream downloading request (REQChannel C) of channel C from the client device Z, and selects a server group corresponding to the video stream of channel C, i.e. the edge server 3 and the edge server 4, according to the downloading request. Similarly, the load balancing device 110 selects the edge server with the minimum transmission progress value from the group of servers of the channel C video stream. At this time, the transmission progress value TP of the edge server 3 is calculated3Has been incremented in step ②, the load balancing device 110 selects the edge server 4 as the provider of the AV data corresponding to the download request, and calculates a transmission progress TP added to the edge server 44(i.e., TP)4←TP4+ChunkSizeC/BW4) Step ③ in fig. 5A, when the client device Z receives the redirection response from the load balancing device 110, the video and audio data corresponding to the download request is downloaded from the edge server 4, step ③ in fig. 5B.
It is noted that according to the video data spreading topology shown in the example of fig. 5A and 5B, the server group corresponding to each channel only covers a part of the edge servers, and the bandwidth load of any edge server (e.g., edge server 1) can be evenly distributed to all other edge servers (e.g., edge servers 2-4). That is, the bandwidth resource usage can be adaptively scheduled among all the edge servers. Therefore, the method can automatically achieve the bandwidth load balance of all the edge servers of the system through the resource communication characteristic caused by the overlapping of the server groups of all the video streams.
Fig. 6 is a flowchart illustrating a method for reducing an av diffusion topology according to an exemplary embodiment of the present invention.
Referring to fig. 6, in step S601, the load balancing device 110 selects an invalid edge server (hereinafter, also referred to as a second edge server) from a group of servers corresponding to an av stream, wherein a difference between a transmission progress value of the invalid edge server and a minimum transmission progress value among transmission progress values of all edge servers of the group of servers is greater than or equal to an invalid threshold within a predetermined time. It is noted that the invalid threshold represents an upper bound of the offset of the bandwidth usage of the edge server for the server group. Further, the predetermined time may be equal to zero. In step S603, the load balancing device 110 removes the invalid edge server from the server group, and in step S605, the load balancing device 110 sends a message to the source server and/or the invalid edge server corresponding to the video stream, and stops synchronizing the video data of the video stream to the invalid edge server.
Specifically, only the edge server with the minimum transmission progress value is selected as the data download point of the video stream for each video stream server group, so that the edge server with the maximum transmission progress value in the server group can not serve the video stream in a short time, and the edge server with the maximum transmission progress value can be removed from the server group. This situation may occur when the same edge server is over-utilized by other video streams momentarily, causing it to be more heavily loaded than other edge servers in the server farm. The invalid threshold may be set by considering the amount of instantaneous tolerable cumulative offset of the transmission progress value and calculating according to the upper limit of the instantaneous increment of the number of people watching the channel.
Fig. 7 is an exemplary method for reducing the av diffusion topology according to an exemplary embodiment of the present invention.
Referring to fig. 7, the video stream of original channel a is synchronized to the edge server 1, the video stream of channel B is synchronized to the edge server 1 and the edge server 2, the number of viewers in channels a and B is 50 and 70, respectively, and the bandwidth usage of the edge server 1 and the edge server 2 is balanced. As the number of viewers in channel a increases to 80, the transmission progress value of the edge server 1 also increases rapidly as the number of viewers in channel a increases. The load balancing device 110 will not direct the downloading request of the video data of the channel B video stream to the edge server 1 in the server group originally belonging to the channel B video stream in a short time, so the edge server 1 will not provide the streaming service for the channel B video stream substantially. Thus, the synchronous connection of the channel B video stream from the source server B to the edge server 1 can be stopped.
FIG. 8 is a flowchart illustrating a video and audio diffusion topology enhancement method according to an exemplary embodiment of the invention.
Referring to fig. 8, in step S801, the load balancing apparatus 110 selects a high-load edge server (hereinafter also referred to as a third edge server) from the edge servers of the load balancing system 100, wherein the bandwidth utilization of the high-load edge server is higher than a high-load threshold, and the high-load edge server supplies one or more video data downloads of the video stream. In step S803, the load balancing device 110 selects a transfer stream (hereinafter also referred to as a second stream) from a plurality of streams corresponding to the high-load edge server. In step S805, the load balancing device 110 selects a receiving edge server (hereinafter also referred to as a fourth edge server), wherein the receiving edge server does not belong to the group of servers corresponding to the transferred video stream.
For example, in an exemplary embodiment, the load balancing device 110 first picks an edge server with a bandwidth utilization rate not equal to zero and lower than a low load threshold from among edge servers not belonging to a server group corresponding to the transferred video stream, and then selects one of the picked edge servers as a receiving edge server, or selects an edge server with a highest bandwidth utilization from the picked edge servers as the receiving edge server. In addition, if there is no edge server with bandwidth utilization rate not zero and lower than the low load threshold among the edge servers not belonging to the server group corresponding to the transferred video stream, the load balancing device 110 will first pick out the edge server with bandwidth utilization rate between the low load threshold and the high load threshold from the edge servers not belonging to the server group corresponding to the transferred video stream, and then select the edge server with the lowest bandwidth utilization rate from the picked out edge servers as the receiving edge server.
Then, in step S807, the load balancing device 110 sends information to the source server and/or the receiving edge server corresponding to the transferred video stream, and synchronizes the video data of the transferred video stream to the receiving edge server. Then, in step S809, the load balancing device 110 sets the transmission progress value of the receiving edge server as the transmission progress value of the high-load edge server. Finally, in step S811, the load balancing device 110 adds the receiving edge server to the group of servers corresponding to the transferred video stream. In the present exemplary embodiment, for example, the high load threshold is set to 80% of the external bandwidth of each edge server and the low load threshold is set to 60% of the external bandwidth of each edge server.
In the exemplary embodiment, by preferentially selecting the edge server with the highest bandwidth utilization rate as the receiving edge server from among the edge servers with the bandwidth utilization rates lower than the low load threshold, the total amount of the edge servers used by the load balancing system 100 can be reduced and the utilization rate of each used edge server can be increased. By selecting the edge server with the lowest bandwidth utilization rate as the receiving edge server from the edge servers with the bandwidth utilization rate between the low load threshold and the high load threshold, the bandwidth utilization rate of the individual edge servers can be made not to exceed the high load threshold as much as possible under the condition that the utilization rate of the whole edge server of the load balancing system 100 is high. In addition, in order to ensure that the receiving edge server can maintain the correct load balancing effect after joining the server group corresponding to the transferred video stream, the uniform setting of the transmission progress value of the receiving edge server must be completed first. For example, in step S809, when performing the uniform setting, the load balancing apparatus 110 sets the transmission progress value of the receiving edge server as the transmission progress value of the high-load edge server.
Fig. 9 is a diagram illustrating an example of a video and audio diffusion topology enhancement method according to an example embodiment of the invention.
Referring to fig. 9, since the bandwidth load of the edge server 2 is too high, the load balancing device 110 selects channel B as the transfer video stream and transfers its load on the edge server 2 to the receiving edge server (i.e., the edge server 3). According to the video and audio diffusion topology enhancement method of the present exemplary embodiment, the edge server 3 not only distributes the load of the video and audio stream of the channel B on the edge server 2, but also achieves the effect that the edge server 3 and the edge server 4 share the bandwidth load of the edge server 1 and the edge server 2 together through the load linkage of the server groups corresponding to the video and audio streams of the channel a and the channel D.
Referring to fig. 8 again, if in step S805, the load balancing device 110 cannot find an edge server whose bandwidth utilization is not zero and whose bandwidth utilization is lower than the low load threshold, and cannot find an edge server whose bandwidth utilization is between the low load threshold and the high load threshold, the load balancing device 110 will select an edge server whose bandwidth utilization is zero as the receiving edge server. The above method of selecting an edge server with a bandwidth utilization of zero as a receiving edge server is also referred to as a server dynamic expansion method.
Fig. 10 is an example of a method for dynamically expanding a server according to an example embodiment of the invention.
Referring to fig. 10, since the load balancing device 110 detects that the edge server 3 is a high load server, the load balancing device 110 selects a transfer video stream from the channels served by the edge server 3. For convenience of explanation, assume that channel D is selected as the transport video stream. After selecting the transfer video stream, the dynamic server expansion method of the present exemplary embodiment first establishes a synchronous connection between the source server D and the dynamically expanded edge server 4, and then, in cooperation with the above load balancing method, the edge server 4 automatically distributes the bandwidth loads of the video stream of the channel D on the edge server 1, the edge server 2, and the edge server 3, and re-converges to the most appropriate load balancing state. In addition, in conjunction with the AV diffusion topology reduction method, the load balancing device 110 also automatically removes the synchronization connection from the source server D to the edge server 1, the edge server 2, and the edge server 3.
Fig. 11 is another example of a method for dynamically expanding a server according to an example embodiment of the invention.
Referring to fig. 11, assuming that the channel C corresponding to the edge server 3 is selected as the transport stream, the load balancing device 110 establishes a synchronous connection between the source server C and the dynamically extended edge server 4. With the above load balancing method, the edge server 4 will automatically share the bandwidth load of the channel C video stream on the edge server 3, and the edge server 3 will automatically share the bandwidth load of the channel D video stream on the edge server 1 and the edge server 2, and finally re-converge to the most appropriate load balancing state. In addition, in conjunction with the AV diffusion topology reduction method, the load balancing device 110 also automatically removes the synchronous connection from the source server D to the edge server 1 and the edge server 2.
Fig. 12A and 12B are flowcharts illustrating a dynamic server reduction method according to an exemplary embodiment of the invention.
Referring to fig. 12A and 12B, in step S1201, the load balancing device 110 determines whether the average bandwidth usage of the remaining edge servers is still less than the medium load threshold after removing one of the edge servers. If the average bandwidth utilization of the edge servers is still smaller than the medium load threshold after removing one of the edge servers, in step S1203, the load balancing apparatus 110 selects an offline edge server (hereinafter also referred to as a fifth edge server) from all the edge servers and calculates the current bandwidth utilization of the offline edge server. In step S1205, the load balancing apparatus 110 selects at least one receiving edge server (hereinafter also referred to as a sixth edge server) from the edge servers other than the offline edge servers, wherein a sum of bandwidth differences between the current bandwidth usage of each of the selected sixth edge servers and the bandwidth usage reaching the medium load threshold is greater than the current bandwidth usage of the offline edge server. In step S1207, the load balancing device 110 fills the bandwidth of each of the video streams from the offline edge server to the bandwidth difference of the sixth edge server, thereby selecting the sixth edge server corresponding to each of the video streams from the offline edge server, and sends information to the source server corresponding to the video stream and/or the selected sixth edge server, so as to synchronize the video data of the video stream from the source server to the selected sixth edge server. Here, if the source server corresponding to the video stream and the selected sixth edge server are already performing video data synchronization, it is not necessary to send information again or repeat synchronizing the video data. In step S1209, the load balancing device 110 resets the transmission progress values of all the edge servers, for example, resets the transmission progress values of all the edge servers of the load balancing system 100 to 0. In step S1211, the load balancing device 110 adds a sixth edge server selected corresponding to each of the offline edge servers to a group of servers corresponding to each of the video streams. Here, if the selected sixth edge server already belongs to the group of servers corresponding to the video stream, the sixth edge server does not need to join again. In step S1213, the load balancing device 110 removes the offline edge server from all server groups in the load balancing system 100, and sends information to the source server and/or the offline edge server corresponding to each of the video streams of the offline edge server to stop synchronizing the video data of the video streams to the offline edge server. Finally, the offline edge server is shut down. In the present exemplary embodiment, for example, the medium load threshold is set to 70% of the total bandwidth of each edge server.
Fig. 13A and 13B are diagrams illustrating an example of a dynamic server reduction method according to an example embodiment of the invention.
Referring to fig. 13A and 13B, the load balancing device 110 selects the edge server 4 as an offline edge server, and fills the bandwidth usage of the video stream of each channel served by the edge server 4 into the bandwidth difference of other receiving edge servers. The bandwidth consumption of the channel a video stream at the edge server 4 is filled in the edge server 1, and the bandwidth consumption of the channel B video stream at the edge server 4 is divided and filled in the edge server 2 and the edge server 3, respectively. Since the bandwidth consumption of the channel B video stream corresponding to the edge server 4 is to be allocated to the edge server 2 and the edge server 3, and the source server B and the edge server 3 originally do not perform video data synchronization, it is necessary to establish video data synchronization between the source server B and the edge server 3 (corresponding to step S1207 of fig. 12B), and add the edge server 3 to the server group corresponding to the channel B video stream (corresponding to step S1211 of fig. 12B). Finally, the load balancing system 100 converges to the most appropriate load balancing state again, and the edge server 4 can be offline after completing load transfer of all bandwidths.
The correspondence relationship between each video channel and each source server generating a video stream corresponding to each video channel is only for convenience of description, and actually, each source server can be coupled to serve a plurality of video channels simultaneously, and the source server can generate a plurality of video streams corresponding to a plurality of resolutions for each video channel. For the edge server, a plurality of video streams corresponding to the same video channel are regarded as different video streams. Therefore, more precisely, the split service provided by the edge server is to be the individual video streams, that is, the video data of multiple video streams corresponding to the same video channel can be synchronized to different edge servers.
In summary, the load balancing method, the load balancing system and the load balancing apparatus of the present invention can automatically adjust the bandwidth allocation proportion of all servers in the system for downloading the streaming data of each video, and timely simplify or enhance the topology between the source server and the edge server to save the uploading bandwidth of the source server and achieve load balancing among multiple server groups. In addition, the load balancing method, the load balancing system and the load balancing device can also expand the edge server corresponding to the video stream of the source server so as to relieve the condition of overhigh load of the edge server. The load balancing method, the load balancing system and the load balancing device can also reduce the edge servers corresponding to the video streaming of the source server, so that the system can provide enough bandwidth for downloading video streaming data by using the minimum number of edge servers under the condition that each edge server does not exceed high load.
Although the present invention has been described with reference to the above embodiments, it should be understood that the scope of the present invention is defined by the appended claims.

Claims (19)

1. A method of load balancing, comprising:
configuring a transmission progress value for each of a plurality of edge servers, and grouping the plurality of edge servers into a plurality of server groups, wherein an edge server of each of the plurality of server groups supplies one of a plurality of video streams, and each of the plurality of edge servers is grouped to at least one server group belonging to the plurality of server groups;
receiving a download request corresponding to a first video stream in the plurality of video streams from a client device;
selecting a first server group from the plurality of server groups according to the download request, wherein the first server group supplies the first video stream; and
selecting an edge server with a minimum transmission progress value from the edge servers of the first server group as a first edge server; calculating and accumulating the added values to a transmission progress value of the first edge server; and redirecting the download request to the first edge server, and providing the video data of the first video stream to the client device by the first edge server.
2. The method of claim 1, wherein the value added is the size of the video data divided by a first bandwidth parameter of the first edge server, wherein the first bandwidth parameter is determined according to an external bandwidth of the first edge server.
3. The load balancing method of claim 1, further comprising:
selecting a second edge server from the edge servers of the first server group, wherein a difference between a transmission progress value of the second edge server and a minimum transmission progress value among transmission progress values of the edge servers of the first server group is greater than or equal to an invalidation threshold for a predetermined time, wherein the predetermined time may be equal to zero;
removing the second edge server from the first group of servers; and
and sending information to a source server corresponding to the first video streaming or the second edge server so as to stop synchronizing the video data of the first video streaming to the second edge server.
4. The load balancing method of claim 1, further comprising:
if the average bandwidth utilization of the remaining edge servers is still less than the medium load threshold after removing one of the edge servers, executing the following steps:
selecting a fifth edge server from the plurality of edge servers and calculating the bandwidth usage of the fifth edge server;
selecting at least a sixth edge server from the plurality of edge servers other than the fifth edge server, wherein a sum of bandwidth usage of each of the sixth edge servers and a bandwidth difference of the bandwidth usage reaching the medium load threshold is greater than the bandwidth usage of the fifth edge server;
synchronizing the video data of the video stream supplied by the fifth edge server to the sixth edge server;
resetting the transmission progress values of the plurality of edge servers;
adding the sixth edge server to a server group of the video stream supplied by the fifth edge server; and
removing the fifth edge server from the plurality of server groups.
5. The method of claim 4, wherein synchronizing video data corresponding to the video stream provided by the fifth edge server to the sixth edge server further comprises:
filling the bandwidth usage of each video stream supplied by the fifth edge server at the fifth edge server to the bandwidth difference of the sixth edge server to determine the sixth edge server corresponding to each video stream of the fifth edge server; and
sending information to the source server corresponding to each video stream or the sixth edge server corresponding to each video stream, so as to synchronize the video data of each video stream supplied by the fifth edge server to the sixth edge server corresponding to each video stream.
6. The method of claim 5, wherein the step of adding the sixth edge server to the group of servers for the video stream served by the fifth edge server further comprises:
and adding the sixth edge server corresponding to each video stream supplied by the fifth edge server to the server group of each video stream.
7. A load balancing system, comprising:
a plurality of edge servers;
a plurality of source servers coupled to the plurality of edge servers, wherein each of the plurality of source servers generates one of a plurality of video streams, and video data of each of the plurality of video streams is synchronized to at least one of the plurality of edge servers; and
a load balancing device coupled to the plurality of origin servers and the plurality of edge servers,
wherein the load balancing device configures a transmission progress value for each of the plurality of edge servers,
wherein the load balancing device groups the plurality of edge servers into a plurality of server groups, wherein the edge server of each of the plurality of server groups supplies the one of the video streams, each of the plurality of edge servers is grouped to at least one of the plurality of server groups,
wherein the load balancing device receives a download request from a client device corresponding to a first video stream of the plurality of video streams, wherein the first video stream is supplied by a first server group of the plurality of server groups,
the load balancing device selects an edge server with a minimum transmission progress value from among the edge servers of the first server group as a first edge server, calculates added values and accumulates the added values to the transmission progress value of the first edge server, redirects the download request to the first edge server, and provides video and audio data of the first video and audio stream to the client device by the first edge server.
8. The load balancing system of claim 7, wherein the incremental value is the size of the video data divided by a first bandwidth parameter of the first edge server, wherein the first bandwidth parameter is determined according to an external bandwidth of the first edge server.
9. The load balancing system of claim 7,
the load balancing device selects a second edge server from the edge servers of the first server group, wherein a difference between a transmission progress value of the second edge server and a minimum transmission progress value among transmission progress values of edge servers of the first server group is greater than or equal to an invalidation threshold for a predetermined time, wherein the predetermined time may be equal to zero,
wherein the load balancing device removes the second edge server from the first group of servers,
the load balancing device sends information to the source server or the second edge server corresponding to the first video stream to stop synchronizing video data of the first video stream to the second edge server.
10. The load balancing system of claim 7,
if the average bandwidth utilization of the remaining edge servers is still less than the medium load threshold after removing one of the edge servers, the load balancing apparatus performs the following steps:
the load balancing device selects a fifth edge server from the plurality of edge servers and calculates the bandwidth usage of the fifth edge server;
the load balancing device selects at least one sixth edge server from the plurality of edge servers except the fifth edge server, wherein the sum of the bandwidth usage of each of the sixth edge servers and the bandwidth usage difference of the bandwidth usage reaching the medium load threshold is greater than the bandwidth usage of the fifth edge server;
the load balancing device synchronizes the video data of the video stream corresponding to the fifth edge server to the sixth edge server;
the load balancing device resets the transmission progress values of the plurality of edge servers;
the load balancing device adds the sixth edge server to a server group of the video stream supplied by the fifth edge server; and
the load balancing device removes the fifth edge server from the plurality of server groups.
11. The load balancing system of claim 10, wherein the load balancing device fills the bandwidth usage of each video stream provided by the fifth edge server at the fifth edge server into the bandwidth difference of the sixth edge server to determine the sixth edge server corresponding to each video stream of the fifth edge server,
the load balancing device sends information to the source server corresponding to each video stream or the sixth edge server corresponding to each video stream, so as to synchronize the video data of each video stream supplied by the fifth edge server to the sixth edge server corresponding to each video stream.
12. The system of claim 11, wherein the load balancing device adds the sixth edge server corresponding to each video stream provided by the fifth edge server to the server group of each video stream.
13. A load balancing device comprises a processing unit and a communication unit, wherein the load balancing device is coupled to a plurality of source servers and a plurality of edge servers through the communication unit, the plurality of source servers are coupled to the plurality of edge servers, wherein each of the plurality of source servers generates one of a plurality of video streams, video data of each of the plurality of video streams is synchronized to at least one of the plurality of edge servers,
wherein the processing unit configures a transmission progress value for each of the plurality of edge servers,
wherein the processing unit groups the plurality of edge servers into a plurality of server groups, wherein an edge server of each of the plurality of server groups supplies the one of the video streams, each of the plurality of edge servers is grouped to at least one of the plurality of server groups,
wherein the processing unit receives a download request corresponding to a first video stream of the plurality of video streams from a client device, wherein the first video stream is supplied by a first server group of the plurality of server groups,
the processing unit selects an edge server with a minimum transmission progress value from among the edge servers of the first server group as a first edge server, calculates and accumulates added values to the transmission progress value of the first edge server, redirects the download request to the first edge server, and provides video and audio data of the first video and audio stream to the client device through the first edge server.
14. The load balancing device of claim 13, wherein the added value is the size of the video data divided by a first bandwidth parameter of the first edge server, wherein the first bandwidth parameter is determined according to an external bandwidth of the first edge server.
15. The load balancing apparatus of claim 13,
the processing unit selects a second edge server from the edge servers of the first group of servers, wherein a difference between a transmission progress value of the second edge server and a minimum transmission progress value among transmission progress values of edge servers of the first group of servers is greater than or equal to an invalidation threshold for a predetermined time, wherein the predetermined time may be equal to zero,
wherein the processing unit removes the second edge server from the first group of servers,
the communication unit sends information to the source server or the second edge server corresponding to the first video stream to stop synchronizing video data of the first video stream to the second edge server.
16. The load balancing apparatus of claim 13,
if the average bandwidth utilization of the remaining edge servers is still less than the medium load threshold after removing one of the edge servers, the processing unit executes the following steps:
the processing unit selects a fifth edge server from the plurality of edge servers and calculates the bandwidth usage of the fifth edge server;
the processing unit selects at least one sixth edge server from the plurality of edge servers except the fifth edge server, wherein the sum of the bandwidth usage of each of the sixth edge servers and the bandwidth difference of the bandwidth usage reaching the medium load threshold is greater than the bandwidth usage of the fifth edge server;
the processing unit and the communication unit synchronize the video data of the video stream corresponding to the fifth edge server to the sixth edge server;
the processing unit resets transmission progress values of the plurality of edge servers;
the processing unit adds the sixth edge server to a server group of the video stream supplied by the fifth edge server; and
the processing unit removes the fifth edge server from the plurality of server groups.
17. The load balancing device of claim 16, wherein the processing unit fills the bandwidth usage of each video stream provided by the fifth edge server at the fifth edge server into the bandwidth difference of the sixth edge server to determine the sixth edge server corresponding to each video stream of the fifth edge server,
the communication unit sends information to the source server corresponding to each video stream or the sixth edge server corresponding to each video stream, so as to synchronize the video data of each video stream supplied by the fifth edge server to the sixth edge server corresponding to each video stream.
18. The load balancing device of claim 17, wherein the processing unit adds the sixth edge server corresponding to each video stream provided by the fifth edge server to the server group of each video stream.
19. A topology reduction method, comprising:
configuring a transmission progress value for each of a plurality of edge servers, and grouping the plurality of edge servers into a plurality of server groups, wherein the edge server of each of the plurality of server groups supplies one of a plurality of video streams, and each of the plurality of edge servers is grouped to at least one server group belonging to the plurality of server groups;
receiving a download request corresponding to a first video stream of the plurality of video streams from a client device
Selecting a first server group from the plurality of server groups according to the download request, wherein the first server group supplies the first video stream;
selecting an edge server with a minimum transmission progress value from the edge servers of the first server group as a first edge server; calculating and accumulating the added values to a transmission progress value of the first edge server; redirecting the download request to the first edge server, and providing the video data of the first video stream to the client device by the first edge server;
selecting a second edge server from the edge servers of the first server group, wherein a difference between a transmission progress value of the second edge server and a minimum transmission progress value among transmission progress values of the edge servers of the first server group is greater than or equal to an invalidation threshold for a predetermined time, wherein the predetermined time may be equal to zero;
removing the second edge server from the first group of servers; and
stopping synchronizing the video data of the first video stream to the second edge server.
CN201710087080.2A 2016-03-28 2017-02-17 Load balancing method, system and device and topology simplifying method thereof Active CN107241376B (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
TW105109610 2016-03-28
TW105109610 2016-03-28
CN2016101824262 2016-03-28
CN201610182426 2016-03-28
TW105135447 2016-11-02
TW105135447A TWI604724B (en) 2016-03-28 2016-11-02 Load balancing method, load balancing system, load balancing device and topology reduction method

Publications (2)

Publication Number Publication Date
CN107241376A CN107241376A (en) 2017-10-10
CN107241376B true CN107241376B (en) 2020-06-12

Family

ID=59983017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710087080.2A Active CN107241376B (en) 2016-03-28 2017-02-17 Load balancing method, system and device and topology simplifying method thereof

Country Status (1)

Country Link
CN (1) CN107241376B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112217879B (en) * 2020-09-24 2023-08-01 江苏方天电力技术有限公司 Edge computing technology and cloud edge cooperation method based on power distribution Internet of things

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161159B1 (en) * 2005-10-31 2012-04-17 Adobe Systems Incorporated Network configuration with smart edge servers
CN103685547A (en) * 2013-12-24 2014-03-26 乐视网信息技术(北京)股份有限公司 Download server dispatching method, download server dispatching system and terminal device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9088577B2 (en) * 2010-11-24 2015-07-21 Microsoft Technology Licensing, Llc Multimedia aware cloud for mobile device computing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161159B1 (en) * 2005-10-31 2012-04-17 Adobe Systems Incorporated Network configuration with smart edge servers
CN103685547A (en) * 2013-12-24 2014-03-26 乐视网信息技术(北京)股份有限公司 Download server dispatching method, download server dispatching system and terminal device

Also Published As

Publication number Publication date
CN107241376A (en) 2017-10-10

Similar Documents

Publication Publication Date Title
CN107241374B (en) Load balancing system, load balancing device and topology management method
US10432709B2 (en) Load balancing method, load balancing system, load balancing device and topology reduction method
US10574586B2 (en) Method and system for self-adaptive bandwidth control of CDN platform
CN101237429B (en) Stream media living broadcasting system, method and device based on content distribution network
EP3595325B1 (en) Method for realizing multicast and relevant network device
JP5934828B2 (en) System and method for packetizing data stream of P2P based streaming service
CN102065150B (en) Data transmission system and method based on P2P (Peer-to-Peer) network and CDN (Content Delivery Network)
CN105337901A (en) Router intelligent bandwidth allocation method and device
CN101355522A (en) Control method and system for media server
CN103763206B (en) Network scheduling method and gateway
Wang et al. PLVER: Joint stable allocation and content replication for edge-assisted live video delivery
CN107241376B (en) Load balancing method, system and device and topology simplifying method thereof
Fu et al. Service level agreement based distributed resource allocation for streaming hosting systems
CN105577646A (en) Method for aggregating bandwidth on user side, device and content distribution system
WO2010058215A1 (en) Method and system for content handling
US9553924B1 (en) Load sharing among loosely coupled or independent video servers
TWI630807B (en) Load balancing system, load balancing device and topology management method
Liang et al. ipass: Incentivized peer-assisted system for asynchronous streaming
CN102821316A (en) Improved video on demand (VOD) transmission method based on peer-to-peer computing core algorithm
Jourjon et al. Models for an energy-efficient p2p delivery service
TWI604724B (en) Load balancing method, load balancing system, load balancing device and topology reduction method
Ishakian et al. AngelCast: Cloud-based peer-assisted live streaming using optimized multi-tree construction
Zhang et al. Topology-aware peer-to-peer on-demand streaming
Kim et al. Segment scheduling scheme for efficient bandwidth utilization of HTTP adaptive streaming in multipath environments
Wang et al. Sustainable cloud encoding for adaptive bitrate streaming over cdns

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant