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

Re: (ITS#7616) syncrepl enhancement: defer requests when refreshing

hyc@OpenLDAP.org wrote:
> Full_Name: Howard Chu
> Version: 2.4.35
> OS:
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (
> Submitted by: hyc
> We've discussed this on -devel a few times in the past. Sometimes it would be
> desirable to prevent a consumer from answering client requests if it has just
> started up and needs to perform an lengthy refresh.
> In prior discussions, there was a concern that in an MMR situation, two servers
> coming up at the same time would deadlock waiting for each other. We can avoid
> this problem by allowing any search request with a Sync control to proceed as
> normal. Or, any search request with a Sync control and a non-empty, valid
> cookie.
> Implementation can be done using an overlay hook. Note that syncrepl already
> installs an overlay hook now for delta-mmr, this would just expand the scope of
> that internal overlay.

I was considering returning LDAP_BUSY for this case, but it may make more 
sense to return a REFERRAL to the provider instead. (Although again, if we 
have two MMR servers pointed at each other starting at the same time, they 
would just refer to each other and clients would get nowhere until one of them 
finishes its refresh.)

   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/