[Date Prev][Date Next]
Re: poor performance of OpenLDAP vs AD?
Tomasz Chmielewski wrote:
Howard Chu schrieb:
> Quanah Gibson-Mount wrote:
>> --On Wednesday, July 13, 2005 2:49 PM +0200 Tomasz Chmielewski
>> <firstname.lastname@example.org> wrote:
>>> Recently, when planning to deploy a directory server, I was
>>> confronted with someone claiming that OpenLDAP performs poorly,
>>> when compared to Active Directory, and thus, we should choose
> And I bet they also said that running Microsoft products has a
> lower Total Cost of Ownership than anything else too.
Yeah it's some of the guys that believe in all that.
But as I'm able to dismiss all his claims, with all I can't.
AD works in a multi-master environment, OpenLDAP doesn't.
We don't really need a multi-master environment, but can a claim that
a multimaster environment is much more superior over master-slaves
model in terms of preformance - can this claim be true?
Pure nonsense, just like the TCO claims.
As I studied the multimaster AD replication a bit:
and for me, it seems that it can be more efficient, as it would need
at least one connection less.
It requires one less connection when clients send updates to a slave
server, and only in the simplest configuration*. If clients are already
configured to send updates only to the master, then the number of
connections required is the same as the multimaster case. Also,
additional overhead of one connection is trivial as the number of
servers increases. In efficiency terms, O(n) = O(n+1) - there is really
no efficiency advantage for multimaster, when all else is equal.
On the other hand, there seems to be
much overhead concerned with additional data that goes around to keep
this multimaster state in sync.
And here is where the argument really falls down - all else is Not
equal, their replication protocol requires a huge amount of metadata to
maintain synchronization for each update.
* here's a single-master alternative that requires the exact same number
of connections as multi-master:
Clients can send updates to any server; if a slave receives an update
request it chains to the master. When the chained request succeeds on
the master, the slave updates its own database and returns the success
status to the client. The master then propagates the change to any
slaves other than the one that originated the request. It's quite easy
to write an overlay for OpenLDAP 2.2 or 2.3 to provide this mode of
operation. The efficiency of this approach is far greater than the MSAD
replication protocol, as there is no extra metadata involved.
-- Howard Chu
Chief Architect, Symas Corp. Director, Highland Sun
Symas: Premier OpenSource Development and Support