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.
Directory 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
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
The Replication Assurance Policy, which is defined on the PingDirectory Server and not on the PingDirectoryProxy Server, has the following properties:
- Determines the evaluation order among multiple Replication Assurance Policies that match against an operation. The smaller value has precedence.
- Specifies the assurance level used to replicate to local servers. A local server is defined as a
server with the same
locationproperty value as set in the global configuration. The
local-levelproperty must be set to an assurance level as strict as the
remote-levelproperty. For example, if the
remote-levelis set to
processed-all-remote-locations, then the
local-levelproperty must be
- Replication to any local server is not assured.
- At least one available local server must receive a replication update before a response is sent to the client.
- 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-serversreturns a value of
- Specifies the assurance level used to replicate to remote servers. A remote server is defined as
a server that has a different
locationproperty value as set in the global configuration.
- Replication to any remote server is not assured.
- At least one server at any available remote location must receive a replication update before a response is sent to the client.
- All available remote servers must receive a replication update before the response is sent to the client.
- 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
processed-all-remote-serversreturns a value of
- Specifies the maximum length of time to wait for the replication assurance requirements to be met before timeout and replying to the client.
- 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.
- 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
operations received on server A have the assurance level of
add operations received on
server B have the assurance level of
For more information, see the PingDirectory Server Configuration Reference Guide.