Service manual

Costs: How Updates Affect Indexes
Chapter 7 Tuning Indexing 131
Directory Serveroffers a further optimization allowing initial substring searches of
only one character before the wildcard. Thus a search for
(sn=a*),butnot
(sn=*a*) or (sn=*a), can also be accelerated when a substring index is available,
for example.
Notice that Directory Server builds an index of substrings according to its own
built-in rules. These substrings are not configurable by the system administrator.
When Directory Server receives an update request for an entry having an attribute
indexedforsubstrings,it mustdeterminewhether the entry must be removed from
the index, determine whether and how modifications to the entry affect the index,
determine whether entry IDs or lists of entry IDs must be added or removed from
the index, and must then carry out any necessary modifications before returning
acknowledgement of the update to the client application. The number of updates
depends on the length of the attribute value string.
Maintaining substring indexes is generally quite costly. As the cost is a function of
the length of the string indexed, avoid unnecessary substring indexes, especially
for attributeshavingpotentiallylong string valuessuch as
description.Substring
indexescannotbeappliedtobinaryattributessuchasphotos.
Browsing (Virtual List View) Indexes
Figure 7-4 depicts a browsing index for a virtual lists view. It shows how this index
depends on the virtual list view information. That is, the
vlvBase, vlvScope,
vlvFilter,andvlvSort attribute values for the browsing index. Entry IDs in this
type of index are ordered according to the
vlvSort criteria.
Figure 7-4 Representation of a Browsing Index
VLV information
Entry IDs
# entry-id: 23
dn: uid=yyorgens,ou=People,dc=example,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
uid: yyorgens
givenName: Yolanda
sn: Yorgenson
cn: Yolanda Yorgenson
mail: yyorgens@example.com
secretary: uid=bcubbins,ou=People,dc=example,dc=com
nsRoleDN: cn=managers,ou=People,dc=example,dc=com
vlvSearch
entryidentryid entryid entryid entryid entryid entryid entryid entryid ...
vlvBase: “dc=example,dc=com”
vlvScope: subtree
vlvFilter: (objectclass=inetOrgPerson)
vlvSort: cn givenname sn