A TopicFunc is an interface to let the pubisher decide whether it needs
to send a message to a subscriber or not. It returns true if the
publisher must send the message and false otherwise.
Users of the pubsub package can create a subscriber with a topic
function by calling `pubsub.SubscribeTopic`.
Message delivery has also been modified to use concurrent channels per
subscriber. That way, topic verification and message delivery is not
o(N+M) anymore, based on the number of subscribers and topic verification
complexity.
Using pubsub topics, the API stops controlling the message delivery,
delegating that function to a topic generated with the filtering
provided by the user. The publisher sends every message to the
subscriber if there is no filter, but the api doesn't have to select
messages to return anymore.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 434d2e8745696255a204d9eefc6a2854ff74e5c2
Component: engine
Improves the current filtering implementation complixity.
Currently, the best case is O(N) and worst case O(N^2) for key-value filtering.
In the new implementation, the best case is O(1) and worst case O(N), again for key-value filtering.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 93d1dd8036d57f5cf1e5cbbbad875ae9a6fa6180
Component: engine
We can remove one function from the stack by injecting the middleware
only when logging in enabled and the level is debug.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 82323294db96e8043244027c262481af6c8f478d
Component: engine
- avoid empty Names in container list API when fails to remove
a container
- avoid dead containers when fails to create a container
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
Upstream-commit: 4953ea1eae211366c7214bfd2381a4a189d5466a
Component: engine
ext4 filesystem creation can take a long time on 100G thin device and
systemd might time out and kill docker service. Often user is left thinking
why docker is taking so long and logs don't give any hint. Log an info
message in journal for start and end of filesystem creation. That way
a user can look at logs and figure out that filesystem creation is
taking long time.
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Upstream-commit: a489e685c0d17455463945316cfe366e4e65dca6
Component: engine
The 1.22 API was temporarily removed in e4d86c2c38f4c99660da8ed65a8103e283e07e23
to prevent it showing up in the 1.9 documentation.
This reverts that change and tweaks the aligning
of the table headers in Markdown source.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 3ddd21b8b66be248ea04eb74c7a81349bffddac1
Component: engine
First phase in cleaning up the MAINTAINERS file to make it better
reflect reality by:
- Removing "Operators" that have no practical role.
- Removing "Subsystems" as they often are separate repositories with
their own MAINTAINERS files.
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Upstream-commit: 29dbce8357358a675cc90ecb0cd29b1a59633881
Component: engine
It actually adds nothing to queuing requests.
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: ca5795cef810c85f101eb0aa3efe3ec8d756490b
Component: engine
Cgroup integtaion tests should cover:
- docker can run sucessfully with these options
- these cgroup options are set to HostConfig as expected
- these cgroup options are really set to cgroup files as expected
- other cases (wrong value, combinations etc..)
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Upstream-commit: 0a426c47c84cb8aec714cce2c21e6c6696cbc8c4
Component: engine