Browse Source

Use graphdb.Walk with depth=1 in /containers

I don't think that it was very useful feature in current implementation,
but when you have a lot of links - your daemon became unusable because
on first call of /containers global graphdb lock will be acquired and it
can take a lot of time: 30m for 15 containers linked to each other.

Links names can be seen with `--no-trunc`, but I think it's useless :)

Fixes #9967

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Alexander Morozov 10 năm trước cách đây
mục cha
commit
10c3d9f80f
1 tập tin đã thay đổi với 1 bổ sung2 xóa
  1. 1 2
      daemon/list.go

+ 1 - 2
daemon/list.go

@@ -54,12 +54,11 @@ func (daemon *Daemon) Containers(job *engine.Job) engine.Status {
 			}
 		}
 	}
-
 	names := map[string][]string{}
 	daemon.ContainerGraph().Walk("/", func(p string, e *graphdb.Entity) error {
 		names[e.ID()] = append(names[e.ID()], p)
 		return nil
-	}, -1)
+	}, 1)
 
 	var beforeCont, sinceCont *Container
 	if before != "" {