]> git.saurik.com Git - redis.git/blobdiff - src/redis-trib.rb
Added tests checking ability of the scripting engine to reorder the output of command...
[redis.git] / src / redis-trib.rb
index 8768e544ed16f3db07438791c342911a1328544f..473e492292912d60cbafbcaf917d24c61183b36a 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(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