spiegel_podman/pkg
Valentin Rothberg dcf39f0abe 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-11 11:14:24 +02:00
..
annotations Add ContainerManager annotation to created containers 2019-09-10 09:37:14 +02:00
api image list: speed up 2020-08-11 11:14:24 +02:00
auth compat handlers: add X-Registry-Auth header support 2020-05-29 15:39:37 +02:00
autoupdate move go module to v2 2020-07-06 15:52:17 +02:00
bindings Correctly print STDOUT on non-terminal remote exec 2020-07-22 14:41:17 -04:00
cgroups move go module to v2 2020-07-06 15:52:17 +02:00
channelwriter account for varlink calls that dont use more 2019-07-10 08:50:05 -05:00
checkpoint move go module to v2 2020-07-06 15:52:17 +02: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-11 11:14:24 +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 move go module to v2 2020-07-06 15:52:17 +02:00
inspect move go module to v2 2020-07-06 15:52:17 +02: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 podman: assume user namespace if there are mappings 2020-04-24 15:55:38 +02:00
netns move go module to v2 2020-07-06 15:52:17 +02:00
network Switch references from libpod.conf to containers.conf 2020-07-21 09:29:01 -04:00
parallel move go module to v2 2020-07-06 15:52:17 +02:00
ps move go module to v2 2020-07-06 15:52:17 +02:00
registrar move go module to v2 2020-07-06 15:52:17 +02:00
registries search: allow wildcards 2020-07-15 11:42:04 +02:00
resolvconf move go module to v2 2020-07-06 15:52:17 +02:00
rootless move go module to v2 2020-07-06 15:52:17 +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 Fix container and pod create commands for remote create 2020-07-22 14:39:41 -04:00
specgen Binding the same container port to >1 host port is OK 2020-07-31 11:41:05 -04:00
systemd generate systemd: improve pod-flags filter 2020-07-06 14:18:20 -04:00
terminal Set console mode for windows 2020-07-06 13:41:39 -04: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 play-kube: add suport for "IfNotPresent" pull type 2020-07-22 14:18:53 -04:00
varlink V2 Move varlink home 2020-03-30 08:18:35 -07:00
varlinkapi log API: add context to allow for cancelling 2020-07-22 14:50:47 -04:00