[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openldap-devel
Subject:    Re: How the backend knows it's being searched by syncprov?
From:       Howard Chu <hyc () symas ! com>
Date:       2004-12-04 22:46:03
Message-ID: 41B23E2B.6040607 () symas ! com
[Download RAW message or body]

Pierangelo Masarati wrote:

> Howard Chu wrote:
>
>> By the way, on the topic of syncrepl not working with backglue 
>> (ITS#3133) I think the solution here is to turn backglue into an 
>> overlay itself. Then it will be possible to arrange the order of the 
>> overlays on the stack and get the correct behavior. (I.e., currently 
>> backglue sits at the top of the execution stack, no matter what. In 
>> order for the syncprovider overlay to function correctly over a glued 
>> set of databases, syncprov must run at the top of the stack, with 
>> backglue presenting a view of a single database to it.)
>>
>> I envision changing the slapd.conf syntax with this change as well; 
>> the "subordinate" keyword would no longer be a globally recognized 
>> config keyword since it properly belongs to the backglue code. More 
>> likely, on the backend where "overlay glue" is configured, there will 
>> be a "subordinate <dn>" keyword specifying the suffix of some other 
>> backend to attach.
>
>
> Talkig about backglue reworking, one nice feature would be to split 
> the search operation handler into a sort of async search, i.e. a 
> search_init and a search_done operation with the original be_search 
> being a wrap that calls them in sequence.  Then backglue cold call all 
> search_init funcs on separate threads (the last could be the original 
> thread, and the other internal to the backglue instance) and then wait 
> for all threads to conclude.  This would mimic the current back-meta 
> behavior that spawns all searches simultaneously and sends the results 
> as they are returned.  This behavior should be configurable (e.g. I 
> don't see any potential performance improvements from spawning 
> multiple searches on different local instances of back-bdb), and the 
> number of local threads should be limited and configurable as well; if 
> there are no threads available, the searches could run serially as 
> they do now.
>
There is a slight complication here, to enforce the sizelimit of a 
search. Doing so requires all of the threads to increment a 
mutex-protected counter. We could just decide that only unlimited 
searches can be run in parallel.

-- 
  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic