An index is used to optimize an LDAP operation. Without an index, 389-DS has to perform a partial or even full table scan. A full database scan can easily take 10 seconds or more in a large installation. * automountMapKey: eq, pres (was: eq) * autoMountMapName: eq * ipaConfigString: eq * ipaEnabledFlag: eq * ipaKrbAuthzData: eq, sub * accessRuleType: eq * hostCategory: eq automountMapKey and autoMountMapName filters are used for automount. Installation and service discovery (CA, KRA) use ipaConfigString to find active services and CA renewal master. SSSD filters with ipaEnabledFlag, accessRuleType, and hostCategory to find and cache HBAC rules for each host. ipaKrbAuthzData is used by ipa host-del. The framework performs a '*arg*' query, therefore a sub index is required, too. Partly fixes: https://pagure.io/freeipa/issue/7786 Fixes: https://pagure.io/freeipa/issue/7787 Fixes: https://pagure.io/freeipa/issue/7790 Fixes: https://pagure.io/freeipa/issue/7792 Signed-off-by: Christian Heimes <cheimes@redhat.com> Reviewed-By: Rob Crittenden <rcritten@redhat.com> Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
The update files are sorted before being processed because there are cases where order matters (such as getting schema added first, creating parent entries, etc). Updates are applied in blocks of ten so that any entries that are dependant on another can be added successfully without having to rely on the length of the DN to get the sorting correct. The file names should use the format #-<description>.update where # conforms to this: 10 - 19: Configuration 20 - 29: 389-ds configuration, new indices 30 - 39: Structual elements of the DIT 40 - 49: Pre-loaded data 50 - 59: Cleanup existing data 60 - 69: AD Trust 70 - 79: Reserved 80 - 89: Reserved These numbers aren't absolute, there may be reasons to put an update into one place or another, but by adhereing to the scheme it will be easier to find existing updates and know where to put new ones.