Swift中Ring的数据结构

Swift中所谓的Ring就是基于一致性Hash所构建的环。Ring包括以下三种重要的数据结构。
一 相关数据结构说明
1 设备表
设备表中的每一项都对应一个Device,其中记录了该Device的具体位置信息,包括Device ID,所在Region,Zone,IP地址以及端口号,以及用户为该Device定义的权重(Weight)等。Device容量大小不一时,可以通过Weight值保证Partition均匀分布,容量较大的Device拥有拥有更大的权重,也容纳更多的Partition。
比如,一个1T大小的Device有100的权重而一个2T大小的Device有200的权重。
2 设备查询表(Device Lookup Table)
存储Partition的各个副本(默认为3个)与具体Device的映射关系。
从列的维度分析:5,12,1可以这样理解,0号partition的3个副本分别存放在5号、12号、1号设备上。
从行的维度分析:5,0,1,4,12表示针对第1个副本,0,1,2,3,4这5个partition分别存放在5号,0号,1号,4号,12号设备上。
从表格的维度分析:每个表格的信息是设备表中的Device编号,根据这个编号,可以去设备表中检索到该Device的具体连接信息(Device ID、IP以及端口号等信息)。 <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值