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

Re: FW: AW: referrals (not using ManageDsaIT correctly)



On Fri, 15 Jun 2001, Dan Shriver wrote:
> > i think you're mistaking the use of referrals and replication.
>
> I am intending to use both together.  Evidenally I don't
> understand how to use both of them together correctly.

But the two are orthogonal, and you're getting them muddled.

> My problem is this- any time an LDAP system is constructed one
> has to be able to maintain it (add, remove, delete entries).  My
> understanding is that all such requests go through the master.

This is not necessarily true.  For example, non-structural changes in an
NDS directory may be accepted by any member of the partition.  (See
definition of "partition" below.)

> When master and slave have the same contents this is easy.  The
> master makes the change and then replicates it down to the
> slave.  But what about a distributed system where slaves contain
> subtrees?

This is an issue totally separate from the master/slave relationship.

>            Shouldn't I tell the master "add these entries" and
> the master then replicates them down to the slave (without
> putting them on itself), via the referral I provided (isn't that
> the only way the master knows where to put the new entries)?

No.  Allow me to slip into NDS-speak for a moment since that's whence most
of my experience to date has come.

A "partition" of the directory tree is a proper subtree.  For each
partition, some set of servers hold copies of that subtree's objects and
others do not.  Partitions are logical constructs; they don't physically
exist as such.

A partition is physically embodied in one or more "replicas", each of
which is stored on some server.  The set of servers holding replicas of a
given partition *always includes a master*.  The tree as a whole may have
many masters, each responsible for coordinating only operations within its
own partition.  In other words, replication happens *within* a partition
and referral happens *between* partitions.  There can be no replication
between different partitions because they hold disjoint portions of the
tree.

If you contact one of the servers in partition Q to do something with an
object in partition R, the server is just going to pass back a referral,
and your client must then chase the referrals until it arrives at a server
holding a replica of partition R.  Then the transaction can succeed.  The
servers in Q are not going to accept your transaction and trickle the
results down to R for you; in fact R might be *above* Q.  It is the
client's responsibility to walk the tree until a server for the affected
partition is reached.

In the broader context of services derived from the X.500 model, it would
be possible for any server to chase down the appropriate target as your
proxy, but not all implementations will do that.  And those that do will
do what the client would have done.  It has nothing to do with
replication.

-- 
Mark H. Wood, Lead System Programmer   mwood@IUPUI.Edu
Make a good day.