7.2 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.

NetIQ 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

cn_SS

Revision

uniqueID_SS

extensionInfo

ldapAttributeList

ldapClassList

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:Although 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 NetIQ iManager, 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.

eDirectory also provides an option to create or delete compound indexes. You can use this option to create value indexes on multiple attributes. This helps in improving the search performance with multiple attributes. For more details on how to create or delete compound indexes, see, Using the NetIQ Import Conversion Export Utility to Manage Compound Indexes.

7.2.1 Creating an Index

  1. In NetIQ iManager, click the Roles and Tasks button Roles and Tasks button.

  2. Click eDirectory Maintenance > Index Management.

  3. Select a server from the list of available servers.

  4. On the Modify Indexes page, click Create.

  5. Enter 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.

  6. Select an attribute.

  7. 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.

  8. Click OK to update the index table.

  9. Click Apply to restart Limber as a background process and initiate the change.

7.2.2 Deleting an Index

Indexes might outlive their usefulness. You can delete user-defined and auto-created indexes that are no longer a benefit.

  1. In NetIQ iManager, click the Roles and Tasks button Roles and Tasks button.

  2. Click eDirectory Maintenance > Index Management.

  3. Select a server from the list of available servers.

  4. On the Modify Indexes page, select the user- or auto-added index you want to delete.

  5. Click Delete to update the index table.

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

7.2.3 Taking an Index Offline

During peak times you might 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 NetIQ iManager, click the Roles and Tasks button Roles and Tasks button.

  2. Click eDirectory Maintenance > Index Management.

  3. Select a server from the list of available servers.

  4. On the Modify Indexes page, select the indexes you want to take offline, then click Change State.

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

    • Online : Currently running.

    • Offline : Suspended. The index can be started again by clicking Bring Online.

    • New : Waiting to move to Online.

    • Deleted : Waiting to be removed from the index table.

  5. Click Apply.

7.2.4 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 NetIQ iManager, click the Roles and Tasks button Roles and Tasks button.

  2. Click eDirectory Maintenance > Index Management.

  3. Select a server from the list of available servers.

  4. To copy an index definition to another server on the same tree, click Modify Index Location.

  5. Select the index definition you want to copy.

    When you select an index, servers in the tree providing that index are listed.

  6. Use the columns provided to move a copy of the index to the desired server.

  7. Click Apply.

7.2.5 Using the NetIQ Import Conversion Export Utility to Manage Indexes

You can use the NetIQ Import Conversion Export utility to create or delete indexes.

You must use an LDIF file to create or delete indexes. After the LDIF file is imported, you can trigger Limber to initiate the indexing activity. Otherwise, indexing takes place when Limber triggers automatically.

To specify an index in an LDIF file, you must supply values, because the following cases ignore strings that are separated by a dollar ($) sign.

Order

String

Description

1

Index version

Reserved for future use. In eDirectory, this should always be set to zero (0).

2

Index name

Specifies the user-defined name for the index, such as .Family Name. or .Zip Code. The string should not contain the dollar ($) sign.

3

Index state

Specifies the state of the index. When defining an index, this field should be set to 2 (online). eDirectory supports the following values:

  • 0 - Online, which indicates that the index is up and working.

  • 1 - Suspended, which indicates that the index is not used in queries and is not updated.

  • Bringing Online, which indicates that the index is in the process of being created. It has two states, Bringing Online (low) and Bringing online (high).

    • 2 - Bringing Online (low) indicates that the index creation process on the said attribute is pending.

    • 3 - Bringing Online (high) indicates that the index creation is in progress.

  • 4 - Creation, which indicates that the index has been defined and is waiting for the background process to run.

The background process changes the state after the building begins.

4

Index rule

Specifies the type of matching:

  • 0 - Value Matching, which optimizes queries that involve the entire value or the first part of the value. For example, a query for all entries with a surname equal to Jensen or beginning with Jen.

  • 1 - Presence Matching, which optimizes queries that involve only the presence of an attribute. For example, a query for all entries with a surname attribute.

  • 2 - Substring Matching, which optimizes queries that involve a match of a few characters. For example, a query for all entries with a surname containing .der. This query returns entries with the surnames of Derington, Anderson, and Lauder.

5

Index type

Specifies who created the index. When defining an index, you must set this value to 0. eDirectory supports the following values:

  • 0 - User Defined

  • 1 - Added on Attribute Creation

  • 2 - Required for Operation

  • 3 - System Index

6

Index value state

Specifies the source of the index. When defining an index, set this string to 1. eDirectory supports the following values:

  • 0 - Uninitialized

  • 1 - Added from Server

  • 2 - Added from Local DIB

  • 3 - Deleted from Local DIB

  • 4 - Modified from Local DIB

7

Attribute name

Specifies the NDS name for the attribute. Many attributes in eDirectory have both an LDAP name and an NDS name. This string requires the NDS name.

Example LDIF File to Create Indexes

dn: cn=testServer-NDS,o=Novell
changetype: modify
add: indexDefinition
indexDefinition: 0$indexName$2$2$0$1$attributeName

Example LDIF File to Delete Indexes

dn: cn=osg-nw5-7, o=Novell
changetype: modify
delete: indexDefinition
indexDefinition: 0$indexName$2$2$0$1$attributeName

7.2.6 Using the NetIQ Import Conversion Export Utility to Manage Compound Indexes

You can use the NetIQ Import Conversion Export utility to create or delete compound indexes.

You must use an LDIF file to create or delete indexes. After the LDIF file is imported, initiate the indexing activity by triggering Limber. Otherwise, indexing takes place when Limber triggers automatically.

To manage the list of compound indexes for a server, use the indexDefinition attribute on the NCP server object in LDAP format. For example:

0$citysurnameindex$0$0$0$1$city$surname

This represents a user defined online value index on city attribute named citysurnameindex.

You can specify multiple attributes separated by $ sign for compound indexes.

Example LDIF File to Create Compound Indexes

In the following example, LDIF creates a compound index name gnsncnindex on givenName, surname and cn attributes. Pass the index state, rule, type and value state as 0, 0, 0 and 1 respectively:

dn: cn=osg-nw5-7, o=Novell
changetype: modify
add: indexDefinition
indexDefinition: 0$gnsncnindex$0$0$0$1$given name$surname$cn

Example LDIF File to Delete Compound Indexes

dn: cn=osg-nw5-7, o=Novell
changetype: modify
delete: indexDefinition
indexDefinition: 0$gnsncnindex$0$0$0$1$given name$surname$cn

NOTE:When indexDefinition attribute is changed, you must trigger Limber for the changes to take effect. Default interval of Limber is 5 minutes.