mirror of
https://github.com/fluencelabs/redis
synced 2025-04-25 18:42:13 +00:00
Merge pull request #2265 from mattsta/fix/trib/create
Fix redis-trib creation failure
This commit is contained in:
commit
1019c72930
@ -72,7 +72,7 @@ class ClusterNode
|
|||||||
@friends
|
@friends
|
||||||
end
|
end
|
||||||
|
|
||||||
def slots
|
def slots
|
||||||
@info[:slots]
|
@info[:slots]
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -154,7 +154,7 @@ class ClusterNode
|
|||||||
end
|
end
|
||||||
} if slots
|
} if slots
|
||||||
@dirty = false
|
@dirty = false
|
||||||
@r.cluster("info").split("\n").each{|e|
|
@r.cluster("info").split("\n").each{|e|
|
||||||
k,v=e.split(":")
|
k,v=e.split(":")
|
||||||
k = k.to_sym
|
k = k.to_sym
|
||||||
v.chop!
|
v.chop!
|
||||||
@ -213,7 +213,7 @@ class ClusterNode
|
|||||||
#
|
#
|
||||||
# Note: this could be easily written without side effects,
|
# Note: this could be easily written without side effects,
|
||||||
# we use 'slots' just to split the computation into steps.
|
# we use 'slots' just to split the computation into steps.
|
||||||
|
|
||||||
# First step: we want an increasing array of integers
|
# First step: we want an increasing array of integers
|
||||||
# for instance: [1,2,3,4,5,8,9,20,21,22,23,24,25,30]
|
# for instance: [1,2,3,4,5,8,9,20,21,22,23,24,25,30]
|
||||||
slots = @info[:slots].keys.sort
|
slots = @info[:slots].keys.sort
|
||||||
@ -273,7 +273,7 @@ class ClusterNode
|
|||||||
def info
|
def info
|
||||||
@info
|
@info
|
||||||
end
|
end
|
||||||
|
|
||||||
def is_dirty?
|
def is_dirty?
|
||||||
@dirty
|
@dirty
|
||||||
end
|
end
|
||||||
@ -563,8 +563,17 @@ class RedisTrib
|
|||||||
# Take one node from each IP until we run out of nodes
|
# Take one node from each IP until we run out of nodes
|
||||||
# across every IP.
|
# across every IP.
|
||||||
ips.each do |ip,nodes|
|
ips.each do |ip,nodes|
|
||||||
stop = nodes.empty? and next
|
if nodes.empty?
|
||||||
interleaved.push nodes.shift
|
# if this IP has no remaining nodes, check for termination
|
||||||
|
if interleaved.length == nodes_count
|
||||||
|
# stop when 'interleaved' has accumulated all nodes
|
||||||
|
stop = true
|
||||||
|
next
|
||||||
|
end
|
||||||
|
else
|
||||||
|
# else, move one node from this IP to 'interleaved'
|
||||||
|
interleaved.push nodes.shift
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -780,7 +789,7 @@ class RedisTrib
|
|||||||
|
|
||||||
# Move slots between source and target nodes using MIGRATE.
|
# Move slots between source and target nodes using MIGRATE.
|
||||||
#
|
#
|
||||||
# Options:
|
# Options:
|
||||||
# :verbose -- Print a dot for every moved key.
|
# :verbose -- Print a dot for every moved key.
|
||||||
# :fix -- We are moving in the context of a fix. Use REPLACE.
|
# :fix -- We are moving in the context of a fix. Use REPLACE.
|
||||||
# :cold -- Move keys without opening / reconfiguring the nodes.
|
# :cold -- Move keys without opening / reconfiguring the nodes.
|
||||||
@ -1223,7 +1232,7 @@ end
|
|||||||
|
|
||||||
#################################################################################
|
#################################################################################
|
||||||
# Libraries
|
# Libraries
|
||||||
#
|
#
|
||||||
# We try to don't depend on external libs since this is a critical part
|
# We try to don't depend on external libs since this is a critical part
|
||||||
# of Redis Cluster.
|
# of Redis Cluster.
|
||||||
#################################################################################
|
#################################################################################
|
||||||
|
Loading…
x
Reference in New Issue
Block a user