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

Re: SSS/VLV implementation

I would suggest considering the possibility to use an overlay; there is a preliminary description about how such type of controls and exops could be implemented this way in a backend-independent fashion in the thread starting from <http://www.openldap.org/lists/openldap-devel/200411/msg00102.html>; note that although it started very recently, most of the infrastructure has already been implemented in HEAD, and it's currently exploited by the syncprov overlay, which sould be used as an example at least for the control-related code.


Bertrand Croq wrote:


I have started an implementation of SSS/VLV in slapd (not really a
complete implementation... just so that Outlook can display the content
of the directory without using the search dialog). By now, the server
can parse the request controls. Now, I am modifying back-bdb (the only
backend I plan to use) so that search entries are stored instead of being
sent as soon as they are found.

By now, instead of calling send_search_entry(...), I call
store_vlv_entry(e) that should put the entry in a queue (sorted, if
possible) and set e to NULL; then, before calling send_search_result(), I
do some computations on the stored entries and send some of them using
send_search_entry(), with the corrects response controls.

Could you tell me how the reader lock is(are?) managed? As you can see, I set
e to NULL so that bdb_cache_return_entry_r() is not called before the
entry is sent to the client. Once the entry is sent, I call
bdb_cache_return_entry_r() but in the log I get this message (only

bdb(dc=raoul,dc=freeskop,dc=net): DB_LOCK->lock_put: Lock is no longer valid

Before going deeper in the reader lock management, I would like to know
if there are some documentations or some threads on this list that I
could read to learn about it?

   SysNet - via Dossi,8 27100 Pavia Tel: +390382573859 Fax: +390382476497