Skip to content
Snippets Groups Projects
Commit dc16ec37 authored by Michael Adam's avatar Michael Adam
Browse files

Make Rebalance() a little easier to read.


Signed-off-by: default avatarMichael Adam <obnox@redhat.com>
parent 5d702fe4
No related branches found
No related tags found
No related merge requests found
...@@ -134,20 +134,26 @@ func (s *SimpleAllocatorRing) Rebalance() { ...@@ -134,20 +134,26 @@ func (s *SimpleAllocatorRing) Rebalance() {
var device *SimpleDevice var device *SimpleDevice
for i := 0; len(zones) != 0; i++ { for i := 0; len(zones) != 0; i++ {
zone := i % len(zones) zone := i % len(zones)
node := i % len(zones[zone]) nodes := zones[zone]
node := i % len(nodes)
devices := nodes[node]
// pop device // 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) list = append(list, *device)
// delete node if len(devices) == 0 {
if len(zones[zone][node]) == 0 { // delete node
zones[zone] = append(zones[zone][:node], zones[zone][node+1:]...) nodes = append(nodes[:node], nodes[node+1:]...)
zones[zone] = nodes
}
if len(nodes) == 0 {
// delete zone // delete zone
if len(zones[zone]) == 0 { zones = append(zones[:zone], zones[zone+1:]...)
zones = append(zones[:zone], zones[zone+1:]...)
}
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment