There’s a trade-off between reliability and write bandwidth and read bandwidth here
- the first replica on the same node as the client (for clients running outside the cluster, a node is chosen at random, although the system tries not to pick nodes that are too full or too busy).
- The second replica is placed on a different rack from the first (off-rack), chosen at random.
- The third replica is placed on the same rack as the second, but on a different node chosen at random.
- Further replicas are placed on random nodes in the cluster, although the system tries to avoid placing too many replicas on the same rack