Exit Print View

Sun OpenDS Standard Edition 2.2 Architectural Reference

Get PDF Book Print View

Document Information

1.  Introduction

2.  The Directory Server Access Control Model

3.  Understanding the Directory Server Schema

4.  Directory Server Index Databases

Kinds of Indexes

Attribute Equality Index

Attribute Presence Index

Attribute Substring Index

Attribute Ordering Index

Index Entry Limit

Search Evaluation

5.  Understanding Directory Server Plug-Ins

6.  Directory Server Replication

7.  Directory Server Root Users and the Privilege Subsystem

8.  Supported Controls and Operations

Search Evaluation

To process an LDAP search operation, the JE back end first applies the search filter to the attribute indexes to obtain an initial set of candidate entry IDs. Then the candidates can be further refined by fetching subordinates of the base entry from either the children or subtree databases (depending on the search scope).

If a candidate set is obtained, the search is considered to be “indexed”. Each candidate entry is fetched from the entry database and returned to the client if it matches the search scope and filter.

If no candidate set is obtained (because of a lack of indexes or some of the index values having exceeded the index entry limit), the search is considered to be “not-indexed” In this case, a cursor is opened on the DN database at the base entry to iterate through the DN/ID records, fetching and filtering the corresponding entries until all the entries under the search base have been processed.

Whenever the number of candidate entry IDs from the indexes is found to be 10 or less, no further attempt is made to reduce the number of candidates. Instead those entries are immediately fetched from the entry database and filtered, on the assumption that this is quicker than continuing to read the index databases. This can pay off for AND search filters in which the first component is the most specific.

Search AND filters are also rearranged so that components that are slow to evaluate (greater-than-or-equal, less-than-or-equal) come after components that are generally faster (for example, equality).