(Required recursively splitting some other targets too)
Gets us closer to eliminating `grpc_base`, and (more importantly) sets up some pieces of transport to be split out so I can rebuild them in coming months.
Closes#35496
Just the right combination of timeout values could lead to a large
amount of growth in the timeout cache, leading to high memory usage and
high cpu utilization on the client attempting that encoding.
Fix: cap the number of cached timeout values we'll consider to a very
small number (I'm choosing five).
Add a fuzzer that ensures that we're actually respecting the limits of
inaccuracy we're imposing upon ourselves.
---------
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
Instead of fixing a target size for writes, try to adapt it a little to
observed bandwidth.
The initial algorithm tries to get large writes within 100-1000ms
maximum delay - this range probably wants to be tuned, but let's see.
The hope here is that on slow connections we can not back buffer so much
and so when we need to send a ping-ack it's possible without great
delay.