Hi,

I have a problem with mdb and modify operations on very large groups. 
Specifically deleting members from those groups.
Removing 10 members from a group with 25000 members takes 23 seconds. Which 
also means, all other clients that want to do something hang.
Deleting a user from multiple big groups takes minutes before it finishes.
Adding members to a large group is quick though.

When this delete is running, the cpu goes also up to 100%.

It looks like it has to do with the index that I have on uniqueMember.
If I remove the index on uniqueMember, the delete of members in big groups is 
fast.

System details are
CentOS 6 64bit
OpenLDAP 2.4.35
slapd.conf below

Is this something normal/exptected or is it maybe a bug?

Steps to reproduce
- Install OpenLDAP 2.4.35
- Import a base ldif
- Add a group with 25000 users
- Remove 10 members from the group via ldapmodify

Example group
dn: cn=x3zolgnanlmpzj1nfk21,ou=groups,dc=example,dc=com
objectClass: top
objectClass: groupOfUniqueNames
ou: groups
cn: x3zolgnanlmpzj1nfk21
description: aw88bob79vvqffv1fhii
uniqueMember: 
[email protected],ou=people,dc=example,dc=com
...

Below is the slapd.conf from a test system where I reproduced it.
I used a very minimal config on the test system.

---- slapd.conf ----
include /usr/share/openldap2.4/schema/core.schema
include /usr/share/openldap2.4/schema/cosine.schema
include /usr/share/openldap2.4/schema/corba.schema
include /usr/share/openldap2.4/schema/inetorgperson.schema
include /usr/share/openldap2.4/schema/openldap.schema

pidfile         /var/run/ldap2.4/slapd.pid
argsfile        /var/run/ldap2.4/slapd.args

modulepath      /usr/lib64/oldap24/openldap2.4
moduleload      back_monitor.la

loglevel stats sync

serverID        21      ldap://ldap.example.com

database        mdb
suffix          "dc=example,dc=com"
rootdn          "cn=manager,dc=example,dc=com"
rootpw          secret
directory       /var/lib/ldap2.4/example.com
dbnosync
maxsize 107374182400

conn_max_pending_auth 2000

index   objectClass eq
index   uniqueMember eq
index  entryCSN,entryUUID eq

monitoring on

database        config
rootdn          "cn=admin,cn=config"
rootpw          secret

database        monitor
rootdn          cn=monitor
rootpw          secret
---- slapd.conf ----





Thanks
Marco



Reply via email to