Issue 487 - ldap_result always transfers entire query result over network
Summary: ldap_result always transfers entire query result over network
Status: VERIFIED FIXED
Alias: None
Product: OpenLDAP
Classification: Unclassified
Component: slapd (show other issues)
Version: unspecified
Hardware: All All
: --- normal
Target Milestone: ---
Assignee: OpenLDAP project
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2000-03-21 19:09 UTC by kpinc@artic.edu
Modified: 2014-08-01 21:06 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description kpinc@artic.edu 2000-03-21 19:09:07 UTC
Full_Name: Karl O. Pinc
Version: 1.2.9-5
OS: Linux, RedHat 6.1
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (198.40.24.216)


It appears that even when ldap_result is called with the "all" argument set to
0,
the entire query result is tranfered over the network for each ldap_result
call.
When the result set is large, performance is terrible.

I'm running nss_ldap version 105, and trying to use ldap to store unix groups.
Programs that getgrent (which returns "the next" group entry) through the group

database takes 7 seconds/getgrent call.  We've about 6000 entries in the group 
table.  This is clearly unusable.

Let me know if you need more info.

Thanks for the work.
Comment 1 Kurt Zeilenga 2000-03-21 19:38:48 UTC
At 07:09 PM 3/21/00 GMT, kpinc@artic.edu wrote:
>It appears that even when ldap_result is called with the "all" argument set to
>0,
>the entire query result is tranfered over the network for each ldap_result
>call.

The parameters of ldap_result to not affect how the server responds to
requests, they affect how ldap_result behaves while parsing the server
provided results.  See ldap_result(3) for details.

>When the result set is large, performance is terrible.

Issue requests that result in smaller results, but...

>I'm running nss_ldap version 105, and trying to use ldap to store unix groups.
>Programs that getgrent (which returns "the next" group entry) through the group

As entries in containers are not orderred, I would suggest that one ldap search
be issued for each sequence of getgrent() calls made by application (sets
delimited by setgroupent()/setgrent()/endgrent calls).  One could use
ldap_result(all=0) to set through the results as needed for getgrent() or
use ldap_result(all=1) and ldap_first/next_entry().


Comment 2 Kurt Zeilenga 2000-03-27 16:43:11 UTC
changed notes
changed state Open to Closed
Comment 3 OpenLDAP project 2014-08-01 21:06:10 UTC
close per submitter request