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.