mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-23 01:50:35 +00:00
When a bulk of data is passed from user application, the TCP layer call output only once to send data. This will slow TX a lot, because the output will send at most MSS size of data while we might have way more than MSS to send. We will send again only after remote ack the data we just sent. This slowness can be seen easily with tso turned off. To fix, we should send as much as we are allowed to. This patch boosts TX bandwidth from 0.N MiB/Sec to hundreds MiB/Sec. Before: [asias@hjpc pingpong]$ go run client-txtx.go Server: 192.168.66.123:10000 Connections: 1 Bytes Received(MiB): 10 Total Time(Secs): 76.217338072 Bandwidth(MiB/Sec): 0.13120374252054473 After: [asias@hjpc pingpong]$ go run client-txtx.go Server: 192.168.66.123:10000 Connections: 1 Bytes Received(MiB): 100 Total Time(Secs): 0.5105951040000001 Bandwidth(MiB/Sec): 195.84989988466475