What is synchronous replication?
Synchronous replication is the process of copying data over a network to create multiple current copies of the data.
Synchronous replication is mainly used for high-end transactional applications that need instant failover if the primary node fails. It is not used as frequently in network-attached storage unless the NAS device can also function as block-based storage for those high-end transactional applications.
While often used for disaster recovery, synchronous replication is preferred for applications with low recovery time objectives that cannot tolerate data loss.
The technique does have its drawbacks. Synchronous replication is more expensive than other forms of data replication, introduces latency that slows the primary application and only works for distances up to 300 kilometers.
Synchronous replication vs. asynchronous replication
Synchronous replication products write data to primary storage and the replica simultaneously. That way, the primary copy and the replica always remain synchronized. Asynchronous replication products write data to primary storage first and then copy the data to the replica, so there is a delay before data is copied to a secondary site.
Asynchronous replication is more widely supported by array-, network- and host-based replication products. However, synchronous replication is the standard for higher-end, block-based storage arrays. It is also the data replication technique supported by most network-based replication products.
For both data replication techniques, a storage array on Site A will send acknowledgement of the transaction to the host on Site A. Where the two techniques differ is the order of events that take place after the host sends the transaction to the local storage array.
With asynchronous replication, the following happens:
- The Site A host sends a write transaction to the Site A storage array.
- The Site A storage array sends the transaction to cache and sends an acknowledgement to the host.
- The Site A storage array sends the update to the Site B storage array after a delay.
- The Site B storage array sends an acknowledgement to the Site A storage array.
In synchronous replication, the Site A host still sends a write transaction to the Site A storage array. However, the next steps differ from asynchronous replication.
Synchronous replication has the following steps:
- The Site A storage array commits the transaction to cache and immediately sends the update to the Site B storage array.
- The Site B storage array sends an acknowledgement back to the Site A storage array.
- The Site A storage array sends an acknowledgement to the host.
With synchronous replication, both arrays process the transaction before an acknowledgment is sent to the host, meaning the arrays will always be in sync. In asynchronous replication, the secondary storage array is usually a few transactions behind the primary array.
If the physical distance between the primary and secondary data center is too great, the delay in acknowledgement caused by synchronous replication can make it unusable for some applications.