[PATCH] Implement Virtual List View (VLV) LDAP control (OID 2.16.840.1.113730.3.4.9)

Garming Sam garming at catalyst.net.nz
Thu Mar 10 04:32:19 UTC 2016


Hi,

Attached are some patches to implement the LDAP virtual list view
control within Samba. VLV is essentially a more elaborate version of
paged results that allows you to ask for some sliding window of results
from a previously performed sorted search (with the use of a cookie).
The idea is to allow GUI tools to avoid repeating unnecessary searches,
returning more results than it needs or forcing the server to
re-evaluate a search (allowing better performance over standard LDAP
searches).

Included in the patches is a extensive test of VLV, in particular,
modifications of the list while a VLV search exists. For instance,
updating attributes of list items affect outstanding VLV requests, but
they will not affect the existing sort order returned. This is
accomplished is by storing a list of GUIDs to the results, which should
be indexed, which is likely to be similar to how Windows implements the
control.

If we directly compare the list of results between us and Windows, there
is still a major difference which lies with the sort ordering. At the
moment, the patches rely on the existing sort capabilities within Samba
(essentially ASCII, which ignores Unicode + locale, unlike Windows). We
have further patches to improve the sorting which utilize the ICU
package, however, some minor differences still remain. Furthermore, the
effect on overall performance will have to be evaluated as all strings
would now likely have to pass through a number of normalization and
unicode routines, whereas before, a fast-path with ASCII existed.


Regardless, simply implementing the virtual list view is the goal of
these patches (not the sort). If there are any thoughts or comments,
that would be much appreciated.

Cheers,

Garming
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-sort-enable-custom-behaviour-on-critical-control.patch
Type: text/x-diff
Size: 2282 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20160310/39b5af27/0001-sort-enable-custom-behaviour-on-critical-control-0001.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Implement-Virtual-List-View-VLV.patch
Type: text/x-diff
Size: 57295 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20160310/39b5af27/0002-Implement-Virtual-List-View-VLV-0001.diff>


More information about the samba-technical mailing list