WO2023219701A1 - Probability-based load balancing - Google Patents
Probability-based load balancing Download PDFInfo
- Publication number
- WO2023219701A1 WO2023219701A1 PCT/US2023/014200 US2023014200W WO2023219701A1 WO 2023219701 A1 WO2023219701 A1 WO 2023219701A1 US 2023014200 W US2023014200 W US 2023014200W WO 2023219701 A1 WO2023219701 A1 WO 2023219701A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- server
- current
- load level
- candidate
- change probability
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1019—Random or heuristic server selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1025—Dynamic adaptation of the criteria on which the server selection is based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols 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
Definitions
- Load Balancing is a technique widely used in computer networks, which may often be used to distribute workloads to a plurality of servers to improve overall efficiency and throughput of websites, applications, databases, or other services. For example, data traffic or requests from clients may be sent to a plurality of servers in a server cluster through the load balancing technology, so as to achieve effect of traffic sharing.
- Embodiments of the present disclosure propose a method, apparatus and computer program product for probability-based load balancing.
- a current server list may be obtained, the current server list including a set of currently used servers in a server cluster.
- a change probability curve may be determined, the change probability curve indicating correspondence between a server load level and a server change probability.
- At least one current server to be removed may be identified from the current server list based on the change probability curve.
- At least one candidate server for replacing the at least one current server may be searched in a candidate server list based on the change probability curve, the candidate server list including a set of underloaded servers in the server cluster.
- the current server list may be updated through replacing the at least one current server with the at least one candidate server. Data traffic to be sent may be allocated based on the updated current server list, so as to achieving load balancing in the server cluster.
- FIG.l illustrates an exemplary process for probability -based load balancing according to an embodiment of the present disclosure.
- FIG.2 illustrates an exemplary architecture for implementing probability-based load balancing according to an embodiment of the present disclosure.
- FIGs.3A-3D illustrate exemplary change probability curves according to embodiments of the present disclosure.
- FIG.4 illustrates an exemplary process for identifying, from a current server list, a current server to be removed according to an embodiment of the present disclosure.
- FIG.5 illustrates an exemplary process for searching, in a candidate server list, a candidate server for replacing a current serve according to an embodiment of the present disclosure.
- FIG.6 is a flowchart of an exemplary method for probability-based load balancing according to an embodiment of the present disclosure.
- FIG.7 illustrates an exemplary apparatus for probability-based load balancing according to an embodiment of the present disclosure.
- FIG.8 illustrates an exemplary apparatus for probability -based load balancing according to an embodiment of the present disclosure.
- Embodiments of the present disclosure propose probability-based load balancing. For example, a change probability curve indicating correspondence between a server load level and a server change probability may be determined. A current server list may be updated based on the change probability curve. Data traffic to be sent may be allocated based on the updated current server list, so as to achieving load balancing in a server cluster.
- the server load level may be determined based on Central Processing Unit (CPU) usage or Asynchronous Thread Queue (ATQ) of a server.
- the server change probability may be the probability of whether the server is to change.
- the change probability may be the probability that the server is to be removed from the current server list.
- a currently used server may be referred to as a current server, and a list including a set of current servers may be referred to as a current server list.
- a current server with a higher load level is more likely to be removed from a current server list.
- a server that is not currently used may be referred to as a candidate server, and a list including a set of candidate servers may be referred to as a candidate server list.
- a change probability may be the probability that the candidate server is to be selected to replace a current server.
- a candidate server with a lower load level is more likely to be selected to replace a current server.
- the approach described above introduces a probabilitybased negative feedback mechanism.
- a server with a high load level may gradually and smoothly transfer load to a server with a low load level, so that load levels of all servers converge to an average load level, thereby achieving load balancing in the server cluster.
- load since load may be evenly distributed in the server cluster, the probability that a load level of an individual server will reach a load level threshold will be reduced, which will increase overall capacity of the server cluster and improve availability of services.
- the embodiments of the present disclosure propose to determine a change probability curve based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster.
- the change probability curve may include a first point with a first load level and a first change probability.
- a change probability of a current server is the first change probability
- a candidate server for replacing the current server is searched from a candidate server list
- the current server may be replaced with the candidate server.
- the first change probability may correspond to a first load level.
- the first load level may be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster.
- the first load level when load levels of the server cluster are expected to be able to converge quickly, the first load level may be set to a lower value; and when the server cluster is expected to have lower connection switching overheads, the first load level may be set to a higher value.
- the change probability curve may also include a line segment with a load level range and a second change probability.
- the current server When a change probability of a current server in a current server list is the second change probability, the current server may be reserved in the current server list instead of being replaced by a candidate server.
- the candidate server when a change probability of a candidate server in the candidate server list is the second change probability, the candidate server may be reserved in the candidate server list instead of replacing a current server with the candidate server.
- the second change probability may correspond to a load level range.
- the load level range may be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster. For example, when load levels of the server cluster are expected to be able to converge quickly, the load level range may be set to a single load level; and when the server cluster is expected to have lower connection switching overheads, the load level range may be set to a load level interval bounded by two load levels.
- the change probability curve may further include a second point with a second load level and a third change probability.
- the candidate server may be determined as a candidate server for replacing a current server.
- the third change probability may correspond to a second load level.
- the second load level may be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster. For example, when load levels of the server cluster are expected to be able to converge quickly, the second load level may be set to a higher value; and when the server cluster is expected to have lower connection switching overheads, the second load level may be set to a lower value.
- a change probability curve determined in the above way may facilitate to implement a load balancing strategy that meets a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster.
- the embodiments of the present disclosure propose to identify, from a current server list, a current server to be removed based on a change probability curve. For example, for each current server in a current server list, it may be first determined whether a load level of the current server is higher than a first load level. If the load level of the current server is higher than the first load level, the current server may be identified as a current server to be removed. If the load level of the current server is not higher than the first load level, it may be further determined whether the current server is a current server to be removed according to a current change probability corresponding to the current server. Through employing a change probability curve, a current server with a higher load level is more likely to be removed from a current server list.
- the embodiments of the present disclosure propose to searching, in a candidate server list, a candidate server for replacing a current server to be removed based on a change probability curve. For example, for each candidate server in a candidate server list, it may be first determined whether a load level of the candidate server is lower than a second load level. If the load level of the candidate server is lower than the second load level, the candidate server may be selected for replacing a current server. If the load level of the candidate server is not lower than the second load level, it may be further determined whether the candidate server may be selected for replacing a current server according to a change probability corresponding to the candidate server. Through employing a change probability curve, a candidate server with a lower load level is more likely to be selected for replacing a current server.
- the embodiments of the present disclosure propose to perform the probability-based load balancing strategy described above through a load balancer in an arbitrary client in a client system.
- the client system may be a distributed system including a set of clients, which may be connected to a server cluster via a network.
- a load balancer in each client may obtain a current server list and load levels of various servers, and may update the current server list based on a change probability curve and the load levels of various servers.
- the updated current server list may be used to allocate data traffic to be sent at the client. Since each client updates the current server list based on the change probability, the current server list at different clients is likely to be different at a same instant.
- data traffic at different clients is likely to be allocated to different servers, rather than data traffic at all clients being allocated to a same server at a same instant.
- a smooth transfer of data traffic may be achieved, thereby avoiding periodic oscillations in load levels of servers, and further reducing connection switching overheads.
- FIG.l illustrates an exemplary process 100 for probability -based load balancing according to an embodiment of the present disclosure.
- the process 100 may be performed through a load balancer in an arbitrary client in a client system.
- FIG.2 illustrates an exemplary architecture 200 for implementing probability-based load balancing according to an embodiment of the present disclosure.
- the architecture 200 may include a distributed client system 210.
- the distributed client system 210 may include a set of clients, e.g., a client 210-1, a client 210-2, ..., a client 210-M, where M is the number of clients included in the distributed client system 210.
- Each client 210-z ( I 'A z 'A M) may include a corresponding load balancer 212-z.
- the distributed client system 210 may include a set of load balancers, e.g., a load balancer 212-1, a load balancer 212-2,..., a load balancer 212-M.
- the method for probability -based load balancing according to the embodiments of the present disclosure may be performed through a load balancer 212-z in an arbitrary client 210-z in the distributed client system 210.
- a current server list may be obtained.
- a current server list may be obtained through a service discovery process at a client.
- the current server list may include a set of currently used servers in a server cluster.
- the architecture 200 may include a server cluster 230.
- the distributed client system 210 may be connected to the server cluster 230 via a network 220.
- the server cluster 230 may include a set of servers, e.g., a server 230-1, a server 230-2, ..., a server 230-N, where N is the number of servers included in the server cluster 230. N may be a number much smaller than M.
- the server cluster 230 may also be referred to as a server forest.
- a server in the server cluster 230 may also be referred to as a server instance.
- the obtained current server list may be saved in a load balancer in a client.
- each server in the current server list may be an available or healthy server.
- the operational status of each current server in the current server list may be checked through known operational status checking techniques. If a current server fails this operational status check, the current server will be identified as an unavailable or unhealthy server and will be removed from the current server list.
- a change probability curve may indicate correspondence between a server load level and a server change probability.
- the change probability curve may be determined based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster.
- the change probability curve may include a first point with a first load level and a first change probability.
- the first change probability may be a predetermined value, e.g., "1.00".
- the first change probability may correspond to a first load level.
- the first load level may be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster.
- the change probability curve may also include a line segment with a load level range and a second change probability.
- the current server may be reserved in the current server list instead of being replaced by a candidate server.
- the candidate server may be reserved in the candidate server list instead of replacing a current server with the candidate server. That is, when the change probability of the current server or the candidate server is the second change probability, the current server or the candidate server may not change.
- the second change probability may be a predetermined value, e.g., "0.00".
- the second change probability may correspond to a load level range.
- the load level range may be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster.
- the change probability curve may further include a second point with a second load level and a third change probability.
- a change probability of a candidate server in a candidate server list is the third change probability
- the candidate server may be determined as a candidate server for replacing a current server.
- the third change probability may be a predetermined value, e.g., "-1.00".
- the third change probability may correspond to a second load level.
- the second load level may be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster. Exemplary forms of the change probability curve will be described later in conjunction with FIGs.3 A-3D.
- At 106 at least one current server to be removed may be identified from the current server list based on the change probability curve determined at 104.
- a load level of a current server may be referred to as a current load level. If the current load level of the current server is higher than the first load level, the current server may be identified as a current server to be removed. If the current load level of the current server is not higher than the first load level, it may be further determined whether the current server is a current server to be removed according to a current change probability corresponding to the current server.
- a change probability corresponding to the current server may be referred to as a current change probability.
- At 108 at least one candidate server for replacing the at least one current server to be removed may be searched in a candidate server list based on the change probability curve determined at 104.
- the candidate server list may include a set of underloaded servers in the server cluster.
- a candidate server for replacing the current server may be searched.
- it may be first determined whether a candidate load level of the candidate server is lower than a second load level.
- a load level of a candidate server may be referred to as a candidate load level.
- the candidate server may be selected for replacing a current server. If the load level of the candidate server is not lower than the second load level, it may be further determined whether the candidate server may be selected for replacing the current server according to a candidate change probability corresponding to the candidate server.
- a change probability corresponds to a candidate server may be referred to as a candidate change probability.
- each candidate server in the candidate server list may be an available or healthy server.
- the operational status of each candidate server in the candidate server list may be checked through known operational status checking techniques. If a candidate server fails this operational status check, the candidate server will be identified as an unavailable or unhealthy server and will be removed from the candidate server list.
- the current server list may be updated through replacing the at least one current server to be removed identified at 106 with the at least one candidate server searched at 108. For each current server in the at least one current server to be removed, if a candidate server for replacing the current server is searched in the candidate server list, the current server may be replaced with the candidate server; while if no candidate server for replacing the current server is searched in the candidate server list, the current server may be reserved in the current server list.
- data traffic to be sent may be allocated based on the updated current server list, so as to achieving load balancing in the server cluster.
- each client in a distributed client system may have an updated current server list.
- Data traffic to be sent which is at the client may be allocated based on the updated current server list. Since each client updates the current server list based on the change probability, the current server list at different clients is likely to be different at a same instant. Accordingly, at a same instant, data traffic at different clients is likely to be allocated to different servers, rather than data traffic at all clients being allocated to a same server at a same instant. In this way, a smooth transfer of data traffic may be achieved, thereby avoiding periodic oscillations in load levels of servers, and further reducing connection switching overheads.
- the process for probability -based load balancing described above in conjunction with FIG.l is merely exemplary. Depending on actual application requirements, the steps in the process for probability-based load balancing may be replaced or modified in any manner, and the process may include more or fewer steps. In addition, the specific order or hierarchy of the steps in the process 100 is merely exemplary, and the process for probabilitybased load balancing may be performed in an order different from the described one.
- FIGs.3A-3D illustrate exemplary change probability curves 300a-300d according to the embodiments of the present disclosure.
- a change probability curve may indicate correspondence between a server load level and a server change probability.
- the change probability curve may be determined based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster.
- the horizontal axis shows server load levels
- the vertical axis shows server change probabilities.
- the change probability curve may include a first point with a first load level and a first change probability, a line segment with a load level range and a second change probability, a second point with a second load level and a third change probability, etc.
- the first change probability, the second change probability and the third change probability may be predetermined values.
- the first change probability may be "1.00”
- the second change probability may be "0.00”
- the third change probability may be "-1.00”. It should be appreciated that the first change probability, the second change probability and the third change probability may also be set to other values.
- the first load level, the load level range, and the second load level may be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster.
- the change probability curve may include the first point with the first load level and the first change probability.
- a change probability of a current server is the first change probability
- the current server may be removed from the current server list and the candidate server may be added to the current server list. That is, the current server may be replaced with the candidate server.
- the first change probability may correspond to the first load level.
- a load level of a current server in a current server list is higher than the first load level, i.e., when a change probability of the current server is the first change probability, the current server may be identified as a current server to be removed.
- the first load level may be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster. For example, when load levels of the server cluster are expected to be able to converge quickly, the first load level may be set to a lower value; and when the server cluster is expected to have lower connection switching overheads, the first load level may be set to a higher value.
- the change probability curve 300a may include a first point 314a with a first load level 302a and a first change probability 308.
- the first load level 302a may be "90%”.
- the change probability curve 300b may include a first point 314b with a first load level 302b and a first change probability 308.
- the first load level 302b may be "130%”. It should be appreciated that the actual load level should lie between "0" and "100%”.
- setting the first load level 302b to a value greater than "100%” may cause a change probability corresponding to a current server less than the first change probability when a load level of the current server reaches " 100%".
- the first load level 302a "90%" is lower than the first load level 302b "130%".
- the change probability curve 300a is used for load balancing, a faster load level convergence speed may be obtained, while connection switching overheads are larger.
- the change probability curve 300b is used for load balancing, a slower load level convergence speed may be obtained, while connection switching overheads are less.
- the change probability curve may also include a line segment with the load level range and the second change probability.
- the current server when a change probability of a current server in a current server list is the second change probability, the current server may be reserved in the current server list instead of being replaced by a candidate server.
- the candidate server when a change probability of a candidate server in a candidate server list is the second change probability, the candidate server may be reserved in the candidate server list instead of replacing a current server with the candidate server. That is, when the change probability of the current server or the candidate server is the second change probability, the current server or the candidate server may not change.
- the second change probability may correspond to the load level range.
- the load level range may be defined in a number of ways.
- an average load level of a server cluster may be obtained.
- This average load level may be defined as the load level range. That is, in this case, the load level range includes only a single load level. Accordingly, the line segment with such a load level range will be converged into a single point.
- an average load level of a server cluster may be obtained.
- a predetermined load level that triggers load balancing may also be set.
- the predetermined load level may be, e.g., a preset load level threshold, e.g., "70%”.
- a load level interval between the average load level and the predetermined load level may be defined as the load level range.
- the average load level may be calculated based on load levels of all servers in the server cluster.
- the average load level may be updated in real time. Accordingly, an updated average load level may be obtained, and a load level range may be updated with the updated average load level.
- the line segment with the load level range and the second change probability may be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster.
- the line segment when load levels of a server cluster are expected to be able to converge quickly, the line segment may be set as a single point, i.e., the average load level may be defined as the load level range; and when the server cluster is expected to have lower connection switching overheads, the line segment may be set as a range between the average load level and the predetermined load level that triggers load balancing, i.e., the load level interval between the average load level and the predetermined load level may be defined as the load level range. Additionally, the predetermined load level that triggers load balancing may also be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster.
- the predetermined load level may be set to a value closer to the average load level; and when the server cluster is expected to have lower connection switching overheads, the predetermined load level may be set to a value further away from the average load level.
- the second change probability 310 only corresponds to a single load level, i.e., a load level 304a.
- the load level 304a may be the average load level of the server cluster.
- the average load level may be calculated based on load levels of all servers in the server cluster, e.g., "40%" shown in FIG.3A.
- the change probability curve 300a may include a point 316a with the load level 304a and a second change probability 310.
- the second change probability 310 corresponds to a load level range from a load level 304c to a load level 320c.
- the load level 304c may be the average load level of the server cluster.
- the load level 320c may be a predetermined load level that triggers load balancing.
- the change probability curve 300c may include a line segment 324c bounded by the point 316c and the point 322c.
- the second change probability 310 corresponds to a load level range from a load level 320d to a load level 304d.
- the load level 320d may be a predetermined load level that triggers load balancing.
- the load level 304d may be the average load level of the server cluster.
- the change probability curve 300d may include a line segment 324c bounded by a point 322d and a point 316d.
- the load level 304d representing the average load level of the server cluster is "80%", which is higher than a load level 320d "70%" representing the predetermined load level that triggers load balancing, which indicates that the overall load level of the server cluster is at a higher level.
- load balancing may still be achieved based on the change probability curve.
- the change probability curve may further include the second point with the second load level and the third change probability.
- a change probability of a candidate server in a candidate server list is the third change probability
- the candidate server may be determined as a candidate server for replacing the current server.
- the third change probability may correspond to the second load level.
- the second load level may be set based on a load level convergence requirement, a connection switching overhead requirement, etc., of a server cluster. For example, when load levels of the server cluster are expected to be able to converge quickly, the second load level may be set to a higher value; and when the server cluster is expected to have lower connection switching overheads, the second load level may be set to a lower value.
- the change probability curve 300a may include a second point 318a with a second load level 306a and a third change probability 312.
- the second load level 306a may be "0".
- the change probability curve 300b may include a second point 318b with a second load level 302b and a third change probability 312.
- the second load level 302b may be "-30%”. It should be appreciated that the actual load level should lie between "0" and " 100%”.
- setting the second level 302b to a value less than "0" may cause a change probability corresponding to a candidate server greater than the third change probability when a load level of the candidate server reaches "0".
- the second load level 306a "0" is higher than the second load level 306b "-30%".
- the change probability curve 300a is used for load balancing, a faster load level convergence speed may be obtained, while connection switching overheads are larger.
- the change probability curve 300b is used for load balancing, a slower load level convergence speed may be obtained, while connection switching overheads are less.
- a change probability curve may be determined based on these points, line segments, etc. Since the actual load level should lie between “0" and "100%", the change probability curve should include line segments whose load level is between "0" and "100%".
- the first load level is a value lower than " 100%
- a change probability of a line segment with a load level between the first load level and "100%” may be the first change probability, i.e., "1.00", as shown in FIG.3A, 3C and 3D.
- the second load level is a value higher than "0
- a change probability of a line segment with a load level between "0” and the second load level may be the second change probability, i.e., "-1.00".
- FIGs.3A-3D illustrate some exemplary change probability curves. Such change probability curves may facilitate to implement a load balancing strategy that meets a load level convergence requirement and a connection switching overhead requirement of a server cluster. It should be appreciated that the change probability curves 300a to 300d shown in FIGs.3A-3D are merely some examples of change probability curves. Depending on actual application requirements, the change probability curve may also have other forms. For example, in the change probability curves 300a to 300d, the relationship between the load level and the change probability is linear, but in some embodiments, the relationship between the load level and the change probability may also be non-linear.
- FIG.4 illustrates an exemplary process 400 for identifying, from a current server list, a current server to be removed according to an embodiment of the present disclosure.
- the process 400 may correspond to the step 106 in FIG.l.
- the process 400 may be performed iteratively for a current server list based on a change probability curve.
- the change probability curve may be any one of the change probability curves 300a to 300d as shown in FIGs.3A to 3D, or may be a change probability curve of other forms.
- a current load level of a current server in a current server list may be obtained.
- a current load level of a current server may be obtained through a service discovery process at a client.
- the current load level of the current server may be determined based on CPU usage or ATQ of the current server.
- the first load level may be determined, e.g., from a change probability curve. Taking the change probability curve 300a in FIG.3A as an example, the first load level 302a is "90%". In this case, it may be determined whether the current load level is higher than "90%".
- the process 400 may proceed to 406, where the current server may be identified as a current server to be removed.
- the process 400 may proceed to 416, where it is determined whether all current servers in the current server list have been traversed. If it is determined at 416 that all current servers in the current server list have been traversed, the process 400 may end at 418. If it is determined at 416 that not all current servers in the current server list have been traversed, the process 400 may return to 402. At 402, a current load level of a next current server in the current server list may be obtained. Then, subsequent steps may be performed for this next current server.
- a current change probability corresponding to the current server may be determined according to the change probability curve and the current load level. As an example, assume the change probability curve is the change probability curve 300a in FIG.3A, and the current load level is "65%". In this case, the current change probability may be determined as "0.50".
- a current random number for the current server may be generated.
- a random number for a current server may be referred to as a current random number.
- the current random number may be a number located between the first change probability and the second change probability.
- the first change probability 308 is "1.00”
- the second change probability 310 is "0.00”.
- a random number between "1.00” and "0.00” may be generated.
- the generated current random number is less than the current change probability of the current server. For example, in the case where the current change probability is "0.50", it may be determined whether the generated current random number is less than "0.50".
- the process 400 may proceed to 406, where the current server may be identified as a current server to be removed. Subsequently, the process 400 may proceed to 416 and subsequent steps are performed as described above.
- the process 400 may proceed to 414, where the current server may be identified as a current server to be reserved. Subsequently, the process 400 may proceed to 416 and subsequent steps are performed as described above.
- one or more current server to be removed may be identified from the current server list based on the change probability curve.
- a current server with a higher load level is more likely to be removed from the current server list.
- no current server to be removed is identified from the current server list.
- current load levels of all current servers in the current server list may all be lower than the first load level, and generated current random numbers may all be greater than current change probabilities of the current servers. In this case, all current servers in the current server list will be identified as current servers to be reserved.
- the process for identifying, from a current server list, a current server to be removed described above in conjunction with FIG.4 is merely exemplary. Depending on actual application requirements, the steps in the process for identifying, from a current server list, a current server to be removed may be replaced or modified in any manner, and the process may include more or fewer steps. In addition, the specific order or hierarchy of the steps in the process 400 is merely exemplary, and the process for identifying, from a current server list, a current server to be removed may be performed in an order different from the described one.
- a candidate server for replacing the current server may be searched in a candidate server list. If a candidate server for replacing a current server is searched, the current server may be replaced with the candidate server, and the current server list may be updated accordingly. If no candidate server for replacing a current server is searched, the current server may be reserved in the current server list.
- FIG.5 illustrates an exemplary process 500 for searching, in a candidate server list, a candidate server for replacing a current serve according to an embodiment of the present disclosure.
- the process 500 may correspond to the step 108 in FIG.l.
- the process 500 may be performed iteratively for a candidate server list based on a change probability curve.
- the change probability curve used by the process 500 may be consistent with the change probability curve used by the process 400.
- the change probability curve may be any one of the change probability curves 300a to 300d as shown in FIGs.3A to 3D, or may be a change probability curve of other forms.
- a candidate load level of a candidate server in a candidate server list may be obtained.
- a candidate load level of a candidate server may be obtained through a service discovery process at a client.
- the candidate load level of the candidate server may be determined based on CPU usage or ATQ of the candidate server.
- the second load level may be determined, e.g., from a change probability curve. Taking the change probability curve 300a in FIG.3A as an example, the second load level 306a is "0". In this case, it may be determined whether the candidate load level is lower than "0".
- the process 500 may proceed to 506, where the candidate server may be determined as a candidate server for replacing a current server. That is, in this case, a candidate server for replacing a current server is searched from the candidate server list. Subsequently, the process 500 may end at 516.
- the candidate load level of the candidate server is not lower than the second load level
- the process 500 may proceed to 508.
- a candidate change probability corresponding to the candidate server may be determined according to the change probability curve and the candidate load level. As an example, assume the change probability curve is the change probability curve 300a in FIG.3A, and the candidate load level is "20%". In this case, the candidate change probability may be determined as "-0.50".
- a candidate random number for the candidate server may be generated.
- a random number for a candidate server may be referred to as a candidate random number.
- the candidate random number may be a number located between the second change probability and the third change probability.
- the second change probability 310 is "0.00”
- the third change probability 312 is "-1.00”. In this case, a random number between "0.00" and "-1.00" may be generated.
- the process 500 may proceed to 506, where the candidate server may be determined as a candidate server for replacing a current server. Subsequently, the process 500 may end at 516.
- the process 500 may proceed to 514, where it may be determined whether all candidate servers in the candidate server list have been traversed. If it is determined at 514 that not all candidate servers in the candidate server list have been traversed, the process 500 may return to 502. At 502, a candidate load level of a next candidate server in the candidate server list may be obtained. Then, subsequent steps may be performed for this next candidate server.
- the process 500 may end at 516. At this point, no candidate server for replacing a current server is searched from the candidate server list.
- the current server may be replaced with the candidate server, and the current server list may be updated accordingly. If no candidate server for replacing a current server is searched in the candidate server list, the current server may be reserved in the current server list.
- a candidate server with a lower load level is more likely to be selected for replacing a current server.
- the process for searching, in a candidate server list, a candidate server for replacing a current server described above in conjunction with FIG.5 is merely exemplary.
- the steps in the process for searching a candidate server for replacing a current server may be replaced or modified in any manner, and the process may include more or fewer steps.
- the specific order or hierarchy of the steps in the process 500 is merely exemplary, and the process for searching a candidate server for replacing a current server may be performed in an order different from the described one.
- L(t) may be used to represent a load level of a single server at time t.
- data traffic received by a server between time t and time t + dt may be proportional to the difference between its load level L(t) at time t and the average load level L avg of a server cluster, as shown by the following equation: where C is a normalization coefficient.
- the probability-based load balancing strategy implements exponential decay from the original load level L(t) to the average load level L avg , so that the load level of the server may gradually and smoothly converge to the average load level.
- a change probability curve indicating correspondence between a server load level and a server change probability may be determined.
- a current server list may be updated based on the change probability curve.
- Data traffic to be sent may be allocated based on the updated current server list, so as to achieving load balancing in a server cluster.
- This approach introduces a probability-based negative feedback mechanism, which may cause a current server with a higher load level more likely to be removed from a current server list, and a candidate server with a lower load level more likely to be selected for replacing a current server.
- a server with a high load level may gradually and smoothly transfer load to a server with a low load level, so that load levels of all servers converge to an average load level, thereby achieving load balancing in the server cluster.
- load since load may be evenly distributed in the server cluster, the probability that a load level of an individual server will reach a load level threshold will be reduced, which will increase overall capacity of the server cluster and improve availability of services.
- FIG.6 is a flowchart of an exemplary method 600 for probability-based load balancing according to an embodiment of the present disclosure.
- a current server list may be obtained, the current server list including a set of currently used servers in a server cluster.
- a change probability curve may be determined, the change probability curve indicating correspondence between a server load level and a server change probability.
- At 630, at least one current server to be removed may be identified from the current server list based on the change probability curve.
- At 640 at least one candidate server for replacing the at least one current server may be searched in a candidate server list based on the change probability curve, the candidate server list including a set of underloaded servers in the server cluster.
- the current server list may be updated through replacing the at least one current server with the at least one candidate server.
- data traffic to be sent may be allocated based on the updated current server list, so as to achieving load balancing in the server cluster.
- the determining a change probability curve may comprise: determining the change probability curve based on a load level convergence requirement and/or a connection switching overhead requirement of the server cluster.
- the change probability curve may include: a first point with a first load level and a first change probability, and a line segment with a load level range and a second change probability.
- the load level range may be defined through: obtaining an average load level of the server cluster; and defining the average load level as the load level range.
- the load level range may be defined through: obtaining an average load level of the server cluster; setting a predetermined load level that trigger load balancing; and defining a load level interval between the average load level and the predetermined load level as the load level range.
- the method 600 may further comprise: obtaining an updated average load level; and updating the load level range with the updated average load level.
- the identifying at least one current server to be removed may comprise iteratively performing the following operations on the current server list: obtaining a current load level of a current server in the current server list; determining whether the current load level is higher than the first load level; and in response to determining that the current load level is higher than the first load level, identifying the current server as a current server to be removed.
- the method 600 may further comprise: in response to determining that the current load level is not higher than the first load level, determining a current change probability corresponding to the current server according to the change probability curve and the current load level; generating a current random number for the current server, the current random number being between the first change probability and the second change probability; determining whether the current random number is less than the current change probability; and in response to determining that the current random number is less than the current change probability, identifying the current server as a current server to be removed.
- the change probability curve may further include: a second point with a second load level and a third change probability.
- the searching at least one candidate server for replacing the at least one current server may comprise iteratively performing the following operations on the candidate server list: obtaining a candidate load level of a candidate server in the candidate server list; determining whether the candidate load level is lower than the second load level; and in response to determining that the candidate load level is lower than the second load level, determining the candidate server as a candidate server for replacing the current server.
- the method 600 may further comprise: in response to determining that the candidate load level is not lower than the second load level, determining a candidate change probability corresponding to the candidate server according to the change probability curve and the candidate load level; generating a candidate random number for the candidate server, the candidate random number being between the second change probability and the third change probability; determining whether the candidate random number is greater than the candidate change probability; and in response to determining that the random number is greater than the candidate change probability, determining the candidate server as a candidate server for replacing the current server.
- each server in the current server list or the candidate server list may be an available server.
- the method 600 may be performed through a load balancer in an arbitrary client in a client system.
- the client system may be connected with the server cluster via a network.
- the allocating data traffic to be sent may comprise: allocating the data traffic to be sent which is at the arbitrary client based on the updated current server list.
- the method 600 may further include any step/process for probability-based load balancing according to the embodiment of the present disclosure as mentioned above.
- FIG.7 illustrates an exemplary apparatus 700 for probability-based load balancing according to an embodiment of the present disclosure.
- the apparatus 700 may comprise: a current server list obtaining module 710, for obtaining a current server list, the current server list including a set of currently used servers in a server cluster; a change probability curve determining module 720, for determining a change probability curve, the change probability curve indicating correspondence between a server load level and a server change probability; a current server identifying module 730, for identifying, from the current server list, at least one current server to be removed based on the change probability curve; a candidate server searching module 740, for searching, in a candidate server list, at least one candidate server for replacing the at least one current server based on the change probability curve, the candidate server list including a set of underloaded servers in the server cluster; a current server list updating module 750, for updating the current server list through replacing the at least one current server with the at least one candidate server; and a data traffic allocating module 760, for allocating data traffic to be sent based on the updated current server list, so as to achieving load balancing in the server cluster.
- FIG.8 illustrates an exemplary apparatus 800 for probability -based load balancing according to an embodiment of the present disclosure.
- the apparatus 800 may comprise at least one processor 810 and a memory 820 storing computer-executable instructions.
- the computer-executable instructions when executed, may cause the at least one processor 810 to: obtain a current server list, the current server list including a set of currently used servers in a server cluster, determine a change probability curve, the change probability curve indicating correspondence between a server load level and a server change probability, identify, from the current server list, at least one current server to be removed based on the change probability curve, search, in a candidate server list, at least one candidate server for replacing the at least one current server based on the change probability curve, the candidate server list including a set of underloaded servers in the server cluster, update the current server list through replacing the at least one current server with the at least one candidate server, and allocate data traffic to be sent based on the updated current server list, so as to achieving load balancing in the server cluster.
- the change probability curve may include: a first point with a first load level and a first change probability, and a line segment with a load level range and a second change probability.
- the identifying at least one current server to be removed may comprise iteratively performing the following operations on the current server list: obtaining a current load level of a current server in the current server list; determining whether the current load level is higher than the first load level; and in response to determining that the current load level is higher than the first load level, identifying the current server as a current server to be removed.
- the change probability curve may further include: a second point with a second load level and a third change probability.
- the searching at least one candidate server for replacing the at least one current server may comprise iteratively performing the following operations on the candidate server list: obtaining a candidate load level of a candidate server in the candidate server list; determining whether the candidate load level is lower than the second load level; and in response to determining that the candidate load level is lower than the second load level, determining the candidate server as a candidate server for replacing the current server.
- the processor 800 may further perform any other step/process of the method for probability-based load balancing according to the embodiments of the present disclosure as mentioned above.
- the memory 820 may also store other information, e.g., the current server list and load level information of each current server on the current server list, the candidate service list and load level information of each candidate server on the candidate server list, etc.
- the embodiments of the present disclosure propose a computer program product for probabilitybased load balancing, comprising a computer program that is executed by at least one processor for: obtaining a current server list, the current server list including a set of currently used servers in a server cluster; determining a change probability curve, the change probability curve indicating correspondence between a server load level and a server change probability; identifying, from the current server list, at least one current server to be removed based on the change probability curve; searching, in a candidate server list, at least one candidate server for replacing the at least one current server based on the change probability curve, the candidate server list including a set of underloaded servers in the server cluster; updating the current server list through replacing the at least one current server with the at least one candidate server; and allocating data traffic to be sent based on the updated current server list, so as to achieving load balancing in the server cluster.
- the computer program may further be performed for implementing any other steps/processes of the method for probability-based load balancing according to the embodiments of the present disclosure
- the embodiments of the present disclosure may be embodied in a non-transitory computer- readable medium.
- the non-transitory computer readable medium may comprise instructions that, when executed, cause one or more processors to perform any operation of the method for probability-based load balancing according to the embodiments of the present disclosure as mentioned above.
- modules in the apparatuses described above may be implemented in various approaches. These modules may be implemented as hardware, software, or a combination thereof. Moreover, any of these modules may be further functionally divided into sub-modules or combined together.
- processors have been described in connection with various apparatuses and methods. These processors may be implemented using electronic hardware, computer software, or any combination thereof. Whether such processors are implemented as hardware or software will depend upon the particular application and overall design constraints imposed on the system.
- a processor, any portion of a processor, or any combination of processors presented in the present disclosure may be implemented with a microprocessor, microcontroller, digital signal processor (DSP), a field-programmable gate array (FPGA), a programmable logic device (PLD), a state machine, gated logic, discrete hardware circuits, and other suitable processing components configured for performing the various functions described throughout the present disclosure.
- DSP digital signal processor
- FPGA field-programmable gate array
- PLD programmable logic device
- processors any portion of a processor, or any combination of processors presented in the present disclosure may be implemented with software being executed by a microprocessor, microcontroller, DSP, or other suitable platform.
- Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, threads of execution, procedures, functions, etc.
- the software may reside on a computer-readable medium.
- a computer-readable medium may include, by way of example, memory such as a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk, a smart card, a flash memory device, random access memory (RAM), read only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), a register, or a removable disk.
- memory such as a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk, a smart card, a flash memory device, random access memory (RAM), read only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), a register, or a removable disk.
- RAM random access memory
- ROM read only memory
- PROM programmable ROM
- EPROM erasable PROM
- EEPROM electrically erasable PROM
- register e.g.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/855,593 US20250240346A1 (en) | 2022-05-11 | 2023-03-01 | Probability-based load balancing |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210513571.X | 2022-05-11 | ||
| CN202210513571.XA CN117097732A (en) | 2022-05-11 | 2022-05-11 | Probability-based load balancing |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023219701A1 true WO2023219701A1 (en) | 2023-11-16 |
Family
ID=85703978
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2023/014200 Ceased WO2023219701A1 (en) | 2022-05-11 | 2023-03-01 | Probability-based load balancing |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20250240346A1 (en) |
| CN (1) | CN117097732A (en) |
| WO (1) | WO2023219701A1 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105117292A (en) * | 2015-07-31 | 2015-12-02 | 华南理工大学 | Random diffusion dynamic load balancing method |
-
2022
- 2022-05-11 CN CN202210513571.XA patent/CN117097732A/en active Pending
-
2023
- 2023-03-01 US US18/855,593 patent/US20250240346A1/en active Pending
- 2023-03-01 WO PCT/US2023/014200 patent/WO2023219701A1/en not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105117292A (en) * | 2015-07-31 | 2015-12-02 | 华南理工大学 | Random diffusion dynamic load balancing method |
Non-Patent Citations (2)
| Title |
|---|
| FAN HAO ET AL: "A limited bandwidth resource scheduling algorithm for a streaming media system", 2017 IEEE 9TH INTERNATIONAL CONFERENCE ON COMMUNICATION SOFTWARE AND NETWORKS (ICCSN), IEEE, 6 May 2017 (2017-05-06), pages 212 - 216, XP033285501, DOI: 10.1109/ICCSN.2017.8230108 * |
| PATHAN MUKADDIM ET AL: "Load and Proximity Aware Request-Redirection for Dynamic Load Distribution in Peering CDNs", 9 November 2008, SAT 2015 18TH INTERNATIONAL CONFERENCE, AUSTIN, TX, USA, SEPTEMBER 24-27, 2015; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER, BERLIN, HEIDELBERG, PAGE(S) 62 - 81, ISBN: 978-3-540-74549-5, XP047440053 * |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250240346A1 (en) | 2025-07-24 |
| CN117097732A (en) | 2023-11-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10044797B2 (en) | Load balancing of distributed services | |
| DK2765524T3 (en) | PROCEDURE FOR DATA PROCESSING AND FITTING IN A CLUSTER SYSTEM | |
| US7085893B2 (en) | Negotiated distribution of cache content | |
| CN102629219B (en) | Reduce in parallel computation frame holds adaptive load balancing method | |
| CN109104336B (en) | Service request processing method and device, computer equipment and storage medium | |
| US10394782B2 (en) | Chord distributed hash table-based map-reduce system and method | |
| US7085894B2 (en) | Selectively accepting cache content | |
| US9513806B2 (en) | Dimension based load balancing | |
| CN107430529B (en) | Load balancing device for large in-memory databases | |
| CN113377866B (en) | A load balancing method and device for virtualized database proxy service | |
| CN104980478A (en) | Cache sharing method, devices and system in content delivery network | |
| US10642585B1 (en) | Enhancing API service schemes | |
| CN105871983A (en) | Method and device for selecting servers | |
| WO2017007684A1 (en) | Flexible scheduling in a database system | |
| US20190236474A1 (en) | Load balancing for distributed processing of deterministically assigned data using statistical analysis of block data | |
| US9189279B2 (en) | Assignment method and multi-core processor system | |
| CN113553175A (en) | Optimal sorting algorithm selection method for traffic data flow | |
| CN110769040B (en) | Access request processing method, device, equipment and storage medium | |
| CN112540906B (en) | Intelligent analysis method and system for business and data relationship based on probe | |
| GB2504812A (en) | Load balancing in a SAP (RTM) system for processors allocated to data intervals based on system load | |
| WO2023219701A1 (en) | Probability-based load balancing | |
| US12093137B2 (en) | System and method for data back-up using a proxy pool | |
| CN112306383A (en) | Method for executing operation, computing node, management node and computing equipment | |
| CN109643248A (en) | For method that is automatic in highly distributed data processing system and dynamically will distributing to available computation module for the responsibility of task | |
| CN114862606B (en) | Insurance information processing method and device based on cloud service |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23711873 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 18855593 Country of ref document: US |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 23711873 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 23711873 Country of ref document: EP Kind code of ref document: A1 |
|
| WWP | Wipo information: published in national office |
Ref document number: 18855593 Country of ref document: US |