PingDirectory

About the Replication Assurance Policy

Assured replication uses a Replication Assurance Policy to define the properties needed to ensure that replication has completed before the update response is returned to the client. Multiple policies can be defined, but only one policy is matched with a client update request. Each policy contains an evaluation order index that, together with an optional request and connection criteria, provides flexibility in matching a policy to request.

The Replication Assurance Policy defines local and remote assurance levels. A level defines how rigorous the policy should be when waiting for propagation of updates while local and remote distinguish servers in the same location versus servers in remote locations. Although optional, you should associate request or connection criteria with a policy to apply replication assurance appropriately.

PingDirectory server contains a default Replication Assurance Policy that is enabled with the local-level processed-all-servers assurance level. In addition to using the Default Replication Assurance Policy, any number of policies can be created and enabled. When a client request is received, the server iterates through the list of enabled policies according to each policy’s evaluation-order-index property. A smaller evaluation-order-index value (such as 1) has precedence over policies with larger evaluation-order-index values (such as 2, 3, 4, and so forth). The evaluation-order-index values do not need to be contiguous. The first policy that matches a request is associated with the operation.

The Replication Assurance Policy, which is defined on the PingDirectory server and not on the PingDirectoryProxy server, has the following properties:

evaluation-order-index

Determines the evaluation order among multiple Replication Assurance Policies that match against an operation. The smaller value has precedence.

local-level

Specifies the assurance level used to replicate to local servers. A local server is defined as a server with the same location property value as set in the global configuration. The local-level property must be set to an assurance level as strict as the remote-level property.

For example, if the remote-level is set to processed-all-remote-locations, then the local-level property must be processed-all-servers.

None

Replication to any local server is not assured.

received-any-server

At least one available local server must receive a replication update before a response is sent to the client.

processed-all-servers

All available local servers must complete replay of the replication update before the response is sent to the client. If a singular server is enabled, or only one server is available for a particular location, processed-all-servers returns a value of false.

remote-level

Specifies the assurance level used to replicate to remote servers. A remote server is defined as a server that has a different location property value as set in the global configuration.

None

Replication to any remote server is not assured.

received-any-remote-location

At least one server at any available remote location must receive a replication update before a response is sent to the client.

received-all-remote-locations

All available remote servers must receive a replication update before the response is sent to the client.

processed-all-remote-servers

All available servers at all locations must complete replay of the replication update before the response is sent to the client. If a single server is enabled, or only one server is available for a particular location, processed-all-remote-servers returns a value of false.

timeout

Specifies the maximum length of time to wait for the replication assurance requirements to be met before timeout and replying to the client.

connection-criteria

Specifies connection criteria used to indicate which operations from clients matching this criteria use this policy. If both connection criteria and request criteria are specified for a policy, then both must match an operation for the policy to be assigned.

request-criteria

Specifies request criteria used to indicate which operations from clients matching this criteria use this policy. If both connection criteria and a request criteria are specified for a policy, then both must match an operation for the policy to be assigned.

Servers in a replication topology are not required to share a homogeneous set of policies. You can configure the Replication Assurance Policies differently on the replicas in a topology. For example, if you configure server A to match add operations to a processed-all-servers assurance level, and server B to match add operations to a local received-any-server level, then add operations received on server A have the assurance level of processed-all-servers and add operations received on server B have the assurance level of received-any-server.