[Openstack] [Swift] : Ring Algorithm

John Dickinson me at not.mn
Fri Feb 10 15:41:55 UTC 2017


The ring is the beating heart of Swift. It's what defines cluster membership and ensures disperse and balanced placement. Therefore, understanding the ring means you understand a whole lot of how Swift works.

Good luck on the journey!

There's been quite a few words written and spoken about the ring over the years, and, in fact, we've made significant improvements as well. Although the basic concept hasn't changed, we've gotten better at doing the right thing at the right time. That is to say, if you find stuff online about how the ring works, even if it's old info, it's likely still accurate in general.

Here's some further things to look at:

https://www.openstack.org/videos/video/forget-everything-you-knew-about-swift-rings-heres-everything-you-need-to-know-about-swift-rings

https://www.swiftstack.com/blog/2012/11/21/how-the-ring-works-in-openstack-swift/

http://docs.openstack.org/developer/swift/ring_background.html

http://docs.openstack.org/developer/swift/overview_ring.html

http://www.florentflament.com/blog/openstack-swift-ring-made-understandable.html

https://www.openstack.org/blog/2012/02/1997/

Hope these help. Please ask if you have more questions, or drop by #openstack-swift.

--John





On 9 Feb 2017, at 23:19, Mark Kirkwood wrote:

> Hi Sameer,
>
> A good question - the docs do mention a 'far apart as possible' distribution algorithm. If you study the code (in swift/common/ring*.py) there is a discussion of tiers (zone and region) which relate to this concept. Now I've not studied this in enough detail myself (yet) to give you a good/fast summary (maybe some others can) but this is the area to look at if you want do understand how it works!
>
>
> Cheers
>
>
> Mark
>
>
> On 10/02/17 19:34, Sameer Kulkarni wrote:
>> Hi All,
>>
>> I was trying to understand the Ring Algorithm for Openstack Swift. I have went through official docs. I found that it uses Consistent Hashing Ring[1].
>>
>> But the problem is, It doesn't mention about the features of Swift like Given 3 regions, Each file should go to different regions etc.
>>
>> If I have 8 nodes with equal weights, then a couple of nodes are always empty even after inserting 20 files [with each of 3 replicas]. I feel that this doesn't happen in Swift Algorithm, But only in Consistent Hashing Ring.
>> *
>> *
>> *So, what other things Swift Ring Algorithm have apart from Consistent Hashing Ring?*
>>
>> Thank you
>>
>> Sameer Kulkarni
>>
>
>
> _______________________________________________
> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> Post to     : openstack at lists.openstack.org
> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20170210/d2a86974/attachment.sig>


More information about the Openstack mailing list