PingDataSync supports endpoint failover,
which is configurable using the location
property on the external
servers. By default, PingDataSync prefers to
connect to and failover to endpoint servers in the same location as itself. If no
location settings are configured, PingDataSync will iterate through the configured list of external servers on the Sync Source
and Sync Destination when failing over.
PingDataSync does not perform periodic health checks of external servers, and does not failover automatically to a preferred external server. Because of the cost of sync failover, PingDataSync remains connected to a given server until the server stops responding or until the Sync Pipe is restarted. When a failover occurs, PingDataSync returns to the most preferred server, optionally using location settings to identify it, and works its way down the list. Here is an example configuration of external servers:
austin1.server.com:1389
london1.server.com:2389
boston1.server.com:3389
austin2.server.com:4389
boston2.server.com:5389
london2.server.com:6389
If the austin1 server were to become unavailable, PingDataSync will automatically pick up changes on the next server on the list, london1. If london1 is also down, then the next server, boston1, will be picked up. After PingDataSync iterates through the list, it returns to the top of the list. If PingDataSync is connected to london2 and it goes down, it will fail over to austin1.
To minimize WAN traffic, configure the location
property for each
external server using the dsconfig
command on PingDataSync. Assume that PingDataSync has its own
location
property (set in the Global Configuration) set to
"austin."
austin1.server.com:1389 location=austin
london1.server.com:2389 location=london
boston1.server.com:3389 location=boston
austin2.server.com:4389 location=austin
boston2.server.com:5389 location=boston
london2.server.com:6389 location=london
With the location
property set for each server, PingDataSync gets its changes from server
austin1. If austin1 goes down, PingDataSync
will pick up changes from austin2. If austin2 goes down, the server will iterate
through the rest of the list in the order it is configured.
The location
property has another sub-property,
preferred-failover-location
that specifies a set of
alternate locations if no servers in this location are available. If multiple
values are provided, servers are tried in the order in which the locations are
listed. The preferred-failover-location
property provides more
control over the failover process and allows the failover process to jump to a
specified location. Care must be used so that circular failover reference does not
take place. Here is an example configuration:
austin1.server.com:1389 location=austin preferred-failover-location=boston
london1.server.com:2389 location=london preferred-failover-location=austin
boston1.server.com:3389 location=boston preferred-failover-location=london
austin2.server.com:4389 location=austin preferred-failover-location=boston
boston2.server.com:5389 location=boston preferred-failover-location=austin
london2.server.com:6389 location=london preferred-failover-location=london
PingDataSync will respect the
preferred-failover-location
. If it cannot find any external
servers in the same location as itself, it will look for any external servers in
its own preferred-failover-location
. In this example, when
austin1 becomes unavailable, it will fail over to austin2 because they are in the
same location. If austin2 is unavailable, it will fail over to boston1, which is
in the preferred-failover-location
of PingDataSync. If boston1 is unavailable,
PingDataSync will fail over to boston2,
and finally, it will try the london1 and london2 servers.