In this talk, we propose a more efficient way for object replication. The main idea is reducing the amount of data transfer between regions. In this approach, Swift will firstly transfer each replica one time only to the destination region and then fan that replica out in the region locally if the region requires more than one replica.
Background:
We have confirmed in our experiments that the features for geographically distributed clusters will bring great benefits which achieves low latency responses if utilizing high latency networks due to the long distance between regions needed to ensure the possibility of disaster recovery.
However, the current Swift approach manages the limited network between regions wastefully. The current Swift spreads replicas evenly among the destination nodes in the cluster and so unfortunately it allows the sending of the same replica multiple times throughout a single limited network. Generally speaking, the cost of a limited network accounts for a substantial percentage of the total running cost (in our experience, this is greater than 20 %) so we should try to decrease it by using this approach.