The PingDirectoryProxy server provides the following load-balancing algorithms:

Fewest operations
Forwards request to the backend server with the fewest operations currently in progress.
Single server
Sends requests to the same server and doesn't attempt to fail over to another server if the target server is unavailable.
Administrators explicitly assign numeric weights to individual servers or sets of servers to control how likely they are to be selected for processing requests relative to other servers.
Health-based weighting
Uses the health check score to assign weights to each of the servers so that a server with a higher score gets a higher percentage of the traffic than a server with a lower score. The proportion of traffic received is the difference between their health check scores.
Sends requests to a given server first. If that server fails, then the request sends to another specified server as specified in the ordered failover server list.

For more information about configuring load balancing, see Configuring Load Balancing.

Algorithim criteria

The algorithm takes the following criteria into account:

Location of the server
Servers in the same location as the PingDirectoryProxy server are preferred over those in alternate locations.
Health of the server
Servers that are available are preferred over those that are degraded. In some cases, the health check score can be used to further differentiate between servers with the same health check state.
Route requests consistency
Requests from a single client can be consistently routed to the same PingDirectoryProxy server instance to avoid problems such as propagation delay from replication.
Operation retries
Retries the operation in an alternate server if the request fails or the operation times out. You can control if the retry is allowed and, if so, how many times to retry and the time out interval.