]> git.saurik.com Git - redis.git/blobdiff - src/redis-trib.rb
useless double if removed.
[redis.git] / src / redis-trib.rb
index 8768e544ed16f3db07438791c342911a1328544f..fa0e8c6dd90305e6ea296342429ae83f95b50f98 100755 (executable)
@@ -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 {|a,b| a.slots.length+b.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