Files
weave-scope/vendor
Matthias Radestock a306867610 fast network membership check
The rendering code checks whether endpoint IPs are part of
cluster-local networks. Due to the prevalence of endpoints - medium
sized reports can contain many thousands of endpoints - this is
performance critical. Alas the existing code performs the check via a
linear scan of a list of networks. That is slow when there are more
than a few, which will be the case in the context of k8s, since there
the probes register service IPs as local /32 networks.

Here we change representation of the set of networks to a prefix
tree (aka trie), which is well-suited for IP network membership checks
since networks are in fact a bitstring prefixes.

The specific representation is a crit-bit tree, but that choice was
purely based on implementation convenience - the chosen library is the
only one I could find that directly supports IP networks.
2017-06-21 03:03:49 +01:00
..
2017-06-21 03:03:49 +01:00
2017-06-21 03:03:49 +01:00
2016-06-21 09:25:44 +01:00

Managing Vendored Dependencies with gvt

These operations result in uncommitted changes to your branch; you will need to commit them as normal. Execute them in the root of your checkout.

For these changes to take effect, you'll have to make clean before running make.

Installing gvt

$ go get -u github.com/FiloSottile/gvt

Adding a Dependency

~/service$ gvt fetch example.com/organisation/module

Updating a Dependency

~/service$ gvt update example.com/organisation/module

Removing a Dependency

~/service$ gvt delete example.com/organisation/module