-
Notifications
You must be signed in to change notification settings - Fork 504
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support PING frame in H2 #2219
Comments
I just want to add that both client (linkerd) and server (namerd) should support enabling the ping frame |
Thanks for pointing that out. While working on this the assumption I worked
with was that the client side would ping Namerd. But it shouldn’t be
difficult for Namerd to do that as well.
…On Mon, Feb 11, 2019 at 9:14 PM Sumit Vij ***@***.***> wrote:
I just want to add that both client (linkerd) and server (namerd) should
support enabling the ping frame
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#2219 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACGGcHz2bWScUn8e_JE6fluspAcwsonUks5vMk21gaJpZM4al422>
.
|
@chrisgoffinet @thedebugger #2221 is a working PR that implements H2 PINGs and implements a failure detector. |
2 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In the HTTP/2 spec (https://http2.github.io/http2-spec/#PING) there is support for handling PING frames. I suggest we support this for the mesh interpreter. The biggest reason would be for users of Linkerd who put Namerd in front of a load balancer. In cloud environments like GCP where they provide elastic load balancing, they have a fixed idle timeout of 600s that isn't configurable. I've also seen this problem happen in action, so it's not theoretical. We've had to fallback to the ThriftMux interpreter because Finagle implements its own ping like mechanism to keep the connection open.
I've considered the option of enabling
SO_KEEPALIVE
on the client socket, but the issue we face here is that currently Netty/Finagle does not expose the ability to set custom keepalive settings (intv, probes, etc) which means that even if we were to support this option, it would require the user to adjust their TCP settings at the host level and for large infrastructure environments, this is a non-starter. I think overall it makes since that the H2 implementation supportPING
instead of relying on the transport.The text was updated successfully, but these errors were encountered: