What is synchronous replication?
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 km.
Synchronous replication vs. asynchronous replication
Synchronous replication products usually 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.
Though asynchronous replication is more widely supported by array-, network- and host-based replication products, synchronous replication is the standard-bearer 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:
- Site A host sends a write transaction to the Site A storage array.
- Site A storage array sends the transaction to cache and sends an acknowledgement to the host.
- Site A storage array sends the update to the Site B storage array after a delay.
- Site B storage array sends an acknowledgement to the Site A storage array.
In synchronous replication -- just like with asynchronous replication -- the Site A host sends a write transaction to the Site A storage array. But with synchronous replication, the next steps in the process differ as follows:
- Site A storage array commits the transaction to cache and immediately sends the update to the Site B storage array.
- Site B storage array sends an acknowledgement back to the Site A storage array.
- 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 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.