Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

We will use two tags, stored within each entry, to manage the replication. The CSN (Change Sequence Number) is used to tell that an entry is owned by a specific serverstores when and where (which server) the entry was last modified. A replicated entry on 3 servers will have 3 distinct CSNthe same CSN. Before replication they may be different. The UUID (Universal Unique Identifier) is associated with an entry, and only one. So if we have an entry replicated on 3 servers, it will have 3 one CSN (one per serveras the entry is at the same version for all servers) and only one *UUID (as it's the same entry). The UUID is not currently used. The CSN stored in the entry is used to prevent older modifications overwriting newer ones. Unfortunately this leads to inconsistent servers (see DIRSERVER-894) - we need to check the CSN for each attribute instead. Once this is fixed the CSN stored on each entry will no longer be used.

Configuration

The replication system is a Multi-Master replication, ie, each server can update any server it is connected to. The way you tell a server to replicate to others is simple :

...

  • add
  • delete
  • hasEntry
  • list
  • lookup
  • modify
  • move
  • moveAndRename
  • rename
  • search

The hasEntry, list, lookup and search operations are only handled to prevent tombstoned (deleted) entries being returned.

Operations classes

We are using Operation objects to manage replications inside the interceptor. Here is the Operation classes hierarchy :

...