hyc(a)OpenLDAP.org wrote:
Full_Name: Howard Chu
Version: 2.4.35
OS:
URL:
ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (78.155.233.73)
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/