• Andrew Hamon's avatar
    Balance round robin evenly when some hosts are down (#880) · fee4890e
    Andrew Hamon authored
    * Balance round robin evenly when some hosts are down
    
    Before, when load balancing across multiple hosts, if a host went down
    then the next host in line would be sent a double share of requests.
    This is because the round robin counter was only incremented once per
    request, regardless of the health of the selection. If current
    selection was unhealthy then the policy would advance to the next host,
    but this would not be reflected in the policy counter. To fix this, the
    counter is now incremented for every attempted host.
    
    This commit adds a test case that identifies the issue, and a fix.
    
    * Make robin counter private
    
    * Use a mutex to sync round robin selection
    fee4890e
policy.go 2.39 KB