An RDS can have multiple Secondary hosts. This section explains how Volume Replicator processes an incoming write for a Replicated Data Set containing multiple Secondary hosts, some replicating in asynchronous mode and some in synchronous mode.
In asynchronous and synchronous mode of replication, Volume Replicator processes an incoming write as follows, in the presented order:
Receives a write from the application.
Writes it to the Replicator Log.
Volume Replicator first sends the update to all the Secondary hosts replicating in synchronous mode. It then writes to the data volumes under the Primary RVG, and then sends it to the Secondary hosts replicating in asynchronous mode.
On the Secondary, Volume Replicator receives the write, processes it, and sends a network acknowledgement to the Primary.
When the Primary receives a network acknowledgment from the Secondary hosts replicating in synchronous mode, Volume Replicator acknowledges to the application that the write is complete. The Secondary RVG sends the network acknowledgment as soon as the write is received. This eliminates the time that is required to write to the Secondary data volumes from the application latency. On the Primary, Volume Replicator waits only for the network acknowledgment from all the synchronous Secondary hosts and not for the data to be written to the Secondary data volumes. This improves application performance. However, Volume Replicator tracks all such acknowledged writes that have not been written to the data volumes. Volume Replicator can replay these tracked writes if the Secondary crashes before writing to the data volumes on the Secondary or if the Primary crashes before receiving the data acknowledgement.
When the write is written to the data volumes on the Secondary, Volume Replicator sends a data acknowledgment from the Secondary to the Primary in both synchronous and asynchronous mode.
When the Primary receives the data acknowledgment from all the Secondary hosts, Volume Replicator marks the write as complete in the Replicator Log.