Grokking the System Design Interview

0% completed

Load Balancing Algorithms

A load balancing algorithm is a method used by a load balancer to distribute incoming traffic and requests among multiple servers or resources. The primary purpose of a load balancing algorithm is to ensure efficient utilization of available resources, improve overall system performance, and maintain high availability and reliability.

Load balancing algorithms help to prevent any single server or resource from becoming overwhelmed, which could lead to performance degradation or failure

.....

.....

.....

Like the course? Get enrolled and start learning!
R

reagankm

· 3 years ago

They have the same pros and cons in the list provided here. I had to look up on the internet to try and find a reason to prefer one over the other and it said the random algorithm can be better for security since bad actors don't have a predictable sequence they can use for targeting specific servers.

It might be good to add some mention like this to the list of pros for Random. Or, if my info is false, then add some other descriptor to explain why these algorithms suit different needs.

Raj Kumar Nishad

Raj Kumar Nishad

· 2 years ago

As for stateful application all the requests for a session should go to single server ?

Show 3 replies
Sid D

Sid D

· a year ago

An IP can map to any server from the pool. Its not possible that an IP from a specific region maps to a specific server that is geographically close to it. Then why is it mentioned that IP hash LB is useful in geographically distributed clients?

Show 4 replies
S

Shishir

· 2 years ago

Some API may need more time to process than others, so I can see how servers can have differing workloads, but wouldn't that have a direct impact on the server's capacity? Is it fair to say that these are essentially the same metric since they are directly related to each other? I'm relatively new to system design, so please let me know if I'm missing some key difference here. Thanks!

Show 1 reply
Dimitri P.

Dimitri P.

· 2 years ago

You mention the following use-case for Least Bandwidth algorithm:

Real-Time Applications: Suitable for real-time applications where maintaining low latency is critical.

Can you please elaborate since latency is different from bandwidth?

Show 1 reply
Himanshu Gupta

Himanshu Gupta

· 2 years ago

I believe this might not be the most efficient algorithm in terms of resource utilization. Reason being, it checks the server with the fewest active connections, however, a server with the fewest active connections might be the one with the most capacity ??

Is my reasoning correct, or am I missing something ??

Show 1 reply
Sid D

Sid D

· a year ago

CDN's don't specifically have any high bandwidth demands. Its more application specific. So what makes LBW approach specifically useful for CDN use case? Can you expand further on this?

ali ahmed

ali ahmed

· 2 years ago

what does the Weighted keyword means here and what is the difference between it and the connections count in least conenctions does it means the resources of the server capacity or how to calculate the weight of a server

Show 1 reply
A

anas.beit

· 2 years ago

there is common statement across the topic that No consideration for server health or response time.

However, LB balancer have capability to do periodic health probe of the server and verifying time out from the server, it health probe fail or there will be time out from a specific then LB will not send traffic to divert to the given server.

This point is misleading in the cause

Sandeep Verma

Sandeep Verma

· 2 years ago

Is LB single or multiple machine? If so ho is load distributed across these and who distributes this ( DNS distribution is understood, except for that how it works)

Show 1 reply