gRPC Deep Dive: Prevent Your Service From Overtaking Itself
Talkat KubeCon + CloudNativeCon North America 2019 · on Wednesday, 2019-11-20· at 11:50· Room 14AB - San Diego Convention Center, Mezzanine Level·
summary
gRPC implements built-in per-stream flow control and connection-level windows so fast senders don’t swamp receivers, using a token-bucket style window and window-update frames to throttle traffic rather than relying on TCP drops. an adaptive PDP estimator (bandwidth × RTT) sets initial window size to avoid idle senders across datacenters. implementations differ: c core, java and others expose flow-control APIs, java’s async model buffers by default, some platforms start around 64K default window and all sizes are configurable; proxies and TCP still have their own point-to-point flow control.
AI-written summary · about
chapters (23)
- 0:00Intro
- 0:39GRPC is About Distributed Systems
- 1:13What is Flow Control?
- 1:42Why we need Flow Control
- 3:13Potential Results
- 4:05Solution: Push Back
- 4:29Without Flow Control
- 4:55Without End To End Coverage
- 5:12With Flow Control From End To End
- 6:05Flow Control vs. Congestion Control
- 7:00Example: TCP Congestion Control
- 7:43Example: TCP Flow Control
- 8:35Why Is Multiplexing Important?
- 9:37HTTP/2 Flow Control
- 11:38Recap: Push Back
- 11:51Solution: RPC
- 12:50Issue: Window Size
- 13:45Solution: BDP Estimator
- 14:20Recap: Challenges
- 16:30Advanced: C-Core Based Implementations
- 17:42Take-Away
- 19:39Advanced: ORPC Java
- 23:36Real World Case
related talks
41mgRPC Deep Dive
46mIntroduction to gRPC
19mKeynote: Overview of gRPC
37mgRPC Intro
25mRethinking Data Flow in gRPC-Go: Maximizing Memor...
58mSRE Your gRPC...
35mEvolving Critical Systems With gRPC: Bidirectional at Scale — What Works, What Hurts, What’s Next?
35mgRPC Load Balancing on Kubernetes - Jan Tattermusch, Google
