[SSSD] LDAP connection tracking, sharing and fail-over retry framework

Simo Sorce ssorce at redhat.com
Thu Jul 8 17:20:12 UTC 2010


On Wed, 07 Jul 2010 16:31:44 +0400
Eugene Indenbom <eindenbom at gmail.com> wrote:

> > This is an interesting idea, but it also occurred to me that there
> > is a potential risk as well: if we fail over to another LDAP
> > server, there is no guarantee that it is perfectly in sync with the
> > primary server in the failover chain. The result could be that we
> > would get some data from one server or the other that doesn't align.
> >
> > With this in mind, I think our current approach is a bit safer
> > (even if it might be slower in a failover situation). With this
> > approach, we at least guarantee consistency within a single LDAP
> > server.
> >
> > What are your thoughts, Eugene?
> >      
> We have already had this discussion with Simo. My opinion is very 
> similar to yours. For multi-stage operations we should use the same
> LDAP server for all stages. I know just too well what tricks
> multi-master replication could play in some setups. The risk to get
> inconsistent data from different servers is substantial. That's why I
> think it's better to have a separate tear for multi-stage operation.
 
The point is that you never have any guarantee of consistency even
against a single server when the connection does not drop, between
different operations

We are not the only user of the server so between any 2 operations
stuff can and do change.
This is a fact of life we should better keep well in mind.
We just have to deal with that.

This is also why I don't think that worries about "inconsistent" state
make much sense.

>  From my point of view we should go even further and not to store 
> intermediate stage results to sysdb until all data is received from
> LDAP server. Otherwise we could use inconsistent data in OFFLINE mode.

We will always risk suffering this no matter what you do, "consistency"
is quite a loose concept in ldap when you get down to the operation
level, because ldap has no transactions. Keeping all in memory would
just waste a lot of memory without any real gain.

Please think again about this point, it is not as simple as you make
it, and the assumptions you both are making are not valid.

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York



More information about the sssd-devel mailing list