Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
0.98.0, 0.99.0
-
None
-
Reviewed
-
Description
There is an option to set tcpNoDelay, defaulted to true, but the socket channel is actually not changed. As a consequence, the server works with nagle enabled. This leads to very degraded behavior when a single connection is shared between threads. We enter into conflicts with nagle and tcp delayed ack.
Here is an example of performance with the PE tool plus HBASE-11491:
oneCon #client sleep exeTime (seconds) avg latency, sleep excluded (microseconds) true 1 0 31 310 false 1 0 31 310 true 2 0 50 500 false 2 0 31 310 true 2 5 488 (including 200s sleeping) 2880 false 2 5 246 (including 200s sleeping) 460
The latency is multiple by 5 (2880 vs 460) when the connection is shared. This is the delayed ack kicking in. This can be fixed by really using tcp no delay.
Any application sharing the tcp connection between threads has the issue.
Attachments
Attachments
Issue Links
- breaks
-
HBASE-11698 TestFullLogReconstruction has duplicate config setting
- Closed