spiegel_podman/pkg
Valentin Rothberg 8827100b98 image list: speed up
Listing images has shown increasing performance penalties with an
increasing number of images.  Unless `--all` is specified, Podman
will filter intermediate images.  Determining intermediate images
has been done by finding (and comparing!) parent images which is
expensive.  We had to query the storage many times which turned it
into a bottleneck.

Instead, create a layer tree and assign one or more images to nodes that
match the images' top layer.  Determining the children of an image is
now exponentially faster as we already know the child images from the
layer graph and the images using the same top layer, which may also be
considered child images based on their history.

On my system with 510 images, a rootful image list drops from 6 secs
down to 0.3 secs.

Also use the tree to compute parent nodes, and to filter intermediate
images for pruning.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-08-07 12:14:11 +02:00
..
annotations Add ContainerManager annotation to created containers 2019-09-10 09:37:14 +02:00
api image list: speed up 2020-08-07 12:14:11 +02:00
auth compat handlers: add X-Registry-Auth header support 2020-05-29 15:39:37 +02:00
autoupdate Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
bindings Make search --no-trunc work for podman remote 2020-07-31 15:39:57 +02:00
cgroups Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
channelwriter account for varlink calls that dont use more 2019-07-10 08:50:05 -05:00
checkpoint Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
criu Add helper function to read out CRIU version 2018-10-23 12:52:03 +02:00
ctime Re-add int64 casts for ctime 2019-07-23 15:43:40 -04:00
domain image list: speed up 2020-08-07 12:14:11 +02:00
env make env handling os dependent 2020-06-02 08:28:08 -05:00
errorhandling image removal: refactor part 2 2020-05-04 16:01:45 +02:00
hooks Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
inspect Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
kubeutils Remove dependency on kubernetes 2018-03-27 21:55:33 +00:00
lookup Turn on More linters 2020-06-15 07:05:56 -04:00
namespaces libpod: pass down network options 2020-07-16 22:37:27 +02:00
netns Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
network API returns 500 in case network is not found instead of 404 2020-08-02 22:21:28 +08:00
parallel Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
ps Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
registrar Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
registries Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
resolvconf Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
rootless rootless: add a check for the host id included in the range 2020-07-30 23:16:50 +02:00
rootlessport rootlessport: use two different channels 2020-04-29 12:35:23 +02:00
seccomp apiv2 container create using specgen 2020-02-19 15:20:15 -06:00
selinux Fix SELinux functions names to not be repetitive 2020-04-23 15:57:34 -04:00
signal Turn on More linters 2020-06-15 07:05:56 -04:00
spec Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
specgen fix pod creation with "new:" syntax 2020-07-31 18:27:49 +02:00
systemd Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
terminal Set console mode for windows 2020-06-29 09:17:55 -05:00
timetype make lint: enable gocritic 2020-01-13 14:27:02 +01:00
tracing make lint: include pkg/tracing 2020-01-14 09:54:48 +01:00
trust Fixup issues found by golint 2020-06-10 05:49:41 -04:00
util Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
varlink Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
varlinkapi Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00