Is your feature request related to a problem? Please describe.
For performance reasons, particular those with a non-negligible round-trip time, I would expect that the TCP output should keep the connection alive (up to a configurable timeout). This would mean that it doesn't get penalised with TCP connection setup-teardown time and that it would retain the window size; negating TCP slow-start behaviour.
Similarly, I see no indication that TLS is using session-resumption; can this be clarified please? I'd hate for my servers to be spending unneccesary time negotiating handshakes. Hopefully the session state is housed in-process, but it would be useful to have this documented. (I am assuming that the client also needs to support resumption). This is significant on the server-side, as handshakes are where the bulk of the time is spent.
Describe the solution you'd like
I would expect to see that connections would stay open and be closed after some idle period, or other period (which might be useful for retaining some semblance of round-robin load-balancing for upstream nodes)
Describe alternatives you've considered
None.
Additional context
This is the behaviour I was accustomed to with nxlog, which I'm happily moving away from (in part because nxlog-ce doesn't work on RHEL8.... but I've been looking for a good excuse anyway). But the protocol I need to implement are json_lines over TLS, and I have all sorts of high-volume logs being sent in this way.
Thanks for your time and effort on fluent-bit; I love it already.
Cheers,
Cameron
Is your feature request related to a problem? Please describe.
For performance reasons, particular those with a non-negligible round-trip time, I would expect that the TCP output should keep the connection alive (up to a configurable timeout). This would mean that it doesn't get penalised with TCP connection setup-teardown time and that it would retain the window size; negating TCP slow-start behaviour.
Similarly, I see no indication that TLS is using session-resumption; can this be clarified please? I'd hate for my servers to be spending unneccesary time negotiating handshakes. Hopefully the session state is housed in-process, but it would be useful to have this documented. (I am assuming that the client also needs to support resumption). This is significant on the server-side, as handshakes are where the bulk of the time is spent.
Describe the solution you'd like
I would expect to see that connections would stay open and be closed after some idle period, or other period (which might be useful for retaining some semblance of round-robin load-balancing for upstream nodes)
Describe alternatives you've considered
None.
Additional context
This is the behaviour I was accustomed to with nxlog, which I'm happily moving away from (in part because nxlog-ce doesn't work on RHEL8.... but I've been looking for a good excuse anyway). But the protocol I need to implement are json_lines over TLS, and I have all sorts of high-volume logs being sent in this way.
Thanks for your time and effort on fluent-bit; I love it already. Cheers, Cameron