Files
weave-scope/report
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-05-29 14:08:26 +01:00
2017-05-19 15:00:01 -07:00
2017-05-29 17:50:55 +01:00
2017-05-26 15:33:15 +01:00
2016-08-02 13:29:35 +00:00
2016-12-07 11:22:40 +00:00
2017-06-21 03:03:49 +01:00
2017-06-21 03:03:49 +01:00
2016-12-07 11:22:40 +00:00
2016-12-07 11:22:38 +00:00
2016-12-07 11:22:40 +00:00
2017-05-19 15:00:01 -07:00
2017-05-29 14:08:26 +01:00