Assured replication uses a Replication Assurance Policy to define the properties needed to ensure that replication has satisfactorily 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 which, 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, it is recommended that request or connection criteria be associated with a policy to apply replication assurance appropriately.
The Directory Server contains a Default Replication Assurance Policy that is enabled but has no assurance levels assigned. 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 (e.g., 1) has precedence over policies with larger evaluation-order-index values (e.g., 2, 3, 4, etc.). The evaluation-order-index values do not need to be contiguous. The first policy that matches a request is associated with the operation.
- evaluation-order-index. Determines the evaluation order (the smaller value has precedence) among multiple Replication Assurance Policies that match against an operation.
-
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. Thelocal-level
property must be set to an assurance level as strict as theremote-level
property. For example, if theremote-level
is set to "processed-all-remote-locations
," then thelocal-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
will return a value offalse
.
-
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
will return a value offalse
.
- 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 will
have the assurance level of processed-all-servers
and add operations received on
server B will have the assurance level of received-any-server
.
For more detailed information, see the PingDirectory Server Configuration Reference Guide.