[Kolab-devel] Question about the working of kolab's distributed concept

Richard Bos radoeka at xs4all.nl
Thu Apr 13 23:35:25 CEST 2006


Bernhard,

thanks you for taking the time to answer this question.  It's appreciated and 
much things much clearer for me!

Op donderdag 13 april 2006 13:46, schreef Bernhard Reiter:
> If I remember correctly, we do not have something like
> http://kroupware.kolab.org/technical-1.0.1-html/c421.html
> Thought we would need to check the architecture document again.

Ah thanks that provides a nice overview indeed.

> > I think that it works in the following (I make assumptions here and there
> > and would be nice if wrong assumptions are corrected):
> > - admin adds a user via the web interface (which may be located
> >   on the master server or on a slave system).  The user data is submitted
> >   by the admin, as a result of this, the data is added to the master ldap
> >   server.
>
> Yes, changes can only be made on the master ldap.

But, the administrator or user may use a webinterface running on a slave (as 
that will modify the master ldap db (I assume)).

> > - The master ldap server replicates the data to the slaves.
>
> Yes.

And the slaves can be used by the users for queries ;)

> > Among the
> >   slaves there is the kolab daemon (kolabd) listening to the replicated
> > ldap data.  Kolabd creates on the appropriate slave the cyrus email
> > account.
>
> Almost. Kolabd always listens to the local openldap.
> So kolabd on the slave listens to the slave openldap, not the master.

Okay.

> > - In case of deletion: admin deletes user via webinterface.  The
> > master ldap server is told to remove the cyrus email account (hmm but
> > how?). kolabd removes the cyrus email account, sets a kolabDeleteFlag (in
> > the master ldap server).  As soon as this flag is  seen on the master,
> > the corresponding record(s) is removed from master ldap server.  The
> > master replicates this deletion and the data will be removed
> >   from the slaves as well.
>
> This is not quite correct.
> The admin interface sets the kolabDeleteFlag for each host in the ldap.

So there can/will be many records of the type, during the delete phase:
attributetype ( 1.3.6.1.4.1.19414.2.1.2
  NAME 'kolabDeleteflag'
  DESC 'Per host deletion status'
The number of those records depend on the number of slaves (of course). 

> The notification runs like in all other cases.
> Each non-home server can now do cleanup and remove their entry from
> kolabDeleteFlag. In the end, the home server of the user does the last
> cleanup now now removes the cyrus account and the ldap object.

What cleanups are to be done for non-home servers?  Does the home server 
checks that it is the only one left in the ldap db?

-- 
Richard Bos
Without a home the journey is endless




More information about the devel mailing list