Chapter 12. Anti-Entropy and Dissemination
Most of the communication patterns we’ve been discussing so far were either peer-to-peer or one-to-many (coordinator and replicas). To reliably propagate data records throughout the system, we need the propagating node to be available and able to reach the other nodes, but even then the throughput is limited to a single machine.
Quick and reliable propagation may be less applicable to data records and more important for the cluster-wide metadata, such as membership information (joining and leaving nodes), node states, failures, schema changes, etc. Messages containing this information are generally infrequent and small, but have to be propagated as quickly and reliably as possible.
Such updates can generally be propagated to all nodes in the cluster using one of the three broad groups of approaches [DEMERS87]; schematic depictions of these communication patterns are shown in Figure 12-1:
-
a) Notification broadcast from one process to all others.
-
b) Periodic peer-to-peer information exchange. Peers connect pairwise and exchange messages.
-
c) Cooperative broadcast, where message recipients become broadcasters and help to spread the information quicker and more reliably.
Broadcasting the message to all other processes is the most straightforward approach that works well ...
Get Database Internals now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.