Multi-master replication is a technique employed by database management software so multiple copies of a single database stored on different computers can be used and updated by many users in a de-centralized way. When a change is made to a database that is using multi-master replication, the change that is made is transmitted to all other computers on the network so all copies of the database being used are updated. Some advantages of a multi-master replication setup include redundant data backups and a de-centralized architecture in which updates to copies of a database can be maintained even if one of the computers in the network ceases to function. Without a single assigned master system, as is the case in master-slave architecture, changes and administrative commands to control the database can be issued from any of the multi-master terminals within the network instead of relying on only one physical terminal. The largest complication that can occur with the use of a multi-master replication system involves updating all systems fast enough so that data remains synchronized at all times across the network.
The term "multi-master" stems from the more basic method of master-slave replication, in which a single terminal is designated as the master. In a master-slave situation, only a single master is capable of updating information on the slave drives. A multi-master replication system has multiple systems designated as masters and each master might only be responsible for itself or could be in charge of a number of computers known as a replication group. With multiple masters, any master system can initiate a change to all other master systems, potentially leading to very complex network interactions in very large systems.
There are two forms of multi-master replication, the first being synchronous replication. Synchronous replication functions by updating in real time all copies of a database each time a change is made. This removes most situations that can occur when data is not synchronized across the network, but it creates a huge amount of network traffic and might require a large amount of processing power to implement in a larger system. For these reasons, synchronous replication primarily is used in networks where there are only a handful of master computers.
The second type of multi-master replication is asynchronous replication. Instead of updating systems whenever a change is made, changes to a database are stored as events on each system, and those changes are applied either when an event is triggered or during scheduled update periods. This means that less network bandwidth and processing power is used, but it increases the chances that two users might at some point attempt to change the same information in conflicting ways because of the delay in updating, or latency. Most distributed database management systems use asynchronous replication because of the low amount of resources that are consumed in comparison to synchronous multi-master replication.