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

Re: Checking that a change has reached all servers



Hallvard Breien Furuseth wrote:
We have clients which must check that an update has reached all LDAP
servers before they start some task.  So we need to publish a list
of all servers.

Where would you put that list, when clients should normally not contact
these servers directly (ldap-prod*.uio.no) but instead contact the load
balancer sitting in front of them (ldap.uio.no)?  'altServer' in the
root DSE anyway, or has someone defined another attribute?

With transactional backend databases, an existing slow LDAP operation
predating the change might return the old value while this quick poll
sees the change.  I'm content to just tell clients to wait a second
after seeing the change though, unless someone has brighter ideas.

Finally, has anyone written a nice little server (LDAP or otherwise)
which does this - client sends a request, server checks all LDAP
servers and either returns true/false or waits & retries while false?

This requirement makes no sense, particularly if the clients can only access the directory through the load balancer. What is the ultimate goal, what does the client do next?

The most obvious thing to do is to use a postread control on the original request, to read the entryCSN of the change. Then use an assert control on the following request, assuming it references the same entry.

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