From dc16ec37b25c0fade5216b7fdeff852c74cee15b Mon Sep 17 00:00:00 2001 From: Michael Adam <obnox@redhat.com> Date: Fri, 17 Feb 2017 15:28:26 +0100 Subject: [PATCH] Make Rebalance() a little easier to read. Signed-off-by: Michael Adam <obnox@redhat.com> --- apps/glusterfs/allocator_simple_ring.go | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/apps/glusterfs/allocator_simple_ring.go b/apps/glusterfs/allocator_simple_ring.go index 51abe83b..f2d25238 100644 --- a/apps/glusterfs/allocator_simple_ring.go +++ b/apps/glusterfs/allocator_simple_ring.go @@ -134,20 +134,26 @@ func (s *SimpleAllocatorRing) Rebalance() { var device *SimpleDevice for i := 0; len(zones) != 0; i++ { zone := i % len(zones) - node := i % len(zones[zone]) + nodes := zones[zone] + node := i % len(nodes) + devices := nodes[node] // pop device - device, zones[zone][node] = zones[zone][node][len(zones[zone][node])-1], zones[zone][node][:len(zones[zone][node])-1] + device = devices[len(devices)-1] + devices = devices[:len(devices)-1] + nodes[node] = devices + list = append(list, *device) - // delete node - if len(zones[zone][node]) == 0 { - zones[zone] = append(zones[zone][:node], zones[zone][node+1:]...) + if len(devices) == 0 { + // delete node + nodes = append(nodes[:node], nodes[node+1:]...) + zones[zone] = nodes + } + if len(nodes) == 0 { // delete zone - if len(zones[zone]) == 0 { - zones = append(zones[:zone], zones[zone+1:]...) - } + zones = append(zones[:zone], zones[zone+1:]...) } } -- GitLab