Monday, November 10, 2014

Ring Ring Ring!!!

In OpenStack Swift there are 3 Rings, an Account ring, a Container ring, and an Object ring.

What are these Rings and what are they made of?
The rings are modified consistent hash rings that hold partitions that are on the physical disks.

So what are partitions?
Think of partitions as directories that hold the actual data.

And how may partitions are there on the a disk drive?
Swift documentation recommends a minimum of 100 partitions per drive. We have seen customers use up to 1000 partitions per drive.

What are these Rings used for?
The ring is used to help us find the information and data that we are looking for when do a GET. During a PUT, the ring tells us where(physical disk) the data will be stored.

What do the data structures in the Ring tell us?
Actually there are two internal data structures. The first one tells us where the three replications of a partition are stored eg. Partition 0 is on device 7, 12, and 1. While partition 2 is on device 1, 8 and 10


The second data structure tells us where and how to find these devices. Eg. Device 1 is in region 2, zone 1, with the following IP address and port number.







No comments: