From f760b25e1233d844a6d9286225d367b281e14dca Mon Sep 17 00:00:00 2001 From: Anton Tiurin Date: Thu, 2 Apr 2015 00:23:35 +0300 Subject: [PATCH] [Random] Pick a node for O(1), not for O(n) Signed-off-by: Anton Tiurin --- scheduler/strategy/random.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/scheduler/strategy/random.go b/scheduler/strategy/random.go index 1db1fca7b5..a51a47b4ed 100644 --- a/scheduler/strategy/random.go +++ b/scheduler/strategy/random.go @@ -21,12 +21,9 @@ func (p *RandomPlacementStrategy) Initialize() error { // PlaceContainer is exported func (p *RandomPlacementStrategy) PlaceContainer(config *dockerclient.ContainerConfig, nodes []cluster.Node) (cluster.Node, error) { if size := len(nodes); size > 0 { - n := rand.Intn(len(nodes)) - for i, node := range nodes { - if i == n { - return node, nil - } - } + index := rand.Intn(len(nodes)) + return nodes[index], nil } + return nil, errors.New("No nodes running in the cluster") }