linkerd2/proxy
Eliza Weisman 8bc05472ed
Make `control::Cache` key-value in order to store discovery metadata (#688)
This PR changes the proxy's `control::Cache` module from a set to a key-value map. 

This change is made in order to use the values in the map to store metadata from the Destination API, but allow evictions and insertions to be based only on the `SocketAddr` of the destination entry. This will make code in PR #661 much simpler, by removing the need to wrap `SocketAddr`s in the cache in a `Labeled` struct for storing metadata, and the need for custom `Borrow` implementations on that type.

Furthermore, I've changed from using a standard library `HashSet`/`HashMap` as the underlying collection to using `IndexMap`, as we suspect that this will result in performance improvements. 

Currently, as `master` has no additional metadata to associate with cache entries, the type of the values in the map is `()`. When #661 merges, the values will actually contain metadata.

If we suspect that there are many other use-cases for `control::Cache` where it will be treated as a set rather than a map, we may want to provide a separate set of impls for `Cache<T, ()>` (like `std::HashSet`) to make the API more ergonomic in this case.
2018-04-06 13:54:16 -07:00
..
controller-grpc Turn off the `use_logging` default feature of quickcheck. (#465) 2018-02-26 16:04:58 -10:00
convert Prepare for the v0.3.0 release (#406) 2018-02-21 11:14:11 -08:00
futures-mpsc-lossy Prepare for the v0.3.0 release (#406) 2018-02-21 11:14:11 -08:00
router Proxy: Upgrade h2 and indexmap crates (#572) 2018-03-14 12:35:38 -07:00
src Make `control::Cache` key-value in order to store discovery metadata (#688) 2018-04-06 13:54:16 -07:00
tests Add pretty durations to panics from `assert_eventually!` (#677) 2018-04-06 10:49:17 -07:00
Cargo.toml proxy: add SIGTERM and SIGINT handlers (#581) 2018-03-16 18:53:20 -07:00
Dockerfile Use Rust 1.25 to build Docker images. (#667) 2018-04-03 08:22:29 -10:00