Skip Headers

Oracle® Internet Directory Administrator's Guide
10g (9.0.4)

Part Number B12118-01
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Go to previous page Go to beginning of chapter Go to next page

Directory Replication Concepts, 10 of 12


Multimaster Replication

This section gives a detailed look at multimaster replication. A multimaster directory replication group has multiple nodes acting as equals to manage groups of replicated data. This section contains these topics:

Oracle9i Advanced Replication

In Oracle Internet Directory replication, the transport of update information between nodes in a replication agreement is managed by Oracle9i Advanced Replication, a store-and-forward transport feature available in Oracle9i. Advanced Replication enables you to synchronize database tables across two Oracle databases.

Oracle9i Advanced Replication:

Architecture for Multimaster Replication

Typical Advanced Replication configurations use asynchronous data propagation--that is, suppliers write their changes to change logs, and then regularly send batched changes to other consumers. Consumers receive the change log data, then reproduce the changes locally.

When you configure replication, you specify which nodes in a replication group share changes. Regardless of the number of nodes you introduce into the replication environment, the basic architecture for replication remains the same. Local changes are distributed to a remote master site (RMS) where the replication server, acting as a client, sends commands to the directory server that implements them.

The rest of this section discusses, in general terms, the replication process, both from the standpoint of the supplier, and from that of the consumer.

The Multimaster Replication Process on the Supplier Side

Figure 24-10 and its accompanying text explain what happens on the supplier side during the multimaster replication process.

Figure 24-10 The Multimaster Replication Process on the Supplier Side

Text description of oidag031.gif follows

Text description of the illustration oidag031.gif

  1. An LDAP client issues a directory modification.

  2. The Oracle directory server generates a change log object in the change log object store.

  3. At a scheduled time, the Oracle directory replication server launches an outbound change log processing thread. This thread translates the change log object into a row--for example, Change entry--in the change log table.

  4. When a change entry is committed to the change log table, Oracle9i Advanced Replication immediately copies the change into the deferred transaction queue.

  5. After a scheduled interval, Oracle9i Advanced Replication pushes pending transactions from the deferred transaction queue across the network to the consumer change log table.


    Note:

    All changes made to Oracle Application Server Single Sign-On tables by the single sign-on administrator application are also replicated by Oracle9i Advanced Replication.


The Multimaster Replication Process on the Consumer Side

Figure 24-11 and its accompanying text explain the multimaster replication process on the consumer side.

Figure 24-11 The Multimaster Replication Process on the Consumer Side

Text description of oidag030.gif follows

Text description of the illustration oidag030.gif

  1. A change arrives in the consumer change log table from the supplier.

  2. The Oracle directory replication server launches a change log processing thread for each supplier, based on a scheduled replication cycle. This thread first consults the change status table for the last change applied from the supplier to the consumer.

  3. The Oracle directory replication server then fetches and applies all the new changes from the change log table to the Oracle directory server.

  4. The Oracle directory replication server then updates the change status table to record the last change applied from the supplier before exiting.

  5. Oracle9i Advanced Replication copies the change status update into the deferred transaction queue.

  6. After the scheduled Oracle9i Advanced Replication interval, Oracle9i Advanced Replication pushes pending change status updates from the deferred transaction queue to the supplier change status table.

Although, in the previous figures, the roles of supplier and consumer have been separated, in an actual multimaster replication environment, each directory server is both a supplier and a consumer. In such an environment, purging occurs regularly, removing entries that are already applied and those that are dropped as candidate changes. Remote change records in the local change log table are purged by the garbage collection thread if they have been applied locally. Local change records in the local change log table are purged by the garbage collection thread if they have been distributed to all the consumers.

See Also:

"Managing Replication" for information on configuring replication

Conflict Resolution in Multimaster Replication

Multimaster replication enables updates to multiple directory servers. Conflicts occur whenever the directory replication server attempts to apply remote changes from a supplier to a consumer and, for some reason, fails.

There are times when the replication process may not be able to apply a change. For example, suppose that Supplier Node A sends the consumer a change, and, immediately after that, Supplier Node B sends the consumer an update to the same entry. Then, suppose that a problem delays the transmission of the entry from Supplier Node A, but that no such problem delays transmission of the update from Supplier Node B. The result can be that the update from Supplier Node B arrives at the consumer ahead of the entry it is modifying. In this case, the replication server makes a specified number of retries to apply the change. If it fails to apply the change once that number is reached, then it moves the change to the human intervention queue, and attempts to apply the change at regular, less frequent intervals that you specify.

LDAP operations that can lead to conflicts include:

Levels at Which Replication Conflicts Occur

There are two types of conflicts:

Typical Causes of Conflicts

Conflicts usually stem from differences in the timing of changes arising from the occasional slowness or transmission failure over wide area networks. Also, an earlier inconsistency might continue to cause conflicts if it is not resolved in a timely manner.

Automated Resolution of Conflicts

The directory replication server attempts to resolve all conflicts that it encounters by following this process:

  1. The conflict is detected when a change is applied.

  2. The replication process attempts to reapply the change a specific number of times or repetitively for a specific amount of time after a specific waiting period.

  3. If the replication process reaches the retry limit without successfully applying the change, it flags the change as a conflict, which it then tries to resolve. If the conflict cannot be resolved according to the resolution rules (described in the next section), the change is moved to a low-priority, human intervention queue. Changes are then applied according to the time unit specified in the orclHIQSchedule parameter in the replication agreement. Before it moves the change, the directory replication server writes the conflict into a log file for the system administrator.


    Note:

    There is no conflict resolution of schema, catalog, and group entries during replication. This is because attempting resolution of such large multi-valued attributes would have a significant negative impact on performance. Be careful to avoid updating such entries from more than one master at a time.


    See Also:

The Multimaster Replication Process

This section describes how the automated replication process adds, deletes, and modifies entries, and how it modifies DNs and RDNs.

How the Multimaster Replication Process Adds a New Entry to a Consumer

When directory replication server successfully adds a new entry to a consumer, it follows this change application process:

  1. The directory replication server looks in the consumer for the DN of the parent of the target entry. Specifically, it does this by looking for a global unique identifier (GUID) assigned to the DN of the parent.

  2. If the parent entry exists, then the directory replication server composes a DN for the new entry and places the new entry under its parent in the consumer. It then places the change entry in the purge queue.

If the change entry is not successfully applied on the first try, then:

If the change entry is not successfully applied on all but the last retry, then:

If the change entry is not successfully applied on the last retry, then:

If the change entry is a duplicate entry, then:

If the change entry is not a duplicate entry, then:

The directory replication server places the change entry in the human intervention queue, and repeats the change application process at the interval you specified in the orclHIQSchedule parameter.

If the change entry is not successfully applied after it has been placed in the human intervention queue:

How the Multimaster Replication Process Deletes an Entry

When the directory replication server deletes an entry from a consumer, it follows this change application process:

  1. The directory replication server looks in the consumer for an entry with a GUID matching the one in the change entry.

  2. If the matching entry exists in the consumer, then the directory replication server deletes it. It then places the change entry in the purge queue.

If the change entry is not successfully applied on the first try, then:

If the change entry is not successfully applied on all but the last retry, then:

If the change entry is not successfully applied on the last retry, then:

If the change entry is not successfully applied after it has been placed in the human intervention queue:

How the Multimaster Replication Process Modifies an Entry

When the directory replication server modifies an entry in a consumer, it follows this change application process:

  1. The directory replication server looks in the consumer for an entry with a GUID matching the one in the change entry.

  2. If the matching entry exists in the consumer, then the directory replication server compares each attribute in the change entry with each attribute in the target entry.

  3. The directory replication server then applies the following conflict resolution rules:

    1. The attribute with the most recent modify time is used.

    2. The attribute with the most recent version of the attribute is used--for example, version 1, 2, or 3.

    3. The modified attribute on the host whose name is closest to the beginning of the alphabet is used.

  4. The directory replication server applies the filtered modification, and places the change entry in the purge queue.

If the change entry is not successfully applied on the first try, then:

If the change entry is not successfully applied on all but the last retry, then:

If the change entry is not successfully applied by the last retry, then:

If the change entry is not successfully applied after it has been placed in the human intervention queue:

How the Multimaster Replication Process Modifies a Relative Distinguished Name

When the directory replication server modifies the RDN of an entry in a consumer, it follows this change application process:

  1. The directory replication server looks in the consumer for the DN with a GUID that matches the GUID in the change entry.

  2. If the matching entry exists in the consumer, then the directory replication server modifies the RDN of that entry and places the change entry in the purge queue.

If the change entry is not successfully applied on the first try, then:

If the change entry is not successfully applied on all but the last retry, then:

If the change entry is not successfully applied on the last retry, then:

If the change entry is not a duplicate entry, then:

If the change entry is not successfully applied after it has been placed in the human intervention queue:

How the Multimaster Replication Process Modifies a Distinguished Name

When the directory replication server modifies the DN of an entry in a consumer, it follows this change application process:

  1. The directory replication server looks in the consumer for the DN with a GUID that matches the GUID in the change entry.

    The directory replication server also looks in the consumer for the parent DN with a GUID that matches the GUID of the new parent specified in the change entry.

  2. If both the DN and the parent DN of the target entry exist in the consumer, then the directory replication server modifies the DN of that entry and places the change entry in the purge queue.

If the change entry is not successfully applied on the first try, then:

If the change entry is not successfully applied on all but the last retry, then:

If the change entry is not successfully applied by the last retry, then:

If the change entry is a duplicate entry, then:

If the change entry is not a duplicate entry, then:

If the change entry is not successfully applied after it has been placed in the human intervention queue:


Go to previous page Go to beginning of chapter Go to next page
Oracle
Copyright © 1999, 2003 Oracle Corporation.

All Rights Reserved.
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index