directory-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Carlo.Acco...@ibs-ag.com>
Subject Hi Again, substring searches among 80K entires - still an issue
Date Mon, 18 Jun 2012 20:12:21 GMT
This is new information related to this issue: https://issues.apache.org/jira/browse/DIRSERVER-1724

On Thursday I built from the trunk version 1349996. Created new system and schema partitions
from built binaries.

I then created my partition, adding several indexed attributes (shown below) and loaded 80k
LDIF entries via studio  Version: 2.0.0.v20120224 and the JNDI provider.
All indexed attributes are searchable as exact match and by substring immediately after the
ldif import via studio.  Results are fast. < 1 second

Once the displayName, or cn or givenName is updated (via studio or java method below) the
entry cannot be found via substring searching against these attributes and the
duration to return (no results) is slow ~ 10 seconds. And I think it's timing out even though
there is no exception.
The Exact match still works almost instantly. Very fast!  Thank you.

The way we've configured the directory, cn= is not a valid RDN.
The attributes I'm searching for aren't part of the DN or RDN.
Our DN's are in the format  uid=1235456,ou=x,o=cpro  - Could this be an issue?

Is there something else that needs to update or be updated when we modify an indexed attribute?
Any ideas are appreciated. Thanks.


Example method of how we're modifying attributes with the JNDI api.

      public void setAttribute(LdapContext ctx, String strDn, String strAttribute, String
strValue)
      throws DirectoryAdapterException{
            if (ctx == null){
                  ctx = bind(null); // GET ADMIN CONTEXT IF NULL
            }
            ModificationItem[] mods = new ModificationItem[1];
            mods[0] = new ModificationItem(LdapContext.REPLACE_ATTRIBUTE, new BasicAttribute(strAttribute,
strValue));
            try {
                  ctx.modifyAttributes(strDn, mods);
            } catch (InvalidAttributeValueException iae){
                  throw new DirectoryAdapterException(iae,DirectoryAdapterException.CANNOT_MODIFY_ENTRY,processControls(ctx));
} catch (AttributeModificationException ame){
                  throw new DirectoryAdapterException(ame,DirectoryAdapterException.CANNOT_MODIFY_ENTRY,processControls(ctx));
            } catch (NamingException ne){
                  throw new DirectoryAdapterException(ne,DirectoryAdapterException.CANNOT_MODIFY_ENTRY,processControls(ctx));
            } finally{
                  close(ctx);
            }
      }

These are the indexes :

dn: ads-indexAttributeId=apacheAlias,ou=indexes,ads-partitionId=cpro,ou=part
itions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheAlias
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=apacheOneAlias,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheOneAlias
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=apacheOneLevel,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheOneLevel
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=apachePresence,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apachePresence
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=apacheRdn,ou=indexes,ads-partitionId=cpro,ou=partit
ions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheRdn
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=apacheSubAlias,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheSubAlias
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=apacheSubLevel,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheSubLevel
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=cn,ou=indexes,ads-partitionId=cpro,ou=partitions,ad
s-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: cn
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=description,ou=indexes,ads-partitionId=cpro,ou=part
itions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: description
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=displayName,ou=indexes,ads-partitionId=cpro,ou=part
itions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: displayName
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=employeeNumber,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: employeeNumber
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=entryCSN,ou=indexes,ads-partitionId=cpro,ou=partiti
ons,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: entryCSN
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=entryUUID,ou=indexes,ads-partitionId=cpro,ou=partit
ions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: entryUUID
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=krb5PrincipalName,ou=indexes,ads-partitionId=cpro,o
u=partitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: krb5PrincipalName
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=mail,ou=indexes,ads-partitionId=cpro,ou=partitions,
ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: mail
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=member,ou=indexes,ads-partitionId=cpro,ou=partition
s,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: member
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=o,ou=indexes,ads-partitionId=cpro,ou=partitions,ads
-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: o
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=objectClass,ou=indexes,ads-partitionId=cpro,ou=part
itions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: objectClass
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=ou,ou=indexes,ads-partitionId=cpro,ou=partitions,ad
s-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: ou
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=pwdPolicySubEntry,ou=indexes,ads-partitionId=cpro,o
u=partitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: pwdPolicySubEntry
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=roomNumber,ou=indexes,ads-partitionId=cpro,ou=parti
tions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: roomNumber
ads-enabled: TRUE
ads-indexcachesize: 100

dn: ads-indexAttributeId=uid,ou=indexes,ads-partitionId=cpro,ou=partitions,a
ds-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: uid
ads-enabled: TRUE
ads-indexcachesize: 100



Regards,
Carlo Accorsi



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message