Client-side Global Server Load Balancing (GSLB) is an improved version of the traditional server-side GSLB. By using client-side GSLB, the client can select the optimal server independently, based on a measured network distance between client and servers (in contrast to commonly used imprecise geographic proximity) and the current server load or service response time. The client-side GSLB can use a composite DNS metric that allows the client himself, rather than a remote GSLB server, to make the final decision on which server, represented by IP address in a DNS response, is best for him. The server parameters are supplied to the client via the standard DNS infrastructure, by using GSLB DNS servers and provide the client with information about the current status of the servers’ load and/or the service response time of a particular network service.
Although most client-side GSLB use legacy round-robin, weighted round-robin and random policies, the basic parameters for optimal server selection in modern client-side GSLB are:
The client-side GSLB usually uses a Dynamic Server Selection process because:
The client calculates the composite DNS metric for the public IP address of each server based on the measured and delivered server parameters and decides for himself which server is optimal for him. During the measurements, the availability of the servers is checked by the client and the network distance is precisely determined. Therefore, the client can always select the server that is available and optimal for him, that is the server that offers the lowest service response time. To provide client-side GSLB functionality, the client (laptop PC, desktop PC, smartphone, …) requires a client-side GSLB library (DNS client) to perform DNS queries, process received data, measure network distances, and make a final decision.
Although most client-side GSLB work on layer 7 and therefore mostly layers 7 protocol depended, modern client-side GSLB work on layer 3/4 and use the client’s DNS resolver libraries.
Client-side GSLB also enables companies to reduce the use of traditional server load balancing by making servers directly available to their clients, where client-side GSLB functionality, along with the server-side GSLB information provided, selects the optimal server for each client.
More information:
https://link.springer.com/article/10.1007/s11235-018-0516-3
https://www.akamai.com/es/es/multimedia/documents/technical-publication/faster-web-through-client-assisted-cdn-servers-selection.pdf
https://patents.google.com/patent/US20090222583A1/en
https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/daperture-load-balancer.html
https://netflixtechblog.com/netflix-edge-load-balancing-695308b5548c
https://www.linkedin.com/pulse/microservices-client-side-load-balancing-amit-kumar-sharma
https://blog.pankajtanwar.in/system-design-is-client-side-load-balancing-a-good-idea