Installation guide

6
Upgrade Requirements of eDirectory 8.8 77
6
Upgrade Requirements of eDirectory 8.8
One of the unique features of eDirectory is its ability to maintain the tight referential integrity. Any
object Classes derived from Top will have a reference attribute in its class definition. This is a hidden
attribute added to all the referenced objects that are internally maintained by eDirectory. Background
processes keep running to check the links between the referenced object and the referencing objects.
If the referenced object is from a different partition than the one held locally in the server, an external
reference to that object will be created locally in the external reference partition. An external reference
is a representation of an object existing in the eDirectory tree. However, it is not a copy of the object
and its assigned attributes.
Though we can remove the Reference attribute from eDirectory, currently, the class definitions are
untouched to maintain the backward compatibility in the tree.
This chapter explains the changes and possible upgrade scenarios in eDirectory 8.8.
Section 6.1, “Reference Changes in 8.8 SP1 or Later Versions,” on page 77
Section 6.2, “Upgrade Process in 8.8 SP8,” on page 78
Section 6.3, “Performing a Dry Run before Upgrading eDirectory,” on page 80
6.1 Reference Changes in 8.8 SP1 or Later Versions
The reference attribute is a hidden attribute and is maintained on each referenced object. This is
created and maintained by DS. The new referencing code in DS is based on a Flexible Adaptable
Information Manager (FLAIM) index called
LocalEntryIDIndex
that DS creates. Though FLAIM
maintains the index, the usage is determined by DS. FLAIM automatically updates the index when a
DN value is added or deleted. Each key in the index is a compound key, i.e, DN of the object being
referenced + Entry ID of the referencing object. For example, if there is an object with Entry ID 343,
and it has a “member” value that points to object #899, FLAIM will automatically generate a key in
the index of 899+343. DS can now do lookups in the index to find all the objects pointing to object
#899. Object #899 does not have to keep a reference attribute on itself to remember all the objects
referencing it. Actually, FLAIM maintains the index without knowing how it is used, but DS has the
code that knows how to use the index.
However, the new way of maintaining references requires a database upgrade when the existing
eDirectory instance is upgraded to 8.8 SP1 or later versions. The upgrade requires the creation of a
new index, which will require traversing each entry in the database. It also requires the removal of all
of the “reference” attributes from each entry in the database. In addition, some internal octet string
attributes used by DS that had embedded DNs would need to generate some new DN values to store
alongside the octet string value. All this would be a time consuming process on a large database.
Since DS is changed to do referential integrity using new FLAIM feature, and that depends on the
new index, there is no way DS can really operate until the conversion is complete. Therefore, the first
time an existing database is opened, all reference attributes need to be changed to a new index. It
could take hours before it actually opens and is ready for use by applications for a large database.