Open
Description
- write a blog post explaining what it is and the various issues around it
- on Linux,
sendall
should temporarily disableTCP_NOTSENT_LOWAT
- can/should we do some sort of auto-tuning? This is very challenging because the ideal is that if we were waiting for the socket to become writable and then generated a message, we want the send buffer to be just in the process of draining out when our new message is queued... but otherwise not necessarily. Another approach might be, if we have some way to estimate the rate a which the queue is draining (does the OS provide bandwidth stats?), then set the buffer size to a fixed number of milliseconds rather than a fixed number of bytes. OTOH this is all a bit tricky and might be hard to have it work nicely while also allowing the user to override if they want to -- maybe it belongs in an optional higher layer?
We should also try to collect other folks' experience:
- can we track down more information on how Apple's using it?
- h2o does auto-tuning stuff – see https://h2o.examp1e.net/configure/http2_directives.html#latency-optimization