RE: Applicability of LDAP Content Sync to loosely coupled replica sets

John McMeeking <[email protected]> Sat, 7 Jun 2003 20:30:53 -0500
Newsgroups gmane.ietf.ldup
Message-ID <OFCA432121.0D9EB2FE-ON86256D3F.0003D485-86256D3F.0008545A@us.ibm.com>




I think either of the sync proposals could be made to work with loosely
coupled replicas if:
1) the replication mechanism supports something like LDUP's "update vector"
-- something that indicates the latest information a replica has seen from
other replicas, AND
2) the cookie contains the equivalent of an update vector, AND
3) there is a defined cookie format that is understood by the DSAs the
client syncs with (possibly requested by the client)

This is already described in the back of LCUP, but it applies to both sync
proposals.

Or did I misinterpret this discussion?

[BTW - (3) is something else that is missing from draft-zeilenga-ldup-sync,
but I'm almost convinced it isn't needed.  Read on.]

The question, then, becomes whether a given replication implementation has
the information necessary to support this.

I haven't thought through how either approach would handle a reload (or
LDAP Sync's "entry present" messages) if the current DSA was known to be
out of date with respect to the state of the original DSA at the time the
client last synched with it.  That might require the client know more about
the replication mechanism -- server sends its update vector, client keeps
any information it has that is newer than the current DSA's update vector.
That starts to sound a whole lot like multi-master replication, and I don't
think we want to take LCUP there.  Maybe we just need the DSA to recognize
that the client has more current knowledge than the DSA, and not send any
updates until the DSA has caught up with the client.  We may want some
mechanism to tell the client the current DSA is out of date, but I don't
know what the client would do about it.  It doesn't hurt to provide the
information, even if the client choses not to do anything with it.

With multiple masters it could get more complicated - the DSA may have more
current information for information updated through it (or another DSA),
but be out of date with respect to changes originating at the original DSA.
This seems unlikely to me, as it would seem to require that the client be
syncing with differnt DSAs more frequently than replication occurs.  Maybe
we just accept that the client might go backwards briefly until the DSA
catches up.

For the DSA to not send updates until it has caught up with the client
doesn't require any changes to either sync proposal.  It just requires that
servers provide a multi-DSA capable sync implementation.  It may require
that the client be able to request a particular cookie format, but I think
it just requires that the DSA use a cookie format defined for the
particular replication mechanism it is using.  There might be one defined
for LDUP, and there might be others defined by vendors for their
replication implementations.


John  McMeeking