diff --git a/.rat-excludes b/.rat-excludes index 37e68337de..90d78a831a 100644 --- a/.rat-excludes +++ b/.rat-excludes @@ -20,3 +20,4 @@ redhat/cassandra redhat/cassandra.conf redhat/cassandra.in.sh redhat/default +.externalToolBuilders/** diff --git a/CHANGES.txt b/CHANGES.txt index 80e194d327..89b16bddb5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ dev + * buffer network stack to avoid inefficient small TCP messages while avoiding + the nagle/delayed ack problem (CASSANDRA-1896) * check log4j configuration for changes every 10s (CASSANDRA-1525, 1907) * More-efficient cross-DC replication (CASSANDRA-1530) * upgrade to TFastFramedTransport (CASSANDRA-1743) diff --git a/src/java/org/apache/cassandra/net/IncomingTcpConnection.java b/src/java/org/apache/cassandra/net/IncomingTcpConnection.java index 623641823e..27692b5b01 100644 --- a/src/java/org/apache/cassandra/net/IncomingTcpConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingTcpConnection.java @@ -43,7 +43,7 @@ public class IncomingTcpConnection extends Thread this.socket = socket; try { - input = new DataInputStream(socket.getInputStream()); + input = new DataInputStream(new BufferedInputStream(socket.getInputStream(), 4096)); } catch (IOException e) { diff --git a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java index e9bc58f5ab..c83186df61 100644 --- a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java +++ b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java @@ -21,6 +21,7 @@ package org.apache.cassandra.net; */ +import java.io.BufferedOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.InetAddress; @@ -164,7 +165,7 @@ public class OutboundTcpConnection extends Thread socket = new Socket(endpoint, DatabaseDescriptor.getStoragePort(), FBUtilities.getLocalAddress(), 0); socket.setKeepAlive(true); socket.setTcpNoDelay(true); - output = new DataOutputStream(socket.getOutputStream()); + output = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream(), 4096)); return true; } catch (IOException e)