Directory Server can support a distributed directory
, where the directory tree (designed in Chapter 4, Designing the Directory Tree
) is spread across multiple physical Directory Servers. The way the directory is divided across those servers helps accomplish the following:
Achieve the best possible performance for directory-enabled applications.
Increase the availability of the directory service.
Improve the management of the directory service.
The database is the basic unit for jobs such as replication, performing backups, and restoring data. A single directory can be divided into manageable pieces and assigned to separate databases. These databases can then be distributed between a number of servers, reducing the workload for each server. More than one database can be located on a single server. For example, one server might contain three different databases.
When the directory tree is divided across several databases, each database contains a portion of the directory tree, called a suffix. For example, one database can be used to store only entries in the
ou=people,dc=example,dc=com suffix, or branch, of the directory tree.
When the directory is divided between several servers, each server is responsible for only a part of the directory tree. The distributed directory service works similarly to the Domain Name Service (DNS), which assigns each portion of the DNS namespace to a particular DNS server. Likewise, the directory namespace can be distributed across servers while maintaining a directory service that, from a client's point of view, appears to be a single directory tree.
The Directory Server also provides knowledge references, mechanisms for linking directory data stored in different databases. Directory Server includes two types of knowledge references; referrals and chaining.
The remainder of this chapter describes databases and knowledge references, explains the differences between the two types of knowledge references, and describes how to design indexes to improve the performance of the databases.