From ed436e4b62c9d3ec02111d486ba77bd09e9838fc Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Wed, 5 Dec 2018 17:55:58 +0100 Subject: [PATCH] Add more LDAP indices 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 Reviewed-By: Rob Crittenden Reviewed-By: Alexander Bokovoy --- install/share/indices.ldif | 50 +++++++++++++++++++++++++++++++ install/updates/20-indices.update | 44 +++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) diff --git a/install/share/indices.ldif b/install/share/indices.ldif index f8eaff4c6..4ef0aa606 100644 --- a/install/share/indices.ldif +++ b/install/share/indices.ldif @@ -216,6 +216,40 @@ ObjectClass: top ObjectClass: nsIndex nsSystemIndex: false nsIndexType: eq +nsIndexType: pres + +dn: cn=automountMapName,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: automountMapName +ObjectClass: top +ObjectClass: nsIndex +nsSystemIndex: false +nsIndexType: eq + +dn: cn=ipaConfigString,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: ipaConfigString +objectClass:top +objectClass:nsIndex +nsSystemIndex: false +nsIndexType: eq + +dn: cn=ipaEnabledFlag,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: ipaEnabledFlag +objectClass:top +objectClass:nsIndex +nsSystemIndex: false +nsIndexType: eq + +dn: cn=ipaKrbAuthzData,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: ipaKrbAuthzData +objectClass: top +objectClass: nsIndex +nsSystemIndex: false +nsIndexType: eq +nsIndexType: sub dn: cn=ipakrbprincipalalias,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config changetype: add @@ -343,3 +377,19 @@ objectClass: top objectClass: nsIndex nsSystemIndex: false nsIndexType: eq + +dn: cn=accessRuleType,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: accessRuleType +objectClass:top +objectClass:nsIndex +nsSystemIndex: false +nsIndexType: eq + +dn: cn=hostCategory,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: hostCategory +objectClass:top +objectClass:nsIndex +nsSystemIndex: false +nsIndexType: eq diff --git a/install/updates/20-indices.update b/install/updates/20-indices.update index 49bd3b646..f8691f24c 100644 --- a/install/updates/20-indices.update +++ b/install/updates/20-indices.update @@ -151,6 +151,36 @@ default:ObjectClass: top default:ObjectClass: nsIndex default:nsSystemIndex: false default:nsIndexType: eq +add:nsIndexType: pres + +dn: cn=automountMapName,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +default: cn: automountMapName +default: ObjectClass: top +default: ObjectClass: nsIndex +default: nsSystemIndex: false +default: nsIndexType: eq + +dn: cn=ipaConfigString,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +default: cn: ipaConfigString +default: objectClass:top +default: objectClass:nsIndex +default: nsSystemIndex: false +default: nsIndexType: eq + +dn: cn=ipaEnabledFlag,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +default: cn: ipaEnabledFlag +default: objectClass:top +default: objectClass:nsIndex +default: nsSystemIndex: false +default: nsIndexType: eq + +dn: cn=ipaKrbAuthzData,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +default: cn: ipaKrbAuthzData +default: objectClass: top +default: objectClass: nsIndex +default: nsSystemIndex: false +default: nsIndexType: eq +default: nsIndexType: sub dn: cn=ipakrbprincipalalias,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config default:cn: ipakrbprincipalalias @@ -315,3 +345,17 @@ default: objectClass: top default: objectClass: nsIndex default: nsSystemIndex: false default: nsIndexType: eq + +dn: cn=accessRuleType,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +default: cn: accessRuleType +default: objectClass:top +default: objectClass:nsIndex +default: nsSystemIndex: false +default: nsIndexType: eq + +dn: cn=hostCategory,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config +default: cn: hostCategory +default: objectClass:top +default: objectClass:nsIndex +default: nsSystemIndex: false +default: nsIndexType: eq