Hi guys,
as I'm busy implenting this control, I have some questions about the RFC
and some choices to be made.
The RFC (http://www.rfc-archive.org/getrfc.php?rfc=2696) is not really
clear on some aspects concerning the size limit. Let me say I'm a bit
baffled by the choice to define a paged size value in the control, when
the sizeLimit would have been plain ok.
So here aere my questions :
1) considering that we have a server sizeLimit, a request sizeLimit and
a page size limit, I'm wondering if we can simply ignore the request
size limit. The page size limit can change, even if the paged result is
being processed, but the RFC says "If the page size is greater than or
equal to the sizeLimit value, the server should ignore the control as
the request can be satisfied in a single page". Should I consider that
the 'sizeLimit' is the request sizeLimit ? My personnal bet is : yes.
2) so second question : what if in one of the subsequent requests, the
page size limit is changed and is superior to the sizeLimit ? This
request sizeLimit cannot have changed, otherwise the search request
would have been considered as a new search ( "...a searchRequest with
all values identical to the initial request with the exception of the
messageID, the cookie, and optionally a modified pageSize..."). My
personal guess is again to consider that we should deliver as much
entries as we can, up to the sizeLimit, and generate a LDAP error #4 :
sizeLimitExceeded.
3) regarding the search request immutability : it's pretty hard to check
that the filter hasn't changed, as it may be a complex one, with a
different structure and a a different order. I think that this
constraint is fully absurd, as the client will obviously create one
request, and send a null cookie every time it will send a new paged
search, so I don't see the validity of such a check. Nevertheless,
should we try to implement such a check ? My personal guess, again, is
that it's useless.
Wdyt ?
I'm also interested to have some feedback about how this control is
handled by the other ldap servers, considering the many factors
influencing this control :
- internal server size limit
- how many of such paged search can be handled for a single client
- what happens when we send a bad cookie to the server
- what happen when we play with the sizeLimit parameter
Last, not least, as we are using cursors to get the entries from the
backend, we are able to move forward or backward. It would be
interesting to extend this control to allow a backward pagedSearch (for
instance, providing a negative paged size). Would it be interesting ?
I'm waiting for your opinion an enlightenments.
Many thanks!
--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org