TransitiveVector in eDirectory is a synchronizing multi-valued attributeTypes, where each attribute value represents the state in time that the specified eDirectory agent has received changes up to.

Background Information#

Novell Directory Services (eDirectory) has had a lifetime of almost 26 years if you count its predecessors. For instance, in NetWare 3.x, there were the enhancements to the SYSCON utility called NETCON, which used a form of forced synchronization of user and group objects between servers. In order to overcome the limitations of a patched solution such as NETCON, NDS was born to offer a complete directory solution, designed from the ground up to fulfill that mission.

Initially, NDS was designed with a method of updating information on all servers in the NDS Tree-name. This was called synchronization. Recently synchronization has been improved to handle increased efficiency that were demanded by the current workforce. One of the updates to synchronization is called Transitive Synchronization. In order to understand Transitive Synchronization, it is important to understand the Transitive Vector.

The TransitiveVector#

In order to maintain the EDirectory Synchronization of replicas, NDS needs to keep track of the changes that have been made. This is done by placing a timestamp on a specific attribute of the Partition Root Entry. This timestamp indicates when the last update was made. By looking at the timestamp, NDS can evaluate whether the most current updates have been received by that replica.

In versions of NDS before NetWare 5, an attribute called "Synchronized Up To" determined when the latest changes were made. The value of Synchronized Up To attribute is unique for each replica and is not synchronized to the other servers in the replica ring (NDS Tree-name).

In versions of NDS that shipped with NetWare 5 and greater, use TransitiveVector to track changes to a partition. The TransitiveVector holds timestamps for all the replicas in the replica List from each server's perspective.

Each server in the replica List has a copy of its own TransitiveVector and each server also has copies of the TransitiveVector of the other servers in the NDS Tree-name.

On each single server, these Time Vectors are referred to as the TransitiveVector. The TransitiveVector tracks any changes that occur to the immediate partition.

A MULTI-VALUE attribute, the TransitiveVector is added to the Partition Root Entry for each NDS Partition in NetWare 5 or greater releases of NDS. Differing from the Synchronized Up To attribute (which only holds one value for each replica in a partition), the TransitiveVector is a multi-valued attribute containing a group of Time Vectors. Each of these Time Vectors contains information about each replica. There is one Transitive Vector for each replica.

The Transitive Vector is synchronized between servers. This means that every server in the replica ring holds a copy of the Transitive Vectors for all other servers in the ring. By synchronizing the Transitive Vector values, all of the replicas can synchronize without having every replica communicate with every other replica.

TransitiveVector Example#

TransitiveVector is a time stamp for a replica.

TransitiveVector is made up of a representation of the number of seconds since a common specific point in history (UNIX epoch), the replica number, and the current event number. Here's an example:

s3D35F377 r02 e002

LDAP AttributeTypes Definition#

The TransitiveVector AttributeTypes is defined as:

More Information#

There might be more information for this subject on one of the following: