In the ring topology, (see Figure 7.2) A synchronizes with B, B synchronizes with C, C synchronizes with D, and D synchronizes with A. The main advantage of the ring is that each computer handles approximately the same load. For more information, see “Synchronizing the Ring Topology” later in this chapter.
Latency times for a ring topology can be greater than latency times for a star topology. This is because data might have to travel multiple “hops” before it disperses to every replica. For a large number of replicas, it might take a while to disperse data throughout the replica set.
Another potential problem with simple ring implementations is that if any of the databases is unavailable, data fails to disperse throughout the application. This can be handled in your code, however, by routing information around the failure point instead of through it.
Ring topologies can be expanded by adding additional rings and connecting two or more of the replicas within each ring.