[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Search size limits



Alan,

Thanks for the response.

I think that I understand the general issues that you've stated. It
would seem to me that my situation with the LDAP server is a
specific case that also need to be addressed.

1) The LDAP search operation does not provide any referrals
unless the referrals are provided as an LDAP result entry.
2) I have a particular implementation where finding more than
one entry in the result would indicate a data corruption error.
To enhance performance both at the client and server it is a
necessity to have the server abort the search once the size limit
is reached.

My client code also needs to work with any LDAP server
implementation. For the short term I will change my client
code implementation to asynchronous and abandon the
search when the first entry is received.

This leaves me to another question regarding server controls
which I will ask in another message.

JR

Alan Lloyd wrote:

> IMHO - there are a few issues to consider.
>
> In X.500 a distributed Search which can be multicast to other servers,
> the originating DSA  may end up with unequal timed responses which when
> correlated exceed the original size limit demanded - This is only
> determined on Results processing and Results correlation. At this point
> some server responses get discarded and continuation references set to
> these servers so that the client software can detect the situation and
> follow up as necessary.
>
> It is an operational policy and implementation  issue if one searches an
> area in the directory and reaches size limit - if one procedes to search
> the rest of the directory or just to the next valid entry to see if the
> limit could be exceeded in reality.
> In the case of distributed servers - returning their results for
> correlation - it is difficult to deal with "stopping" mid stream.
> In the case of a single server - stopping with size limit met - without
> any references to what may be left may not be useful to some.
>
> Its a hard one - because its information usage and search policy
> dependent and distributed DSAs make it more difficult. X.500 has the
> right idea re providing continuation references when size limit has been
> detected.
>
> X.500 states:The sizeLimit is only applicable to List and Search
> operations. It indicates the maximum number of objects to be returned.
> In the case of size limit exceeded, the results of List and Search may
> be an arbitrary selection of the accumulated results, equal in number to
> the size limit. Any further results shall be discarded.
>
> I hope this helps
>
> regards alan
>
> > -----Original Message-----
> > From: JR Heisey
> > Sent: Saturday, May 22, 1999 5:34 AM
> > To:   ietf-ldapext@netscape.com; openldap-devel@OpenLDAP.org
> > Subject:      Search size limits
> >
> > I've noticed that when a size limit for a search is set the
> > OpenLDAP server actually searches for one plus the size
> > limit then returns LDAP_SIZELIMIT_EXCEEDED or
> > LDAP_SUCCESS as appropriate.
> >
> > This is a problem when an attribute in the search filter is
> > not indexed. I have a situation where I one want one result
> > entry because I know that I will only ever have one entry to
> >
> > match my search filter. However due to the interpretation
> > of LDAP_SIZELIMIT_EXCEEDED the server continues it's
> > search until it determines that no more extries exist.
> >
> > Wouldn't a more appropriate server behavior be to return as
> > soon as the size limit is met with a return code of
> > LDAP_SIZELIMIT_MET. It may be appropriate to retire
> > LDAP_SIZELIMIT_EXCEEDED error code and behavior in
> > favor of a LDAP_SIZELIMIT_MET behavior. I see no reason
> > for a server to continue a search once the size limit has
> > been met.
> >
> > Any comments?
> > --
> > -
> > J. R. Heisey
> >

--
-
J. R. Heisey