Data replication
DataStax Enterprise (DSE) can replicate data to multiple nodes to make the cluster more reliable and resilient.
The replication strategy determines the following:
-
How many times data is replicated within a cluster.
-
Whether replicas exist in one or more datacenters.
The total number of replicas across the cluster is referred to as the replication factor. A replication factor of 1 means that there is only one copy of each row in the cluster. A replication factor of 2 means two copies of each row, where each copy is on a different node.
|
Never use a replication factor of 1. If the node containing the row goes down, the row cannot be retrieved. |
All replicas are equally important; there is no primary or master replica. As a general rule, the replication factor should not exceed the number of nodes in the cluster. However, you can increase the replication factor and then add the desired number of nodes later. The replication factor also depends on the node type.
Replication strategy is defined per keyspace, and is set during keyspace creation.
Two replication strategies are available:
- SimpleStrategy
-
Use SimpleStrategy only for development clusters that will always have one datacenter and one rack. In all other cases, including all production clusters, use NetworkTopologyStrategy. SimpleStrategy places the first replica on a node that is selected by the partitioner. Additional replicas are placed on subsequent nodes clockwise around the ring without considering topology (rack or datacenter location).
- NetworkTopologyStrategy
-
Recommended for all deployments because it is easier to scale to multiple datacenters and racks, even if you don’t initially require these features.
NetworkTopologyStrategy places replicas in the same datacenter by walking the ring clockwise until it reaches the first node in another rack. It also attempts to place replicas on distinct racks because nodes in the same rack (or similar physical grouping) can fail at the same time due to power, cooling, or network issues.
This strategy requires that you specify how many replicas you want in each datacenter per keyspace. When deciding how many replicas to configure in each datacenter, be mindful of cross-datacenter latency on the read path and available nodes in the event of a failure. Typically, multi-datacenter clusters are configured as follows:
-
Two replicas in each datacenter: This configuration tolerates the failure of a single node per replication group and still allows local reads at a consistency level of
ONE. -
Three replicas in each datacenter: This configuration tolerates either the failure of one node per replication group at a strong consistency level of
LOCAL_QUORUMor multiple node failures per datacenter using consistency levelONE. -
Asymmetrical replication groupings are also possible. For example, you can have three replicas in one datacenter to serve real-time application requests and use a single replica elsewhere for running analytics.
-
For more information about configuring replication strategies, see the following: