Alex Karasulu wrote:
On Sun, Mar 23, 2008 at 6:15 AM, Howard Chu <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:Using cursors for walking entry lists (and saving the cursor state) is certainly useful inside the server, but there's nothing you can safely gain from the client side. It kind of sounds like you're talking about Virtual List Views, not paged results. Remember that search responses in LDAP/X.500 are unordered by definition. Therefore it makes no sense for a standards-compliant client to send an initial request with a Paging control saying "start at responses 200-300" because the order in which entries will be returned is not defined. You need something like VLV which requires SSS to even begin thinking about this; it's not a job for Paged Results. Yes you're totally right, I've confused the two controls. Thanks for the correction. Either way we still need to implement both. Does OpenLDAP implements both of these controls? Any opinions or advice regarding implementation and or the actual utility of these controls?
OpenLDAP currently has a no-op implementation of SSS and no VLV. There's been some discussion about implementing them, but no one has been interested enough to do it so far. The main problem being that SSS gets to be rather annoying in the context of a truly distributed DIT, plus the CPU time involved makes the whole proposition unscalable. This is one of those cases where, given 100s of clients talking to a single server, it makes more sense to distribute the work to the clients than to run hundreds of sort variations on the single server.
Netscape/iPlanet obviously took the opposite view, and decided there would probably be small enough variation in the types of searches being used that you could index them explicitly to avoid the overhead. We may follow on that road as well, and just return UnwillingToPerform for searches that were not indexed.
-- -- Howard Chu Chief Architect, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/
