... One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them ...
- J R R Tolkien
One of the key pieces of Swift's ability to scale is how it chooses where to place data in the cluster. Swift does this with a data structure called the "ring". This data structure began as a consistent hashing ring, but has since evolved to include features such as availability zones. In this talk we will present Swift's ring data structure, explain its features, and explore how it works in a Swift cluster. We will also discuss future enhancements to the ring and how it will support a globally distributed Swift cluster.
This will be a technical talk. We will dive into Swift's codebase and dissect what we find.
Key points of this talk will cover:
- Consistent hashing
- Swift availability zones
- Ring management
This talk is sponsored by SwiftStack, the storage system for web, mobile, and as-a-service apps.