OpenStack Swift is excellent for building storage systems distributed across multiple data centers and geographical locations: Multi-Region Clusters (MRCs). MRCs of Swift have some behaviors such as “write affinity” and “read affinity”. With these features, MRCs can achieve short latency and high throughput. However, you may want to be careful with this. If you enable write affinity, in the worst case, you may lose data when one of the regions is down. On the other hand, if you disable write/read affinity, the performance of your cluster may be limited by the transmission delay and bandwidth of the network connections between regions. There is no one-size-fits-all answer to the question of how to configure a MRC. It depends on the scale of clusters, the workloads, the use cases, the network conditions, the number of replicas for each storage policy, etc. In this talk, we will discuss the behaviors of MRCs under different conditions and the lessons we learned in our deployments.
What is a Multi-Region Swift Cluster? The typical use cases of Multi-Region Clusters (MRCs).
What is write affinity and read affinity? How to deploy and configure a MRC with write/read affinity?
Under the hood of MRCs and affinities.
How to tuning the performance of MRCs in different scenarios?
How to configure a MRC properly to prevent data loss and what is the cost you may pay for this?