PingDirectory

Creating a global attribute index

Create a global attribute index for PingDirectoryProxy server to use as a optional index.

About this task

The relative distinguished name (RDN) index is referenced whenever a modify, delete, or base search is requested. The RDN index is needed when the LDAP request contains the complete distinguished name (DN) of the targeted entry. If the entry-balancing request processor is not configured to prime the RDZ index at startup, then the index is populated over time as LDAP requests are processed.

A global attribute index is an optional index and is referenced when the PingDirectoryProxy server is handling a search request with an equality filter involving an attribute, such as the telephoneNumber attribute with the telephoneNumber=+11234567890 filter.

Because the PingDirectoryProxy server doesn’t know what the data within the subtree view looks like or how it is searched, it can’t create or recommend default global attribute index definitions. The creation of a global attribute index is based on the range of equality-filtered search requests processed by the PingDirectoryProxy server. The PingDirectory server must also have an equality or ordering index type for the associated attribute Local database (DB) Index.

The common candidates for global attribute indexing are the uniquely-valued equality-indexed attributes on the external servers, such as uid, mail and telephoneNumber. These attributes don’t require unique values for use as global attribute indexes by the entry-balancing request processor.

Steps

  • Create a global attribute index using the dsconfig tool with the create-global-attribute-index option.

    Example:

    In this example, a PingDirectoryProxy server deployment expects to process frequent searches of the form (&(mail=user@example.com)(objectclass=person)). The mail attribute is indexed for equality searches on each of the external servers behind the PingDirectoryProxy server. Because the filter is constructed with an equality match and & clause, you can use a global attribute index on the mail attribute to avoid forwarding the search request to each entry balanced dataset.

    $ bin/dsconfig create-global-attribute-index \
      --processor-name ou_people_dc_example_dc_com-eb-req-processor \
      --index-name mail --set prime-index:true \

Result

The index begins populating as search requests are made to the PingDirectoryProxy server that involve the mail attribute.

You can use the reload-index tool to fully populate the index for optimal performance as described in Reloading the global indexes.