X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/909aee2c6cc6c35394a3dc212126c7f6034b3d63..19951d965aa78402fa3030af05a68b81fc4e9522:/src/redis-trib.rb diff --git a/src/redis-trib.rb b/src/redis-trib.rb index 8768e544..473e4922 100755 --- a/src/redis-trib.rb +++ b/src/redis-trib.rb @@ -319,10 +319,11 @@ class RedisTrib # divisibility. Like we have 3 nodes and need to get 10 slots, we take # 4 from the first, and 3 from the rest. So the biggest is always the first. sources = sources.sort{|a,b| b.slots.length <=> a.slots.length} + source_tot_slots = sources.inject(0) {|sum,source| sum+source.slots.length} sources.each_with_index{|s,i| # Every node will provide a number of slots proportional to the # slots it has assigned. - n = (numslots.to_f/4096*s.slots.length) + n = (numslots.to_f/source_tot_slots*s.slots.length) if i == 0 n = n.ceil else