[horde] Turba LDAP slow to list

Simon Wilson simon at simonandkate.net
Wed Apr 8 01:23:47 UTC 2009


I have Turba version 2.3.1 connected to an OpenLDAP server version  
2.3.27. The user in question has about 200 contacts all sitting nicely  
in LDAP (imported from CSV).

Using IMP it matches email addresses in about 1 second. Works great.

Using Turba to search takes about 15 seconds, so not brilliant but  
manageable. Adding a new contact takes about 4 seconds, deleting one  
takes forever as it then goes back to a list view afterwards -
Using Turba to LIST, i.e. just click on Address Book, or on a letter  
to list contacts starting with that letter takes about 2 minutes.  
Doesn't time out, but unusable really.

Turba is binding to the LDAP server in the context of  
ou=useruid,ou=personal_addressbook,dc=simonandkate,dc=lan, as a Horde  
user that has write access to the addressbooks ou. (I had issues with  
getting it to work with the default suggestion of binding as the user  
as my user entries are not identified by uid in the tree. I didn't  
want to bind it as root). Everything works fine, just very slow to  
list...

Any suggestions on how i can speed up the listings? The LDAP server is  
not running low on RAM or paging.

Cheers

Simon Wilson


My Turba sources.php:

  $_ldap_uid = Auth::getBareAuth();
  $_ldap_basedn = 'dc=simonandkate,dc=lan';
  $cfgSources['personal_ldap'] = array(
      'title' => _("My Address Book"),
      'type' => 'ldap',
      'params' => array(
          'server' => 'ldapserver',
          'tls' => false,
          'root' => 'ou=' . $_ldap_uid . ',ou=personal_addressbook,' .  
$_ldap_basedn,
          'bind_dn' => 'cn=horde,ou=accounts,' . $_ldap_basedn,
          'bind_password' => 'super-secret password in here',
         'dn' => array('uid'),
          'objectclass' => array('top',
                                 'person',
                                 'turbaContact',
                                 'inetOrgPerson',
                                 'calEntry',
                                 'organizationalPerson'),
          'scope' => 'one',
          'charset' => 'utf-8',
          'version' => 3
      ),
      'map' => array(
          '__key' => 'dn',
          '__uid' => 'uid',
          '__type' => 'turbaType',
          '__members' => 'turbaMembers',
          'name' => 'cn',
          'email' => 'mail',
          'lastname' => 'sn',
	 'firstname' => 'givenName',
          'title' => 'title',
          'company' => 'organizationname',
          'businessCategory' => 'businesscategory',
          'workAddress' => 'postaladdress',
          'workPostalCode' => 'postalcode',
          'workPhone' => 'telephonenumber',
          'fax' => 'facsimiletelephonenumber',
          'homeAddress' => 'homepostaladdress',
          'homePhone' => 'homephone',
          'cellPhone' => 'mobile',
          'notes' => 'description',
          'office' => 'roomNumber',
          'department' => 'ou',
          'nickname' => 'displayName',
          'website' => 'labeledURI',
          'pgpPublicKey' => 'object_pgppublickey',
          'smimePublicKey' => 'object_smimepublickey',
          'freebusyUrl' => 'calFBURL',
      ),
      'search' => array(
          'name',
          'email',
          'businessCategory',
          'title',
          'homePhone',
          'workPhone',
          'cellPhone',
          'homeAddress'
      ),
      'strict' => array(
          'dn',
      ),
      'approximate' => array(
          'cn',
      ),
      'export' => true,
      'browse' => true,
  );


More information about the horde mailing list