Cluster: rebalancing option --simulate, and a fix.

This commit is contained in:
antirez 2015-12-15 15:48:49 +01:00
parent cba1c29580
commit 9df1ae8808

View File

@ -943,7 +943,7 @@ class RedisTrib
# Sort nodes by their slots balance. # Sort nodes by their slots balance.
sn = @nodes.select{|n| sn = @nodes.select{|n|
n.has_flag?("master") n.has_flag?("master") && n.info[:w]
}.sort{|a,b| }.sort{|a,b|
a.info[:balance] <=> b.info[:balance] a.info[:balance] <=> b.info[:balance]
} }
@ -974,12 +974,16 @@ class RedisTrib
xputs "*** Assertio failed: Reshard table != number of slots" xputs "*** Assertio failed: Reshard table != number of slots"
exit 1 exit 1
end end
if opt['simulate']
print "#"*reshard_table.length
else
reshard_table.each{|e| reshard_table.each{|e|
move_slot(e[:source],dst,e[:slot], move_slot(e[:source],dst,e[:slot],
:quiet=>true,:dots=>false,:update=>true) :quiet=>true,:dots=>false,:update=>true)
print "#" print "#"
STDOUT.flush STDOUT.flush
} }
end
puts puts
end end
@ -1512,7 +1516,7 @@ ALLOWED_OPTIONS={
"add-node" => {"slave" => false, "master-id" => true}, "add-node" => {"slave" => false, "master-id" => true},
"import" => {"from" => :required, "copy" => false, "replace" => false}, "import" => {"from" => :required, "copy" => false, "replace" => false},
"reshard" => {"from" => true, "to" => true, "slots" => true, "yes" => false, "timeout" => MigrateDefaultTimeout}, "reshard" => {"from" => true, "to" => true, "slots" => true, "yes" => false, "timeout" => MigrateDefaultTimeout},
"rebalance" => {"weight" => [], "auto-weights" => false, "threshold" => RebalanceDefaultThreshold, "use-empty-masters" => false, "timeout" => MigrateDefaultTimeout}, "rebalance" => {"weight" => [], "auto-weights" => false, "threshold" => RebalanceDefaultThreshold, "use-empty-masters" => false, "timeout" => MigrateDefaultTimeout, "simulate" => false},
"fix" => {"timeout" => MigrateDefaultTimeout}, "fix" => {"timeout" => MigrateDefaultTimeout},
} }