8

As we may know, there are two main high availability patterns: fail-over and replication.

In active-active failover, both servers are managing traffic.

In master-master replication, both masters serve reads and writes and coordinate with each other on writes. If either master goes down, the system can continue to operate and perform reads and writes.

It sounds the same to me. Is there a difference?

2 Answers 2

5

The two concepts are slightly different:

  • active-active refers to a high availability configuration: several nodes offers the full service. In a normal situation, load-balancing occurs, to distribute the requests equally between all the active nodes. When one server is down, the requests are rerouted to the others. When used in a database context, there is only one database for the outside world. It is not specified how this is achieved: database servers can for example share the same data on (high availability) disks if the internal data structures are designed for concurrency. The advantage of active-active is to avoid having a very expensive spare-servers staying idle most of the cases (active-passive configuration).
  • master-master replication (also called multi-master replication) refers to a specific database technique to synchronise database objects across several database instances in a way to ensure global consistency. The advantage is the flexibility, each participating database instance being well encapsulated, and hybrid replication scenarios are possible with several sets of masters.

Conclusion: there is a tiny overlap between the two concepts: master-master could be used as one specific way to implement active-active for databases. But active-active can be implemented differently, and multi-master can have other purposes than high availability.

3

Failover as a way to achieve high availability, is the ability for a healthy machine to carry on when another machine is down. In SQL server, replication is one way to deal with, along with the other three : clustering, mirroring, and log shipping. Here is a post talking about their definitions and difference.

In a broader sense of active/active vs master/master, active/active could refer to any deployments rather than database only, while master/master mainly addresses the write consistency on database, and a similar effect of "active/active" is its side benefit we can get in case one unit (node/region/copy or whatever) is down.

2
  • 1
    This does not address the specific question of active-active vs master-master. Dec 5, 2020 at 10:01
  • @MartinKochanski I mentioned in the answer replication is one way to address failover, the answer applies to whatever mode on replication, I edited the answer though
    – ChuNan
    Dec 5, 2020 at 15:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.