Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 377 by [email protected]: The TCP_NODELAY is not set at the accepted socket
https://code.google.com/p/memcached/issues/detail?id=377

The TCP_NODELAY is only set at the listening socket, and not set at the accepted socket. In Linux machine I tested, the TCP_NODELAY on listening socket cannot be inherited by the accepted socket.

There is a serious performance problem when TCP_NODELAY is not set on memcached server and when the client machine has delayed ack enabled (like default in windows, the delayed ACK can be 200ms)

A test case:
client on windows get an item from a linux memcached server. The response item size should be >1400 and <2800 (including all parameters) 1. the first 1400 bytes will be sent immediately. and the remaining bytes are kept in buffer without sending 2. windows client received the first 1400 bytes and the delay acks take effect. 3. widows client wait 200ms when the delay ack time out happens. Then the ack is sent.
4. memcached receives the ack and then the remaining bytes is sent
5. windows client receives the remainning bytes

Result:
The windows client got the item with a delay of 200ms unnecessarily.


--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--

--- You received this message because you are subscribed to the Google Groups "memcached" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to