Index Manager

Index Manager is an attribute of the Server object that lets you manage database indexes. These indexes are used by eDirectory to significantly improve query performance.

eDirectory ships with a set of indexes that provide basic query functionality. These default indexes are for the following attributes:

cn

Aliased Object Name

dc

Obituary

Given Name

Member

Surname

Reference

uniqueID

Equivalent to Me

GUID

NLS: Common Certificate

You can also create customized indexes to further improve eDirectory performance in your environment. For example, if your organization has implemented a new LDAP application that looks up an attribute not indexed by default, it might be useful to create an index for that attribute.

NOTE:  While indexes improve search performance, additional indexes also add to directory update time. As a general rule, create new indexes only if you suspect performance issues are related to a particular directory lookup.

Using ConsoleOne, you can create or delete indexes. You can also view and manage the properties of an index, including the index name, state, type, rule, and attribute indexed.

Use the Predicate Statistics data to know what additional indexes might be valuable for your environment. See Predicate Data.


Creating an Index

To create an index:

  1. In ConsoleOne, right-click the Server object > click Properties > Index Manager > Add.

  2. Type the Index Name.

    If you do not enter an index name, the attribute is automatically assigned as the index name.

    IMPORTANT:  The $ character is used as a delimiter for attribute values. If you use the $ character in your index name you must use a preceding backslash (/) character to escape the $ character when working with indexes via LDAP.

  3. Select an Attribute.

  4. Select the index Rule.

    • Value: Matches the entire value or the first part of the value of an attribute. For example, value matching could be used to find entries with a "LastName" that is equal to "Jensen," and entries with a "LastName" that begins with "Jen."

    • Presence: Requires only the presence of an attribute rather than specific attribute values. A query to find all entries with a "Login Script" attribute would use a presence index.

    • Substring: Matches a subset of the attribute value string. For example, a query to find a "LastName" with "der" would return matches for "Derington," "Anderson," and "Lauder."

      A substring index is the most resource intensive index to create and maintain.

  5. Click OK to update the index table.

  6. Click Apply to restart limber as a background process and initiate the change.


Deleting an Index

Indexes might outlive their usefulness. You can delete user-defined and auto-created indexes that are no longer a benefit. Use Predicate Stats to help you know which indexes might be less useful.

  1. In ConsoleOne, right-click the Server object > click Properties > click Index Manager > click Delete.

  2. Select the user or auto added index you want to delete.

  3. Click Delete > OK to update the index table.

  4. Click Apply to restart limber as a background process and initiate the change.


Taking an Index Offline

During peak times you may want to tune performance by temporarily taking indexes offline. For example, to achieve additional bulk-load speed, you might want to suspend all of the user-defined indexes. Because each object addition or modification requires updating defined indexes, having all indexes active might slow down bulk-loading of data. After the bulk-load is completed, the indexes can be brought online again.

  1. In ConsoleOne, right-click the Server object > click Properties > click Index Manager > click Properties.

  2. Select the indexes you want to take offline > click Take Offline.

    The index state changes from Online to Offline in the display table. An index can be in one of the following states:

    • Online: Currently running

    • Offline: Suspended; can be started again by clicking Bring Online

    • New: Waiting to move to Online

    • Deleted: Waiting to be removed from the index table

  3. Click OK.


Managing Indexes on Other Servers

If you've found a particular index to be useful on one server, and you see the need for this index on another server, you can copy the index definition from one server to another. In reviewing predicate data, you might also find just the opposite case: an index that was meeting a need for several servers is no longer useful on one of these servers. In that case, you could delete the index from the single server that isn't benefitting from the index.

Index Manager allows you to target a single instance of an index without impacting all instances.

  1. In ConsoleOne, right-click the Server object > click Properties > click Index Manager > click Other Servers.

  2. To copy an index, select the server you want to copy the index to and choose Create Index.

    You can use Load Servers to browse to a server if it is not included in the server list.

    If an index with the same attribute and type is found on the destination server, the name and state of that index is changed to the name and state of the index being copied.

  3. To delete an index, select the server holding the index you want to delete and choose Delete Index.

  4. Click Close.


Using the ndsindex Utility to Manage Indexes on Linux and Solaris Systems

You can use the ndsindex utility to create, list, or delete indexes on Linux or Solaris systems.

Apart from performance reasons, indexes must exist if you want to use the Server Side Sorting (SSS) control or the Virtual List View (VLV) control to perform LDAP searches on the eDirectory LDAP Server. The eDirectory Server holds the indexes maintained by eDirectory. The ndsindex utility helps manage such indexes on Linux or Solaris systems.


Table 48. ndsindex Options

Option Description

-h

Hostname. Specifies the DNS name or IP address of the NDS LDAP Server. The default server is the local host.

-p

Port. Specifies the port number of the NDS LDAP Server. The default port is 389.

-D

user LDAP DN. Specifies the LDAP DN of the user in eDirectory.

-W

Prompts for the password of the LDAP DN specified.

-w

Password. Specifies the password of the LDAP DN in eDirectory.

-n

NDS Server DN. Specifies the NDS Server DN.

indexDefinition

Each indexDefinition holds all the information for one particular index. The string representation is, "<indexName>;<attributeName>;<matchingRule>".

indexName

The name you choose for your index.

attributeName

Name of the eDirectory attribute to be indexed.

matchingRule

matchingRule can be VALUE, SUBSTRING or PRESENCE.

VALUE: Value matching optimizes queries that involve matching the entire value or the first part of the value specified in the search filter.

SUBSTRING: Substring matching optimizes queries that involve matching a few characters of the value specified in the search filter.

PRESENCE: Presence matching optimizes queries that involve only checking for the presence of a specified attribute.



Previous | Next