A survey of load balancing in distributed systems. (18th March 2020)