Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

We have to build a multi-master replication system. That means the if we have N servers, the total number of connections between all those servers will be equals to : N x ( N - 1 ) / 2. If we have 4 servers, we will have 6 12 possibles connections. If we have 10 servers, we will have 45 90 possibles relationsetc. For 100 servers, this is 4500 9 000  possibles relations !!! Even if this is a polynomial growth, the reality s totally different. We won't allow such a scheme, which is totally out of control. In real world, having only two servers seems quite common, for small to large organization. If more servers are needed - for scalibility of or to build a failover system, then we N to N communication network will not be implemented. We will generally select one or two "master" servers which will communicate with a few other servers, like in a chain.

To workaround this kind of problem, we could also define a "master-master", responsible of dispatching the modifications. All servers are connected to the Master-Master, and send to it all the modification (even if those modifications can be stored locally). Then the Master-Master replicate these modifications. If the Master-master is not responding, then another Master-Master is chosen. This does not solve the problem of synchronization between groups of server if a group is disconnected for some reason.

We also have to consider those points :

  • Servers are generally localised in different countries/subsidiaries and manage disjuncted set of data (local data)
  • Remote data can be managed through the use of Referrals, even if the performances are not as good as direct calls.
  • There are generally three differents concerns administrator want to address : failover, scalability, performance.
  • Data are not modified very often, and tree moving should almost *never* occur (modifyRDN)
  • Systems which need MM replications, like triplesec, suppose that the replication is done on the fly.

 Connection between servers

...

In this scenario, the main problem is when we have an entry modified on more than one server, and before it has been replicated. We will have to decide which entry should be kept. We use the CSN for that
 

Inclusion into the Interceptors chain

...