Load balancing (computing): Difference between revisions

Content deleted Content added
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
Use cases: | Altered title. Add: chapter, arxiv, authors 1-1. Removed URL that duplicated identifier. Removed parameters. Some additions/deletions were parameter name changes. | Use this tool. Report bugs. | #UCB_Gadget
Line 154:
 
====Client-side random load balancing====
Another approach to load balancing is to deliver a list of server IPs to the client, and then to have the client randomly select the IP from the list on each connection.<ref>[{{cite web |url=https://gameserverarchitecture.com/2015/10/pattern-client-side-load-balancing/ |title=Pattern: Client Side Load Balancing] |date=October 15, 2015 |archive-url=https://web.archive.org/web/20201129020628/https://gameserverarchitecture.com/2015/10/pattern-client-side-load-balancing/?shared=email&msg=fail |archive-date=2020-11-29 |url-status=usurped}}</ref><ref name="ithare">{{Cite web|url=http://ithare.com/chapter-vib-server-side-architecture-front-end-servers-and-client-side-random-load-balancing/|title=Server-Side Architecture. Front-End Servers and Client-Side Random Load Balancing|date=December 28, 2015|website=IT Hare on Soft.ware}}</ref> This essentially relies on all clients generating similar loads, and the [[Law of Large Numbers]]<ref name="ithare" /> to achieve a reasonably flat load distribution across servers. It has been claimed that client-side random load balancing tends to provide better load distribution than round-robin DNS; this has been attributed to caching issues with round-robin DNS, that in the case of large DNS caching servers, tend to skew the distribution for round-robin DNS, while client-side random selection remains unaffected regardless of DNS caching.<ref name="ithare" />
 
With this approach, the method of delivery of a list of IPs to the client can vary and may be implemented as a DNS list (delivered to all the clients without any round-robin), or via hardcoding it to the list. If a "smart client" is used, detecting that a randomly selected server is down and connecting randomly again, it also provides [[fault tolerance]].
Line 274:
Many telecommunications companies have multiple routes through their networks or to external networks. They use sophisticated load balancing to shift traffic from one path to another to avoid [[network congestion]] on any particular link, and sometimes to minimize the cost of transit across external networks or improve [[Reliability (computer networking)|network reliability]].
 
Another way of using load balancing is in [[network monitoring]] activities. Load balancers can be used to split huge data flows into several sub-flows and use several network analyzers, each reading a part of the original data. This is very useful for monitoring fast networks like [[10 Gigabit Ethernet|10GbE]] or STM64, where complex processing of the data may not be possible at [[wire speed]].<ref>Mohammad{{cite conference | last1=Noormohammadpour, | first1=Mohammad | last2=Raghavendra | first2=Cauligi S. Raghavendra| title=IEEE INFOCOM 2018 [https://www.researchgate.net/publication/323723167_Minimizing_Flow_Completion_Times_using_Adaptive_Routing_over_Inter-Datacenter_Wide_Area_Networks IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS) | chapter=Poster abstract: Minimizing Flowflow Completioncompletion Timestimes using Adaptiveadaptive Routingrouting over Interinter-Datacenterdatacenter Widewide Areaarea Networks]networks ''| publisher=IEEE INFOCOM| date=2018 Poster| Sessions,isbn=978-1-5386-5979-3 DOI:| doi=10.131401109/RGINFCOMW.22018.2.36009.90720''8406853 6| Januarydoi-access=free | page=1–2| arxiv=1802.09080 2019}}</ref>
 
===Data center networks===
Load balancing is widely used in [[data center]] networks to distribute traffic across many existing paths between any two servers.<ref name=architecture>M.{{cite journal | last1=Noormohammadpour, C.| S.first1=Mohammad | last2=Raghavendra, [https://www| first2=Cauligi S.researchgate.net/publication/321744877_Datacenter_Traffic_Control_Understanding_Techniques_and_Trade-offs "| title=Datacenter Traffic Control: Understanding Techniques and Trade-offs,"]Tradeoffs ''| journal=IEEE Communications Surveys & Tutorials'', vol.| PP,volume=20 no.| 99,issue=2 pp| date=2018 | issn=1553-877X | doi=10.1109/COMST.2017.2782753 1| doi-1access=free | pages=1492–1525 | arxiv=1712.03530 | url=https://hal.science/hal-01811647/document}}</ref> It allows more efficient use of network bandwidth and reduces provisioning costs. In general, load balancing in datacenter networks can be classified as either static or dynamic.
 
Static load balancing distributes traffic by computing a hash of the source and destination addresses and port numbers of traffic flows and using it to determine how flows are assigned to one of the existing paths. Dynamic load balancing assigns traffic flows to paths by monitoring bandwidth use on different paths. Dynamic assignments can also be proactive or reactive. In the former case, the assignment is fixed once made, while in the latter the network logic keeps monitoring available paths and shifts flows across them as network utilization changes (with arrival of new flows or completion of existing ones). A comprehensive overview of load balancing in datacenter networks has been made available.<ref name=architecture/>
 
===Failovers===
Load balancing is often used to implement [[failover]]—the continuation of service after the failure of one or more of its components. The components are monitored continually (e.g., web servers may be monitored by fetching known pages), and when one becomes unresponsive, the load balancer is informed and no longer sends traffic to it. When a component comes back online, the load balancer starts rerouting traffic to it. For this to work, there must be at least one component in excess of the service's capacity ([[N+1 redundancy]]). This can be much less expensive and more flexible than failover approaches where every single live component is paired with a single backup component that takes over in the event of a failure ([[dual modular redundancy]]). Some [[RAID]] systems can also utilize [[hot spare]] for a similar effect.<ref name="IBM">[{{cite web |url=https://www.ibm.com/support/knowledgecenter/en/SSVJJU_6.4.0/com.ibm.IBMDS.doc_6.4/ds_ag_srv_adm_dd_failover_load_balancing.html |title=Failover and load balancing] ''|website=IBM'' |accessdate=6 January 2019}}</ref>
 
=== Data Ingestion for AI Model Training ===