Alex Samad wrote:
On Fri, Feb 02, 2007 at 02:52:21AM -0800, Howard Chu wrote:
Alex Samad wrote:
On Thu, Feb 01, 2007 at 10:57:46PM -0800, Howard Chu wrote:
Zhang William wrote:
chain + sync cant handle any request if master is down.
I made some modifications before so that a client will change into
master and other clients will connect to it in case master is down,
but it is only academic.
the architecture "HA + LB cluster" has been rised long before, but it
seems openldap team doesnt implement it gracefully yet :-(
As noted in many previous messages, mirrormode addresses this situation
automatically.
But with one exception you can't write to both database at the same time
Right, nor do you need such a capability for a high-availability solution.
Sorry I am lost, if I set up 2 nodes (as a side question can you have more than
2 nodes in mirrormode ?) in mirror mode. server A and server b.
2 nodes only, and they mirror each other. There's a reason we called this
mirror mode...
and then setup dns round robin to balance the load, or should I use a load
balancer in front of them. But how do I guarantee that I don't write to both
at the same time. The only way I can think of do that is to point all the
clients to server A and then fail back to server b.
This has nothing to do with load balancing. With mirrormode you must make
sure your frontend only passes writes to a single server.
When I think of a multi master solution, I think of something like oracle rac's
solution or novell's NDS (form memory it is a ldap tree, configured in multi
master mode, I might be wrong). with Oracle rac you can write to any of the
nodes and it handles it properly (albeit the oracle rac setup uses shared
storage)
Nobody said this is a multimaster solution, that's why it's not called
"multimaster." This is a solution for high availability, to avoid single
point of failure.
"Load balancing" in the context of writes is an oxymoron, and anyone who
claims multimaster helps in load balancing is either deluded or lying and
trying to sell you something.
Think about it, use your brain. In a working multimaster setup, when any
server receives a write operation, it *must* propagate that write to all the
other servers. That means the network traffic and write load is constant and
spreads across all of the servers, no matter which server you write to.
Spreading out the writes among the clients does *nothing* to distribute the
load on the servers because they *all* have to handle *every* write anyway.
Let that sink in. Any vendor who sells you multimaster as a load-balancing
solution is *lying to you*. It is a high-availability solution, it avoids a
single point of failure, and that's a good thing, but it has NOTHING to do
with load balancing. Multimaster comes with a cost in terms of data
consistency, and that's a bad thing. Mirrormode is an approach for avoiding
single-point-of-failure without losing data consistency guarantees.
The OpenLDAP Project doesn't try to sell you anything. When we see something
is stupid or wrong, we say "that's stupid and wrong." When we identify a
problem, we solve the problem. There's no sugar-coating and there's no BS.
When you're thinking for yourself, you don't need sugar-coating, and the BS
just gets in the way.
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
Chief Architect, OpenLDAP http://www.openldap.org/project/