9.3.7. Assured Replication

In standard replication, when a client requests an update operation the directory server performs the update and, if the update is successful, sends information about the update to the replication service, and sends a result code to the client application right away. As a result, the client application can conclude that the update was successful, but only on the replica that handled the update.

Assured replication lets you force the replica performing the initial update to wait for confirmation that the update has been received elsewhere in the topology before sending a result code to the client application. You can configure assured replication either to wait for one or more replication servers to acknowledge having received the update, or to wait for all directory servers to have replayed the update.

As you might imagine, assured replication is theoretically safer than standard replication, yet it is also slower, potentially waiting for a timeout before failing when the network or other servers are down.

Procedure 9.8. To Ensure Updates Reach Replication Servers

Safe data mode requires the update be sent to assured-sd-level replication servers before acknowledgement is returned to the client application.

  • For each directory server, set safe data mode for the replication domain, and also set the safe data level.

    $ dsconfig
     set-replication-domain-prop
     --port 4444
     --hostname opendj.example.com
     --bindDN "cn=Directory Manager"
     --bindPassword password
     --provider-name "Multimaster Synchronization"
     --domain-name "dc=example,dc=com"
     --set assured-type:safe-data
     --set assured-sd-level:1
     --trustAll
     --no-prompt
    
    $ dsconfig
     set-replication-domain-prop
     --port 4444
     --hostname opendj2.example.com
     --bindDN "cn=Directory Manager"
     --bindPassword password
     --provider-name "Multimaster Synchronization"
     --domain-name "dc=example,dc=com"
     --set assured-type:safe-data
     --set assured-sd-level:1
     --trustAll
     --no-prompt

Procedure 9.9. To Ensure Updates Are Replayed Everywhere

Safe read mode requires the update be replayed on all directory servers before acknowledgement is returned to the client application.

  • For each directory server, set safe read mode for the replication domain.

    $ dsconfig
     set-replication-domain-prop
     --port 4444
     --hostname opendj.example.com
     --bindDN "cn=Directory Manager"
     --bindPassword password
     --provider-name "Multimaster Synchronization"
     --domain-name "dc=example,dc=com"
     --set assured-type:safe-read
     --trustAll
     --no-prompt
    
    $ dsconfig
     set-replication-domain-prop
     --port 4444
     --hostname opendj2.example.com
     --bindDN "cn=Directory Manager"
     --bindPassword password
     --provider-name "Multimaster Synchronization"
     --domain-name "dc=example,dc=com"
     --set assured-type:safe-read
     --trustAll
     --no-prompt

When working with assured replication, the replication server property degraded-status-threshold (default: 5000), sets the number of operations allowed to build up in the replication queue before the server is assigned degraded status. When a replication server has degraded status, assured replication ceases to have an effect.