Skip to content

Update Envoy to 888e0e28900a470df448c65d7b99d8065fd60251#331

Merged
htuch merged 6 commits intoenvoyproxy:masterfrom
oschaaf:update-envoy-dep-17
May 11, 2020
Merged

Update Envoy to 888e0e28900a470df448c65d7b99d8065fd60251#331
htuch merged 6 commits intoenvoyproxy:masterfrom
oschaaf:update-envoy-dep-17

Conversation

@oschaaf
Copy link
Copy Markdown
Member

@oschaaf oschaaf commented Apr 27, 2020

This Envoy update is a bit more involved, because it forced moving away from the
legacy connection pools it had, which got eliminated from the code base. So we migrate
to Envoy's new pool models.

  • The h1 pool migrates seamlessly to the new model with minor changes.

  • The experimental h2 connection pool that supports multiple connections gets
    dropped. We now offer multiple connection support based on the new H2 pool.
    Behavior has changed, but there was a warning about that in the description of
    the --experimental flag (see changes to the test associated to our earlier experimental h2
    pool)

It should now be possible to add new options to add better support for h2 & multiple connections,
and deprecate or remove the --experimental flag for that.

Signed-off-by: Otto van der Schaaf oschaaf@we-amp.com

oschaaf added 4 commits April 27, 2020 11:13
Saving state - work in progress

This update is a bit more challenging then usual, as the
legacy connection pool has been axed out.

This means we need to move towards the new pool implementations,
and tackle some challenges associated to that.

Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
- Update to make the new h1 pool work with
  lru/mru connection re-use & connection prefetching
- add todos after analysing what needs to be done for h2

Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Retains the experimental h2 feature based on the new h2 pool.
Behavior has changed.

Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Update for changed RuntimeImpl constructor

Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
@oschaaf oschaaf changed the title Update Envoy to 0b0213fdc38eb0d0346659cf90bd4c502cadb00c Update Envoy to 888e0e28900a470df448c65d7b99d8065fd60251 May 9, 2020
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
@oschaaf oschaaf marked this pull request as ready for review May 9, 2020 21:33
@oschaaf oschaaf added P0 Highest priority waiting-for-review A PR waiting for a review. labels May 9, 2020
@oschaaf
Copy link
Copy Markdown
Member Author

oschaaf commented May 9, 2020

/cc @yanavlasov

case Envoy::Http::ConnectionPool::PoolFailureReason::RemoteConnectionFailure:
benchmark_client_stats_.pool_connection_failure_.inc();
break;
case Envoy::Http::ConnectionPool::PoolFailureReason::Timeout:
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will add a TODO to track these, as well as add separate counters for the combined connection failure counter above.

yanavlasov
yanavlasov previously approved these changes May 10, 2020
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
@oschaaf
Copy link
Copy Markdown
Member Author

oschaaf commented May 10, 2020

I had to amend test expectations in 571c399 to allow for a behavior that showed up in the earlier CI tsan run. I've been looking into that, and this looks like it is stock Envoy behavior to exceed the configured connection limits in some scenarios.

@oschaaf
Copy link
Copy Markdown
Member Author

oschaaf commented May 10, 2020

As a next step to this, to enhance support for supporting multiple http/2 connections, we could consider exposing the max concurrent streams setting + warn/deprecate the experimental flag which just caps that to 1. (And then some day it would be nice to support/unify the connection re-use strategies we have in place for h1).

@htuch htuch merged commit 0e681b8 into envoyproxy:master May 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P0 Highest priority waiting-for-review A PR waiting for a review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants