You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ma...@apache.org on 2011/08/14 19:30:46 UTC
svn commit: r1157574 - in /zookeeper/trunk: CHANGES.txt src/c/src/zookeeper.c
Author: mahadev
Date: Sun Aug 14 17:30:45 2011
New Revision: 1157574
URL: http://svn.apache.org/viewvc?rev=1157574&view=rev
Log:
ZOOKEEPER-1146. significant regression in client (c/python) performance. (phunt via mahadev)
Modified:
zookeeper/trunk/CHANGES.txt
zookeeper/trunk/src/c/src/zookeeper.c
Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1157574&r1=1157573&r2=1157574&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Sun Aug 14 17:30:45 2011
@@ -278,6 +278,9 @@ BUGFIXES:
ZOOKEEPER-839. deleteRecursive does not belong to the other methods.
(mahadev)
+
+ ZOOKEEPER-1146. significant regression in client (c/python) performance.
+ (phunt via mahadev)
IMPROVEMENTS:
ZOOKEEPER-724. Improve junit test integration - log harness information
Modified: zookeeper/trunk/src/c/src/zookeeper.c
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/c/src/zookeeper.c?rev=1157574&r1=1157573&r2=1157574&view=diff
==============================================================================
--- zookeeper/trunk/src/c/src/zookeeper.c (original)
+++ zookeeper/trunk/src/c/src/zookeeper.c Sun Aug 14 17:30:45 2011
@@ -1544,14 +1544,22 @@ int zookeeper_interest(zhandle_t *zh, in
zh->connect_index = 0;
}else {
int rc;
- char on = 1;
+#ifdef WIN32
+ char enable_tcp_nodelay = 1;
+#else
+ int enable_tcp_nodelay = 1;
+#endif
+ int ssoresult;
zh->fd = socket(zh->addrs[zh->connect_index].ss_family, SOCK_STREAM, 0);
if (zh->fd < 0) {
return api_epilog(zh,handle_socket_error_msg(zh,__LINE__,
ZSYSTEMERROR, "socket() call failed"));
}
- setsockopt(zh->fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(char));
+ ssoresult = setsockopt(zh->fd, IPPROTO_TCP, TCP_NODELAY, &enable_tcp_nodelay, sizeof(enable_tcp_nodelay));
+ if (ssoresult != 0) {
+ LOG_WARN(("Unable to set TCP_NODELAY, operation latency may be effected"));
+ }
#ifdef WIN32
ioctlsocket(zh->fd, FIONBIO, &nonblocking_flag);
#else