REPLICATION
In distributed systems, replication refers to the practice of maintaining multiple copies of data or services across different nodes (computers) in a network. This redundancy serves several purposes related to reliability, availability, and performance.
Reasons for Replication
Fault Tolerance and Reliability: By replicating data across multiple nodes, the system becomes more resilient to failures. If one node fails, other nodes can still provide the required data or service, ensuring continuous operation.
Improved Availability: Replication can improve the availability of data or services by placing copies closer to users or clients. This reduces latency and improves response times since data can be served from the nearest or least loaded replica.
Load Balancing: Distributing requests across multiple replicas helps balance the load on the system. Requests can be directed to the replica that is least busy or geographically closest to the requester, improving overall performance.
Scaling: Replication supports horizontal scaling by allowing additional replicas to be added as the system grows. This can be more cost-effective than vertically scaling a single node.
Caching: Replicas can also be used as caches to store frequently accessed data, reducing the need to fetch data from the primary storage or source.
Types of Replication
Explicit Replication:
Lazy Replication:
Group Communication: